@open-file-viewer/core 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/style.css CHANGED
@@ -55,12 +55,14 @@
55
55
  }
56
56
 
57
57
  .ofv-viewport {
58
+ container-type: inline-size;
58
59
  flex: 1 1 auto;
59
60
  min-width: 0;
60
61
  min-height: 0;
61
62
  width: 100%;
62
63
  max-width: 100%;
63
- overflow: auto;
64
+ overflow-x: hidden;
65
+ overflow-y: auto;
64
66
  background: var(--ofv-bg);
65
67
  color: var(--ofv-text);
66
68
  }
@@ -382,7 +384,8 @@
382
384
  min-width: 0;
383
385
  min-height: 100%;
384
386
  padding: 16px;
385
- overflow: auto;
387
+ overflow-x: hidden;
388
+ overflow-y: auto;
386
389
  background: #6b7280;
387
390
  }
388
391
 
@@ -581,6 +584,20 @@
581
584
  line-height: 1.6;
582
585
  }
583
586
 
587
+ .ofv-office-conversion {
588
+ border-style: dashed;
589
+ }
590
+
591
+ .ofv-office-conversion > p:first-of-type {
592
+ margin-top: 0;
593
+ color: var(--ofv-text);
594
+ line-height: 1.7;
595
+ }
596
+
597
+ .ofv-office-conversion > p:first-of-type strong {
598
+ color: #f59e0b;
599
+ }
600
+
584
601
  .ofv-office-binary-meta {
585
602
  display: grid;
586
603
  grid-template-columns: max-content minmax(0, 1fr);
@@ -604,32 +621,69 @@
604
621
  overflow-wrap: anywhere;
605
622
  }
606
623
 
624
+ .ofv-office-binary-fragments {
625
+ margin-top: 14px;
626
+ }
627
+
628
+ .ofv-office-binary-fragments h4 {
629
+ margin: 0 0 10px;
630
+ color: var(--ofv-text);
631
+ font-size: 14px;
632
+ }
633
+
634
+ .ofv-office-binary-empty {
635
+ margin: 14px 0 0;
636
+ padding: 12px;
637
+ border: 1px dashed var(--ofv-border);
638
+ border-radius: 6px;
639
+ background: var(--ofv-surface-muted);
640
+ color: var(--ofv-text-muted);
641
+ line-height: 1.6;
642
+ }
643
+
607
644
  .ofv-docx-document {
608
645
  width: 100%;
609
646
  max-width: 100%;
610
647
  min-width: 0;
611
- overflow: auto;
648
+ overflow-x: auto;
649
+ overflow-y: auto;
612
650
  color: #111827;
613
651
  }
614
652
 
615
653
  .ofv-docx-document .ofv-docx-wrapper {
654
+ display: flex;
655
+ flex-direction: column;
616
656
  align-items: center;
617
657
  box-sizing: border-box;
618
658
  width: 100%;
619
659
  max-width: 100%;
620
660
  min-width: 0;
621
661
  padding: 24px;
622
- overflow: auto;
662
+ overflow: hidden;
623
663
  background: #e5e7eb;
664
+ --ofv-docx-scale: 1;
665
+ --ofv-docx-page-width: 794px;
624
666
  }
625
667
 
626
- .ofv-docx-document section.ofv-docx {
627
- box-sizing: border-box;
668
+ .ofv-docx-page-frame {
669
+ flex: 0 0 auto;
670
+ width: min(100%, calc(var(--ofv-docx-page-width) * var(--ofv-docx-scale)));
628
671
  max-width: 100%;
629
672
  min-width: 0;
673
+ position: relative;
674
+ overflow: visible;
675
+ }
676
+
677
+ .ofv-docx-document section.ofv-docx {
678
+ box-sizing: border-box;
679
+ flex: 0 0 auto;
680
+ max-width: none;
681
+ min-width: auto;
630
682
  color: #111827;
631
- overflow: auto;
632
- overflow-wrap: anywhere;
683
+ overflow: visible;
684
+ overflow-wrap: normal;
685
+ transform: scale(var(--ofv-docx-scale));
686
+ transform-origin: top left;
633
687
  }
634
688
 
635
689
  .ofv-docx-document section.ofv-docx img,
@@ -1696,9 +1750,19 @@
1696
1750
  }
1697
1751
 
1698
1752
  /* Archive / Zip layout styling */
1753
+ .ofv-archive {
1754
+ width: 100%;
1755
+ max-width: 100%;
1756
+ height: 100%;
1757
+ min-height: 0;
1758
+ overflow: hidden;
1759
+ }
1760
+
1699
1761
  .ofv-archive-layout {
1762
+ --ofv-archive-sidebar-expanded: 320px;
1763
+ --ofv-archive-sidebar-collapsed: 56px;
1700
1764
  display: flex;
1701
- flex-wrap: wrap;
1765
+ flex-wrap: nowrap;
1702
1766
  width: 100%;
1703
1767
  max-width: 100%;
1704
1768
  height: 100%;
@@ -1708,17 +1772,40 @@
1708
1772
  }
1709
1773
 
1710
1774
  .ofv-archive-sidebar {
1711
- width: 320px;
1712
- flex: 1 1 220px;
1775
+ width: var(--ofv-archive-sidebar-expanded);
1776
+ flex: 0 0 var(--ofv-archive-sidebar-expanded);
1713
1777
  min-width: 0;
1714
1778
  max-width: 100%;
1715
1779
  border-right: 1px solid var(--ofv-border);
1780
+ overflow: hidden;
1781
+ position: relative;
1782
+ z-index: 2;
1783
+ color: var(--ofv-text);
1784
+ background: var(--ofv-surface-muted);
1785
+ transition:
1786
+ flex-basis 0.2s ease,
1787
+ width 0.2s ease,
1788
+ max-width 0.2s ease;
1789
+ }
1790
+
1791
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-sidebar {
1792
+ flex-basis: var(--ofv-archive-sidebar-collapsed);
1793
+ width: var(--ofv-archive-sidebar-collapsed);
1794
+ max-width: var(--ofv-archive-sidebar-collapsed);
1795
+ }
1796
+
1797
+ .ofv-archive-sidebar-panel {
1798
+ width: 100%;
1799
+ height: 100%;
1716
1800
  display: flex;
1717
1801
  flex-direction: column;
1718
1802
  background: var(--ofv-surface-muted);
1719
1803
  }
1720
1804
 
1721
1805
  .ofv-archive-header {
1806
+ display: flex;
1807
+ align-items: center;
1808
+ gap: 8px;
1722
1809
  padding: 12px 16px;
1723
1810
  border-bottom: 1px solid var(--ofv-border);
1724
1811
  font-weight: bold;
@@ -1727,18 +1814,60 @@
1727
1814
  background: var(--ofv-surface);
1728
1815
  }
1729
1816
 
1817
+ .ofv-archive-header-title {
1818
+ min-width: 0;
1819
+ overflow: hidden;
1820
+ opacity: 1;
1821
+ text-overflow: ellipsis;
1822
+ transition: opacity 0.12s ease;
1823
+ white-space: nowrap;
1824
+ }
1825
+
1826
+ .ofv-archive-sidebar-toggle {
1827
+ display: inline-flex;
1828
+ flex: 0 0 28px;
1829
+ align-items: center;
1830
+ justify-content: center;
1831
+ width: 28px;
1832
+ height: 28px;
1833
+ border: 1px solid var(--ofv-border);
1834
+ border-radius: 6px;
1835
+ color: var(--ofv-text);
1836
+ background: var(--ofv-surface-muted);
1837
+ cursor: pointer;
1838
+ font-size: 18px;
1839
+ line-height: 1;
1840
+ transition:
1841
+ background 0.15s ease,
1842
+ border-color 0.15s ease;
1843
+ }
1844
+
1845
+ .ofv-archive-sidebar-toggle:hover,
1846
+ .ofv-archive-sidebar-toggle:focus-visible {
1847
+ background: var(--ofv-button-hover);
1848
+ }
1849
+
1850
+ .ofv-archive-sidebar-toggle:focus-visible {
1851
+ outline: 2px solid #2563eb;
1852
+ outline-offset: 2px;
1853
+ }
1854
+
1730
1855
  .ofv-archive-tree {
1731
1856
  flex: 1;
1732
1857
  min-width: 0;
1858
+ min-height: 0;
1733
1859
  overflow: auto;
1860
+ overscroll-behavior: contain;
1734
1861
  }
1735
1862
 
1736
1863
  .ofv-archive-main {
1737
1864
  flex: 1;
1738
1865
  min-width: 0;
1866
+ min-height: 0;
1739
1867
  display: flex;
1740
1868
  flex-direction: column;
1741
1869
  overflow: auto;
1870
+ overscroll-behavior: contain;
1742
1871
  position: relative;
1743
1872
  background: var(--ofv-bg);
1744
1873
  }
@@ -1761,6 +1890,12 @@
1761
1890
  transition: background 0.15s ease;
1762
1891
  }
1763
1892
 
1893
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-item {
1894
+ justify-content: center;
1895
+ padding: 10px 0;
1896
+ gap: 0;
1897
+ }
1898
+
1764
1899
  .ofv-archive-item:hover,
1765
1900
  .ofv-archive-item:focus-visible {
1766
1901
  background: var(--ofv-button-hover);
@@ -1778,19 +1913,120 @@
1778
1913
  padding-left: 13px;
1779
1914
  }
1780
1915
 
1916
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-item.is-active {
1917
+ padding-left: 0;
1918
+ border-left-width: 0;
1919
+ box-shadow: inset 3px 0 0 var(--ofv-text);
1920
+ }
1921
+
1781
1922
  .ofv-archive-item-icon {
1782
- flex: 0 0 16px;
1923
+ display: inline-flex;
1924
+ flex: 0 0 20px;
1925
+ align-items: center;
1926
+ justify-content: center;
1927
+ width: 20px;
1783
1928
  text-align: center;
1784
1929
  font-size: 14px;
1785
1930
  }
1786
1931
 
1787
1932
  .ofv-archive-item-name {
1788
1933
  flex: 1;
1934
+ min-width: 0;
1789
1935
  overflow: hidden;
1936
+ opacity: 1;
1790
1937
  text-overflow: ellipsis;
1938
+ transition: opacity 0.12s ease;
1791
1939
  white-space: nowrap;
1792
1940
  }
1793
1941
 
1942
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-header {
1943
+ justify-content: center;
1944
+ padding-right: 0;
1945
+ padding-left: 0;
1946
+ }
1947
+
1948
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-header-title,
1949
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-item-name {
1950
+ flex: 0 1 0;
1951
+ width: 0;
1952
+ opacity: 0;
1953
+ }
1954
+
1955
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-tree {
1956
+ overflow: hidden;
1957
+ }
1958
+
1959
+ @container (max-width: 520px) {
1960
+ .ofv-archive-layout {
1961
+ --ofv-archive-sidebar-expanded: min(280px, 72cqw);
1962
+ --ofv-archive-sidebar-collapsed: 48px;
1963
+ }
1964
+
1965
+ .ofv-archive-sidebar {
1966
+ flex: 0 0 var(--ofv-archive-sidebar-expanded);
1967
+ width: var(--ofv-archive-sidebar-expanded);
1968
+ max-width: var(--ofv-archive-sidebar-expanded);
1969
+ height: 100%;
1970
+ min-height: 0;
1971
+ }
1972
+
1973
+ .ofv-archive-header {
1974
+ min-height: 48px;
1975
+ padding: 9px;
1976
+ }
1977
+
1978
+ .ofv-archive-main {
1979
+ flex: 1 1 auto;
1980
+ width: auto;
1981
+ min-width: 0;
1982
+ min-height: 0;
1983
+ }
1984
+
1985
+ .ofv-archive-info {
1986
+ justify-content: flex-start;
1987
+ max-width: 100%;
1988
+ margin: 0;
1989
+ padding: 16px;
1990
+ }
1991
+ }
1992
+
1993
+ @container (max-width: 360px) {
1994
+ .ofv-archive-layout {
1995
+ --ofv-archive-sidebar-expanded: min(248px, 78cqw);
1996
+ --ofv-archive-sidebar-collapsed: 44px;
1997
+ }
1998
+
1999
+ .ofv-archive-sidebar {
2000
+ flex-basis: var(--ofv-archive-sidebar-expanded);
2001
+ width: var(--ofv-archive-sidebar-expanded);
2002
+ max-width: var(--ofv-archive-sidebar-expanded);
2003
+ }
2004
+
2005
+ .ofv-archive-header {
2006
+ min-height: 44px;
2007
+ padding: 7px;
2008
+ }
2009
+
2010
+ .ofv-archive-sidebar-toggle {
2011
+ flex-basis: 28px;
2012
+ width: 28px;
2013
+ height: 28px;
2014
+ }
2015
+
2016
+ .ofv-archive-item {
2017
+ gap: 6px;
2018
+ padding: 7px 10px;
2019
+ }
2020
+
2021
+ .ofv-archive-item.is-active {
2022
+ padding-left: 7px;
2023
+ }
2024
+
2025
+ .ofv-archive-layout.is-sidebar-collapsed .ofv-archive-item.is-active {
2026
+ padding-left: 0;
2027
+ }
2028
+ }
2029
+
1794
2030
  .ofv-archive-loading {
1795
2031
  display: flex;
1796
2032
  flex-direction: column;
@@ -1930,12 +2166,14 @@
1930
2166
  /* GIS / Map Visualization Styles */
1931
2167
  .ofv-gis-viewer {
1932
2168
  display: flex;
2169
+ flex: 1 1 auto;
1933
2170
  flex-direction: column;
1934
2171
  width: 100%;
1935
2172
  max-width: 100%;
1936
2173
  height: 100%;
1937
2174
  min-width: 0;
1938
- min-height: 0;
2175
+ min-height: 320px;
2176
+ overflow: hidden;
1939
2177
  }
1940
2178
 
1941
2179
  .ofv-gis-summary {
@@ -1967,11 +2205,186 @@
1967
2205
  flex: 1 1 auto;
1968
2206
  width: 100%;
1969
2207
  max-width: 100%;
1970
- height: auto;
2208
+ height: 100%;
1971
2209
  min-width: 0;
1972
- min-height: 0;
2210
+ min-height: 280px;
1973
2211
  position: relative;
1974
2212
  background: var(--ofv-bg);
2213
+ overflow: hidden;
2214
+ }
2215
+
2216
+ .ofv-map-stage .leaflet-container,
2217
+ .ofv-map-stage.leaflet-container {
2218
+ width: 100%;
2219
+ height: 100%;
2220
+ min-width: 0;
2221
+ min-height: 280px;
2222
+ background: var(--ofv-bg);
2223
+ }
2224
+
2225
+ .ofv-map-stage .leaflet-pane,
2226
+ .ofv-map-stage .leaflet-tile,
2227
+ .ofv-map-stage .leaflet-marker-icon,
2228
+ .ofv-map-stage .leaflet-marker-shadow,
2229
+ .ofv-map-stage .leaflet-tile-container,
2230
+ .ofv-map-stage .leaflet-pane > svg,
2231
+ .ofv-map-stage .leaflet-pane > canvas,
2232
+ .ofv-map-stage.leaflet-container .leaflet-pane,
2233
+ .ofv-map-stage.leaflet-container .leaflet-tile,
2234
+ .ofv-map-stage.leaflet-container .leaflet-marker-icon,
2235
+ .ofv-map-stage.leaflet-container .leaflet-marker-shadow,
2236
+ .ofv-map-stage.leaflet-container .leaflet-tile-container,
2237
+ .ofv-map-stage.leaflet-container .leaflet-pane > svg,
2238
+ .ofv-map-stage.leaflet-container .leaflet-pane > canvas {
2239
+ position: absolute;
2240
+ left: 0;
2241
+ top: 0;
2242
+ }
2243
+
2244
+ .ofv-map-stage .leaflet-container,
2245
+ .ofv-map-stage.leaflet-container {
2246
+ overflow: hidden;
2247
+ }
2248
+
2249
+ .ofv-map-stage .leaflet-tile,
2250
+ .ofv-map-stage .leaflet-marker-icon,
2251
+ .ofv-map-stage .leaflet-marker-shadow,
2252
+ .ofv-map-stage.leaflet-container .leaflet-tile,
2253
+ .ofv-map-stage.leaflet-container .leaflet-marker-icon,
2254
+ .ofv-map-stage.leaflet-container .leaflet-marker-shadow {
2255
+ user-select: none;
2256
+ -webkit-user-drag: none;
2257
+ }
2258
+
2259
+ .ofv-map-stage .leaflet-overlay-pane svg,
2260
+ .ofv-map-stage.leaflet-container .leaflet-overlay-pane svg {
2261
+ width: auto;
2262
+ height: auto;
2263
+ pointer-events: none;
2264
+ }
2265
+
2266
+ .ofv-map-stage .leaflet-interactive,
2267
+ .ofv-map-stage.leaflet-container .leaflet-interactive {
2268
+ pointer-events: auto;
2269
+ }
2270
+
2271
+ .ofv-map-stage .leaflet-map-pane,
2272
+ .ofv-map-stage.leaflet-container .leaflet-map-pane {
2273
+ z-index: 400;
2274
+ }
2275
+
2276
+ .ofv-map-stage .leaflet-tile-pane,
2277
+ .ofv-map-stage.leaflet-container .leaflet-tile-pane {
2278
+ z-index: 200;
2279
+ }
2280
+
2281
+ .ofv-map-stage .leaflet-overlay-pane,
2282
+ .ofv-map-stage.leaflet-container .leaflet-overlay-pane {
2283
+ z-index: 400;
2284
+ }
2285
+
2286
+ .ofv-map-stage .leaflet-shadow-pane,
2287
+ .ofv-map-stage.leaflet-container .leaflet-shadow-pane {
2288
+ z-index: 500;
2289
+ }
2290
+
2291
+ .ofv-map-stage .leaflet-marker-pane,
2292
+ .ofv-map-stage.leaflet-container .leaflet-marker-pane {
2293
+ z-index: 600;
2294
+ }
2295
+
2296
+ .ofv-map-stage .leaflet-tooltip-pane,
2297
+ .ofv-map-stage.leaflet-container .leaflet-tooltip-pane {
2298
+ z-index: 650;
2299
+ }
2300
+
2301
+ .ofv-map-stage .leaflet-popup-pane,
2302
+ .ofv-map-stage.leaflet-container .leaflet-popup-pane {
2303
+ z-index: 700;
2304
+ }
2305
+
2306
+ .ofv-map-stage .leaflet-control,
2307
+ .ofv-map-stage.leaflet-container .leaflet-control {
2308
+ position: relative;
2309
+ z-index: 800;
2310
+ pointer-events: auto;
2311
+ }
2312
+
2313
+ .ofv-map-empty {
2314
+ position: absolute;
2315
+ inset: 0;
2316
+ z-index: 400;
2317
+ display: flex;
2318
+ flex-direction: column;
2319
+ align-items: center;
2320
+ justify-content: center;
2321
+ gap: 6px;
2322
+ padding: 24px;
2323
+ text-align: center;
2324
+ color: var(--ofv-text-muted);
2325
+ pointer-events: none;
2326
+ }
2327
+
2328
+ .ofv-map-empty strong {
2329
+ color: var(--ofv-text);
2330
+ font-size: 14px;
2331
+ }
2332
+
2333
+ .ofv-map-legend {
2334
+ position: absolute;
2335
+ right: 12px;
2336
+ bottom: 12px;
2337
+ z-index: 450;
2338
+ display: flex;
2339
+ flex-direction: column;
2340
+ gap: 2px;
2341
+ max-width: min(280px, calc(100% - 24px));
2342
+ padding: 8px 10px;
2343
+ border: 1px solid rgba(225, 29, 72, 0.28);
2344
+ border-radius: 8px;
2345
+ background: rgba(255, 255, 255, 0.92);
2346
+ color: #475569;
2347
+ box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
2348
+ font-size: 12px;
2349
+ pointer-events: none;
2350
+ }
2351
+
2352
+ .ofv-map-legend strong {
2353
+ position: relative;
2354
+ display: inline-flex;
2355
+ align-items: center;
2356
+ gap: 6px;
2357
+ color: #111827;
2358
+ font-size: 13px;
2359
+ }
2360
+
2361
+ .ofv-map-legend strong::before {
2362
+ content: "";
2363
+ display: inline-block;
2364
+ width: 22px;
2365
+ height: 4px;
2366
+ border-radius: 999px;
2367
+ background: #e11d48;
2368
+ box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.9), 0 0 0 5px rgba(225, 29, 72, 0.24);
2369
+ }
2370
+
2371
+ .ofv-map-stage .ofv-map-feature {
2372
+ filter: drop-shadow(0 1px 0 #ffffff) drop-shadow(0 0 5px rgba(225, 29, 72, 0.82));
2373
+ }
2374
+
2375
+ .ofv-map-stage .ofv-map-point {
2376
+ filter: drop-shadow(0 0 0 #ffffff) drop-shadow(0 0 8px rgba(225, 29, 72, 0.95));
2377
+ }
2378
+
2379
+ .ofv-map-stage .ofv-map-tooltip {
2380
+ border: 1px solid rgba(225, 29, 72, 0.22);
2381
+ border-radius: 6px;
2382
+ background: rgba(255, 255, 255, 0.96);
2383
+ color: #111827;
2384
+ box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);
2385
+ font: inherit;
2386
+ font-size: 12px;
2387
+ font-weight: 600;
1975
2388
  }
1976
2389
 
1977
2390
  /* Premium custom Leaflet map controls styling */
@@ -2075,8 +2488,7 @@
2075
2488
  white-space: nowrap;
2076
2489
  }
2077
2490
 
2078
- .ofv-code-title span,
2079
- .ofv-code-status {
2491
+ .ofv-code-title span {
2080
2492
  color: var(--ofv-text-muted);
2081
2493
  font-size: 12px;
2082
2494
  line-height: 1.4;
@@ -2085,18 +2497,28 @@
2085
2497
  .ofv-code-actions {
2086
2498
  display: flex;
2087
2499
  flex: 0 0 auto;
2088
- flex-wrap: wrap;
2500
+ flex-wrap: nowrap;
2089
2501
  align-items: center;
2090
2502
  justify-content: flex-end;
2091
2503
  gap: 8px;
2504
+ min-width: 0;
2505
+ max-width: 100%;
2092
2506
  }
2093
2507
 
2094
2508
  .ofv-code-status {
2095
- min-width: min(74px, 100%);
2509
+ flex: 0 1 96px;
2510
+ min-width: 0;
2511
+ overflow: hidden;
2512
+ color: var(--ofv-text-muted);
2513
+ font-size: 12px;
2514
+ line-height: 1.4;
2096
2515
  text-align: right;
2516
+ text-overflow: ellipsis;
2517
+ white-space: nowrap;
2097
2518
  }
2098
2519
 
2099
2520
  .ofv-code-action {
2521
+ flex: 0 0 auto;
2100
2522
  min-height: 30px;
2101
2523
  border: 1px solid var(--ofv-border);
2102
2524
  border-radius: 6px;
@@ -2106,6 +2528,7 @@
2106
2528
  cursor: pointer;
2107
2529
  font: inherit;
2108
2530
  font-size: 12px;
2531
+ white-space: nowrap;
2109
2532
  }
2110
2533
 
2111
2534
  .ofv-code-action:hover {
@@ -2167,6 +2590,8 @@
2167
2590
  display: grid;
2168
2591
  grid-template-columns: auto minmax(0, 1fr);
2169
2592
  flex: 1 1 auto;
2593
+ position: relative;
2594
+ isolation: isolate;
2170
2595
  max-width: 100%;
2171
2596
  min-width: 0;
2172
2597
  min-height: 0;
@@ -2174,51 +2599,20 @@
2174
2599
  background: var(--ofv-surface-muted);
2175
2600
  }
2176
2601
 
2177
- .ofv-code-editor {
2178
- flex: 1 1 auto;
2179
- max-width: 100%;
2180
- min-width: 0;
2181
- min-height: 280px;
2182
- overflow: hidden;
2183
- background: var(--ofv-surface-muted);
2184
- }
2185
-
2186
- .ofv-code-editor[hidden],
2187
2602
  .ofv-code-body[hidden] {
2188
2603
  display: none;
2189
2604
  }
2190
2605
 
2191
- .ofv-code-container.is-editor .ofv-code-editor {
2192
- display: block;
2193
- }
2194
-
2195
- .ofv-code-editor-fallback {
2196
- display: block;
2197
- width: 100%;
2198
- height: 100%;
2199
- min-height: inherit;
2200
- margin: 0;
2201
- border: 0;
2202
- padding: 18px 20px;
2203
- outline: 0;
2204
- resize: none;
2205
- background: var(--ofv-surface-muted);
2206
- color: var(--ofv-text);
2207
- font-family: var(--ofv-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
2208
- font-size: 13px;
2209
- line-height: 1.6;
2210
- white-space: pre;
2211
- }
2212
-
2213
2606
  .ofv-code-gutter {
2214
2607
  position: sticky;
2215
2608
  left: 0;
2216
- z-index: 1;
2609
+ z-index: 3;
2217
2610
  min-width: 48px;
2218
2611
  margin: 0;
2219
2612
  padding: 18px 12px;
2220
2613
  border-right: 1px solid var(--ofv-border);
2221
2614
  background: var(--ofv-surface);
2615
+ box-shadow: 8px 0 14px -14px rgba(15, 23, 42, 0.65);
2222
2616
  color: var(--ofv-text-muted);
2223
2617
  font-family: var(--ofv-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
2224
2618
  font-size: 13px;
@@ -2228,6 +2622,8 @@
2228
2622
  }
2229
2623
 
2230
2624
  .ofv-code-container pre {
2625
+ position: relative;
2626
+ z-index: 0;
2231
2627
  margin: 0;
2232
2628
  padding: 18px 20px;
2233
2629
  max-width: 100%;
@@ -2270,12 +2666,11 @@
2270
2666
 
2271
2667
  .ofv-code-actions {
2272
2668
  justify-content: flex-start;
2273
- flex-wrap: wrap;
2669
+ flex-wrap: nowrap;
2274
2670
  }
2275
2671
 
2276
2672
  .ofv-code-status {
2277
- min-width: 0;
2278
- width: 100%;
2673
+ flex-basis: 88px;
2279
2674
  text-align: left;
2280
2675
  }
2281
2676
  }
@@ -2440,6 +2835,8 @@
2440
2835
  /* PDF lazy loading elements */
2441
2836
  .ofv-pdf-page-wrapper {
2442
2837
  margin: 16px auto;
2838
+ max-width: 100%;
2839
+ min-width: 0;
2443
2840
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
2444
2841
  border: 1px solid var(--ofv-border);
2445
2842
  background-color: var(--ofv-surface);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-file-viewer/core",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Framework-agnostic browser file preview core.",
5
5
  "license": "MIT",
6
6
  "type": "module",