obsidigen 1.0.8 → 1.1.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/templates/page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoyDD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAe7D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA+CjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtE"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/templates/page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+vED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAe7D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA+CjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtE"}
@@ -29,6 +29,12 @@ const styles = `
29
29
  --font-mono: 'Berkeley Mono', 'IBM Plex Mono', 'JetBrains Mono', 'Fira Code', monospace;
30
30
  --font-sans: 'Söhne', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
31
31
  --font-serif: 'Newsreader', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
32
+
33
+ /* Mobile-specific variables */
34
+ --floating-btn-size: 48px;
35
+ --floating-offset: 16px;
36
+ --search-bar-height: 52px;
37
+ --modal-backdrop: rgba(0, 0, 0, 0.8);
32
38
  }
33
39
 
34
40
  [data-theme="light"] {
@@ -978,7 +984,7 @@ body {
978
984
  }
979
985
 
980
986
  .mobile-header {
981
- display: flex;
987
+ display: none; /* Hidden - using floating buttons instead */
982
988
  }
983
989
 
984
990
  .sidebar-left {
@@ -1000,8 +1006,16 @@ body {
1000
1006
  transform: translateX(0);
1001
1007
  }
1002
1008
 
1009
+ /* Enhanced touch targets for tree navigation */
1010
+ .tree-folder-header,
1011
+ .tree-page-link {
1012
+ padding: 0.75rem;
1013
+ min-height: 44px;
1014
+ font-size: 0.95rem;
1015
+ align-items: center;
1016
+ }
1017
+
1003
1018
  .content-area {
1004
- padding-top: 56px;
1005
1019
  border-left: none;
1006
1020
  border-right: none;
1007
1021
  }
@@ -1015,6 +1029,241 @@ body {
1015
1029
  }
1016
1030
  }
1017
1031
 
1032
+ /* ============================================
1033
+ FLOATING MOBILE CONTROLS
1034
+ ============================================ */
1035
+
1036
+ .floating-nav-btn {
1037
+ display: none;
1038
+ position: fixed;
1039
+ width: var(--floating-btn-size);
1040
+ height: var(--floating-btn-size);
1041
+ border-radius: 50%;
1042
+ background: rgba(26, 26, 26, 0.9);
1043
+ backdrop-filter: blur(10px);
1044
+ -webkit-backdrop-filter: blur(10px);
1045
+ border: 1px solid var(--border-subtle);
1046
+ color: var(--text-secondary);
1047
+ cursor: pointer;
1048
+ z-index: 1000;
1049
+ align-items: center;
1050
+ justify-content: center;
1051
+ box-shadow: 0 4px 12px var(--shadow);
1052
+ transition: all 0.3s ease;
1053
+ }
1054
+
1055
+ .floating-nav-btn:active {
1056
+ transform: scale(0.95);
1057
+ background: var(--bg-hover);
1058
+ }
1059
+
1060
+ .floating-nav-btn svg {
1061
+ width: 24px;
1062
+ height: 24px;
1063
+ }
1064
+
1065
+ .floating-nav-btn.hidden {
1066
+ opacity: 0;
1067
+ pointer-events: none;
1068
+ transform: translateY(-20px);
1069
+ }
1070
+
1071
+ .floating-left-btn {
1072
+ top: var(--floating-offset);
1073
+ left: var(--floating-offset);
1074
+ }
1075
+
1076
+ .floating-right-btn {
1077
+ top: var(--floating-offset);
1078
+ right: var(--floating-offset);
1079
+ }
1080
+
1081
+ .floating-search-bar {
1082
+ display: none;
1083
+ position: fixed;
1084
+ bottom: var(--floating-offset);
1085
+ left: var(--floating-offset);
1086
+ right: var(--floating-offset);
1087
+ height: var(--search-bar-height);
1088
+ background: rgba(26, 26, 26, 0.9);
1089
+ backdrop-filter: blur(10px);
1090
+ -webkit-backdrop-filter: blur(10px);
1091
+ border: 1px solid var(--border-subtle);
1092
+ border-radius: 26px;
1093
+ z-index: 1000;
1094
+ align-items: center;
1095
+ padding: 0 1.25rem;
1096
+ gap: 0.75rem;
1097
+ cursor: pointer;
1098
+ box-shadow: 0 4px 12px var(--shadow);
1099
+ transition: all 0.3s ease;
1100
+ }
1101
+
1102
+ .floating-search-bar.hidden {
1103
+ opacity: 0;
1104
+ pointer-events: none;
1105
+ transform: translateY(20px);
1106
+ }
1107
+
1108
+ .floating-search-bar svg {
1109
+ width: 20px;
1110
+ height: 20px;
1111
+ color: var(--text-muted);
1112
+ flex-shrink: 0;
1113
+ }
1114
+
1115
+ .floating-search-bar .search-placeholder {
1116
+ color: var(--text-muted);
1117
+ font-size: 0.95rem;
1118
+ flex: 1;
1119
+ }
1120
+
1121
+ /* Search Modal */
1122
+ .search-modal {
1123
+ display: none;
1124
+ position: fixed;
1125
+ inset: 0;
1126
+ z-index: 9999;
1127
+ background: var(--modal-backdrop);
1128
+ backdrop-filter: blur(5px);
1129
+ -webkit-backdrop-filter: blur(5px);
1130
+ }
1131
+
1132
+ .search-modal.active {
1133
+ display: flex;
1134
+ flex-direction: column;
1135
+ animation: fadeIn 0.2s ease;
1136
+ }
1137
+
1138
+ .search-modal-content {
1139
+ position: relative;
1140
+ width: 100%;
1141
+ height: 100%;
1142
+ background: var(--bg-primary);
1143
+ display: flex;
1144
+ flex-direction: column;
1145
+ animation: slideUp 0.3s ease;
1146
+ padding: env(safe-area-inset-top, 0) env(safe-area-inset-right, 0) env(safe-area-inset-bottom, 0) env(safe-area-inset-left, 0);
1147
+ }
1148
+
1149
+ @keyframes slideUp {
1150
+ from {
1151
+ transform: translateY(100%);
1152
+ }
1153
+ to {
1154
+ transform: translateY(0);
1155
+ }
1156
+ }
1157
+
1158
+ .search-modal-header {
1159
+ display: flex;
1160
+ align-items: center;
1161
+ gap: 1rem;
1162
+ padding: 1.25rem 1rem;
1163
+ background: var(--bg-secondary);
1164
+ border-bottom: 1px solid var(--border-subtle);
1165
+ flex-shrink: 0;
1166
+ }
1167
+
1168
+ .search-modal-input {
1169
+ flex: 1;
1170
+ background: var(--bg-tertiary);
1171
+ border: 1px solid var(--border-subtle);
1172
+ border-radius: 12px;
1173
+ padding: 0.85rem 1rem 0.85rem 3rem;
1174
+ color: var(--text-primary);
1175
+ font-size: 1rem;
1176
+ font-family: inherit;
1177
+ }
1178
+
1179
+ .search-modal-input:focus {
1180
+ outline: none;
1181
+ border-color: var(--accent);
1182
+ box-shadow: 0 0 0 3px var(--accent-subtle);
1183
+ }
1184
+
1185
+ .search-modal-input::placeholder {
1186
+ color: var(--text-muted);
1187
+ }
1188
+
1189
+ .search-modal-header .search-icon {
1190
+ position: absolute;
1191
+ left: 2rem;
1192
+ pointer-events: none;
1193
+ }
1194
+
1195
+ .search-modal-close {
1196
+ background: transparent;
1197
+ border: none;
1198
+ color: var(--text-secondary);
1199
+ padding: 0.5rem;
1200
+ cursor: pointer;
1201
+ border-radius: 8px;
1202
+ display: flex;
1203
+ align-items: center;
1204
+ justify-content: center;
1205
+ flex-shrink: 0;
1206
+ }
1207
+
1208
+ .search-modal-close:active {
1209
+ background: var(--bg-hover);
1210
+ }
1211
+
1212
+ .search-modal-close svg {
1213
+ width: 24px;
1214
+ height: 24px;
1215
+ }
1216
+
1217
+ .search-modal-results {
1218
+ flex: 1;
1219
+ overflow-y: auto;
1220
+ padding: 0.5rem;
1221
+ }
1222
+
1223
+ .search-modal-result-item {
1224
+ display: block;
1225
+ padding: 1rem 1.25rem;
1226
+ text-decoration: none;
1227
+ border-radius: 8px;
1228
+ margin-bottom: 0.5rem;
1229
+ background: var(--bg-secondary);
1230
+ border: 1px solid var(--border-subtle);
1231
+ transition: all 0.15s;
1232
+ }
1233
+
1234
+ .search-modal-result-item:active {
1235
+ background: var(--bg-hover);
1236
+ transform: scale(0.98);
1237
+ }
1238
+
1239
+ .search-modal-result-title {
1240
+ color: var(--text-primary);
1241
+ font-weight: 600;
1242
+ font-size: 1rem;
1243
+ margin-bottom: 0.25rem;
1244
+ }
1245
+
1246
+ .search-modal-result-path {
1247
+ color: var(--text-muted);
1248
+ font-size: 0.85rem;
1249
+ font-family: var(--font-mono);
1250
+ }
1251
+
1252
+ .search-modal-empty {
1253
+ text-align: center;
1254
+ color: var(--text-muted);
1255
+ padding: 3rem 1rem;
1256
+ font-size: 0.95rem;
1257
+ }
1258
+
1259
+ /* Show floating controls on mobile */
1260
+ @media (max-width: 768px) {
1261
+ .floating-nav-btn,
1262
+ .floating-search-bar {
1263
+ display: flex;
1264
+ }
1265
+ }
1266
+
1018
1267
  /* ============================================
1019
1268
  HOVER PREVIEW
1020
1269
  ============================================ */
@@ -1320,13 +1569,13 @@ function updateThemeButton(theme) {
1320
1569
  // ============================================
1321
1570
 
1322
1571
  function initMobile() {
1323
- const menuBtn = document.getElementById('mobile-menu-btn');
1324
- const backlinksBtn = document.getElementById('mobile-backlinks-btn');
1572
+ const leftBtn = document.getElementById('floating-left-btn');
1573
+ const rightBtn = document.getElementById('floating-right-btn');
1325
1574
  const sidebarLeft = document.querySelector('.sidebar-left');
1326
1575
  const sidebarRight = document.querySelector('.sidebar-right');
1327
1576
  const overlay = document.getElementById('sidebar-overlay');
1328
1577
 
1329
- menuBtn?.addEventListener('click', () => {
1578
+ leftBtn?.addEventListener('click', () => {
1330
1579
  // Close right sidebar if open
1331
1580
  sidebarRight?.classList.remove('mobile-open');
1332
1581
  // Toggle left sidebar
@@ -1334,7 +1583,7 @@ function initMobile() {
1334
1583
  overlay?.classList.toggle('active', sidebarLeft?.classList.contains('mobile-open'));
1335
1584
  });
1336
1585
 
1337
- backlinksBtn?.addEventListener('click', () => {
1586
+ rightBtn?.addEventListener('click', () => {
1338
1587
  // Close left sidebar if open
1339
1588
  sidebarLeft?.classList.remove('mobile-open');
1340
1589
  // Toggle right sidebar
@@ -1349,6 +1598,198 @@ function initMobile() {
1349
1598
  });
1350
1599
  }
1351
1600
 
1601
+ // ============================================
1602
+ // SWIPE GESTURES
1603
+ // ============================================
1604
+
1605
+ function initSwipeGestures() {
1606
+ const sidebarLeft = document.querySelector('.sidebar-left');
1607
+ const sidebarRight = document.querySelector('.sidebar-right');
1608
+ const overlay = document.getElementById('sidebar-overlay');
1609
+
1610
+ let touchStartX = 0;
1611
+ let touchStartY = 0;
1612
+ let touchStartTime = 0;
1613
+ let isSwiping = false;
1614
+
1615
+ document.addEventListener('touchstart', (e) => {
1616
+ touchStartX = e.touches[0].clientX;
1617
+ touchStartY = e.touches[0].clientY;
1618
+ touchStartTime = Date.now();
1619
+ isSwiping = false;
1620
+ }, { passive: true });
1621
+
1622
+ document.addEventListener('touchmove', (e) => {
1623
+ if (!touchStartX) return;
1624
+
1625
+ const touchX = e.touches[0].clientX;
1626
+ const touchY = e.touches[0].clientY;
1627
+ const diffX = touchX - touchStartX;
1628
+ const diffY = touchY - touchStartY;
1629
+
1630
+ // Check if horizontal swipe (more horizontal than vertical)
1631
+ if (Math.abs(diffX) > Math.abs(diffY) && Math.abs(diffX) > 10) {
1632
+ isSwiping = true;
1633
+ }
1634
+ }, { passive: true });
1635
+
1636
+ document.addEventListener('touchend', (e) => {
1637
+ if (!isSwiping || !touchStartX) {
1638
+ touchStartX = 0;
1639
+ touchStartY = 0;
1640
+ return;
1641
+ }
1642
+
1643
+ const touchEndX = e.changedTouches[0].clientX;
1644
+ const touchEndY = e.changedTouches[0].clientY;
1645
+ const diffX = touchEndX - touchStartX;
1646
+ const diffY = touchEndY - touchStartY;
1647
+ const diffTime = Date.now() - touchStartTime;
1648
+ const velocity = Math.abs(diffX) / diffTime;
1649
+
1650
+ // Check if it's a horizontal swipe
1651
+ if (Math.abs(diffX) > Math.abs(diffY) && Math.abs(diffX) > 50) {
1652
+ const screenWidth = window.innerWidth;
1653
+
1654
+ // Left half of screen - swipe right to open left panel
1655
+ if (touchStartX < screenWidth / 2 && diffX > 0) {
1656
+ sidebarRight?.classList.remove('mobile-open');
1657
+ sidebarLeft?.classList.add('mobile-open');
1658
+ overlay?.classList.add('active');
1659
+ }
1660
+ // Right half of screen - swipe left to open right panel
1661
+ else if (touchStartX > screenWidth / 2 && diffX < 0) {
1662
+ sidebarLeft?.classList.remove('mobile-open');
1663
+ sidebarRight?.classList.add('mobile-open');
1664
+ overlay?.classList.add('active');
1665
+ }
1666
+ }
1667
+
1668
+ touchStartX = 0;
1669
+ touchStartY = 0;
1670
+ isSwiping = false;
1671
+ }, { passive: true });
1672
+ }
1673
+
1674
+ // ============================================
1675
+ // SCROLL-BASED UI VISIBILITY
1676
+ // ============================================
1677
+
1678
+ function initScrollBasedUI() {
1679
+ const contentArea = document.querySelector('.content-area');
1680
+ const floatingButtons = document.querySelectorAll('.floating-nav-btn');
1681
+ const floatingSearch = document.querySelector('.floating-search-bar');
1682
+
1683
+ if (!contentArea) return;
1684
+
1685
+ let lastScrollTop = 0;
1686
+ let ticking = false;
1687
+ const threshold = 10; // Minimum scroll distance to trigger
1688
+
1689
+ contentArea.addEventListener('scroll', () => {
1690
+ if (!ticking) {
1691
+ requestAnimationFrame(() => {
1692
+ const scrollTop = contentArea.scrollTop;
1693
+
1694
+ // Scrolling down - hide UI
1695
+ if (scrollTop > lastScrollTop + threshold && scrollTop > 100) {
1696
+ floatingButtons.forEach(btn => btn.classList.add('hidden'));
1697
+ floatingSearch?.classList.add('hidden');
1698
+ }
1699
+ // Scrolling up - show UI
1700
+ else if (scrollTop < lastScrollTop - threshold || scrollTop < 100) {
1701
+ floatingButtons.forEach(btn => btn.classList.remove('hidden'));
1702
+ floatingSearch?.classList.remove('hidden');
1703
+ }
1704
+
1705
+ lastScrollTop = scrollTop;
1706
+ ticking = false;
1707
+ });
1708
+ ticking = true;
1709
+ }
1710
+ });
1711
+ }
1712
+
1713
+ // ============================================
1714
+ // SEARCH MODAL
1715
+ // ============================================
1716
+
1717
+ let searchModal = null;
1718
+ let searchModalInput = null;
1719
+ let searchModalResults = null;
1720
+
1721
+ function initSearchModal() {
1722
+ const floatingSearchBar = document.querySelector('.floating-search-bar');
1723
+ searchModal = document.getElementById('search-modal');
1724
+ searchModalInput = document.getElementById('search-modal-input');
1725
+ searchModalResults = document.getElementById('search-modal-results');
1726
+ const closeBtn = document.getElementById('search-modal-close');
1727
+
1728
+ // Open modal when clicking floating search bar
1729
+ floatingSearchBar?.addEventListener('click', openSearchModal);
1730
+
1731
+ // Close modal
1732
+ closeBtn?.addEventListener('click', closeSearchModal);
1733
+ searchModal?.addEventListener('click', (e) => {
1734
+ if (e.target === searchModal) {
1735
+ closeSearchModal();
1736
+ }
1737
+ });
1738
+
1739
+ // ESC key to close
1740
+ document.addEventListener('keydown', (e) => {
1741
+ if (e.key === 'Escape' && searchModal?.classList.contains('active')) {
1742
+ closeSearchModal();
1743
+ }
1744
+ });
1745
+
1746
+ // Search functionality
1747
+ let debounceTimer;
1748
+ searchModalInput?.addEventListener('input', (e) => {
1749
+ clearTimeout(debounceTimer);
1750
+ const query = e.target.value.trim();
1751
+
1752
+ if (!query) {
1753
+ searchModalResults.innerHTML = '<div class="search-modal-empty">Type to search...</div>';
1754
+ return;
1755
+ }
1756
+
1757
+ debounceTimer = setTimeout(async () => {
1758
+ try {
1759
+ const res = await fetch('/api/search?q=' + encodeURIComponent(query));
1760
+ const data = await res.json();
1761
+
1762
+ if (data.results.length > 0) {
1763
+ searchModalResults.innerHTML = data.results.map(r => \`
1764
+ <a href="/\${r.slug}" class="search-modal-result-item">
1765
+ <div class="search-modal-result-title">\${escapeHtml(r.title)}</div>
1766
+ <div class="search-modal-result-path">\${escapeHtml(r.path)}</div>
1767
+ </a>
1768
+ \`).join('');
1769
+ } else {
1770
+ searchModalResults.innerHTML = '<div class="search-modal-empty">No results found</div>';
1771
+ }
1772
+ } catch (err) {
1773
+ console.error('Search error:', err);
1774
+ searchModalResults.innerHTML = '<div class="search-modal-empty">Search error</div>';
1775
+ }
1776
+ }, 200);
1777
+ });
1778
+ }
1779
+
1780
+ function openSearchModal() {
1781
+ searchModal?.classList.add('active');
1782
+ searchModalInput?.focus();
1783
+ document.body.style.overflow = 'hidden';
1784
+ }
1785
+
1786
+ function closeSearchModal() {
1787
+ searchModal?.classList.remove('active');
1788
+ if (searchModalInput) searchModalInput.value = '';
1789
+ if (searchModalResults) searchModalResults.innerHTML = '<div class="search-modal-empty">Type to search...</div>';
1790
+ document.body.style.overflow = '';
1791
+ }
1792
+
1352
1793
  // ============================================
1353
1794
  // UTILITIES
1354
1795
  // ============================================
@@ -1645,6 +2086,9 @@ document.addEventListener('DOMContentLoaded', () => {
1645
2086
  initMobile();
1646
2087
  initTOC();
1647
2088
  initHoverPreview();
2089
+ initSwipeGestures();
2090
+ initScrollBasedUI();
2091
+ initSearchModal();
1648
2092
  });
1649
2093
  `;
1650
2094
  function layout(title, content, options = {}) {
@@ -1717,23 +2161,54 @@ function layout(title, content, options = {}) {
1717
2161
  <style>${styles}</style>
1718
2162
  </head>
1719
2163
  <body data-current-slug="${escapeHtml(currentSlug)}">
1720
- <!-- Mobile Header -->
1721
- <header class="mobile-header">
1722
- <button id="mobile-menu-btn" class="mobile-menu-btn" aria-label="Open navigation">
1723
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
1724
- <line x1="3" y1="12" x2="21" y2="12"/>
1725
- <line x1="3" y1="6" x2="21" y2="6"/>
1726
- <line x1="3" y1="18" x2="21" y2="18"/>
1727
- </svg>
1728
- </button>
1729
- <span class="mobile-title">${escapeHtml(vaultName)}</span>
1730
- <button id="mobile-backlinks-btn" class="mobile-backlinks-btn" aria-label="Open backlinks">
1731
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
1732
- <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/>
1733
- <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>
1734
- </svg>
1735
- </button>
1736
- </header>
2164
+ <!-- Floating Navigation Buttons (Mobile) -->
2165
+ <button id="floating-left-btn" class="floating-nav-btn floating-left-btn" aria-label="Open navigation">
2166
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2167
+ <line x1="3" y1="12" x2="21" y2="12"/>
2168
+ <line x1="3" y1="6" x2="21" y2="6"/>
2169
+ <line x1="3" y1="18" x2="21" y2="18"/>
2170
+ </svg>
2171
+ </button>
2172
+
2173
+ <button id="floating-right-btn" class="floating-nav-btn floating-right-btn" aria-label="Open widgets">
2174
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2175
+ <rect x="3" y="3" width="7" height="7"/>
2176
+ <rect x="14" y="3" width="7" height="7"/>
2177
+ <rect x="3" y="14" width="7" height="7"/>
2178
+ <rect x="14" y="14" width="7" height="7"/>
2179
+ </svg>
2180
+ </button>
2181
+
2182
+ <!-- Floating Search Bar (Mobile) -->
2183
+ <div class="floating-search-bar">
2184
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2185
+ <circle cx="11" cy="11" r="8"/>
2186
+ <line x1="21" y1="21" x2="16.65" y2="16.65"/>
2187
+ </svg>
2188
+ <span class="search-placeholder">Search...</span>
2189
+ </div>
2190
+
2191
+ <!-- Search Modal (Mobile) -->
2192
+ <div id="search-modal" class="search-modal">
2193
+ <div class="search-modal-content">
2194
+ <div class="search-modal-header">
2195
+ <svg class="search-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2196
+ <circle cx="11" cy="11" r="8"/>
2197
+ <line x1="21" y1="21" x2="16.65" y2="16.65"/>
2198
+ </svg>
2199
+ <input type="text" id="search-modal-input" class="search-modal-input" placeholder="Search pages..." autocomplete="off">
2200
+ <button id="search-modal-close" class="search-modal-close" aria-label="Close search">
2201
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2202
+ <line x1="18" y1="6" x2="6" y2="18"/>
2203
+ <line x1="6" y1="6" x2="18" y2="18"/>
2204
+ </svg>
2205
+ </button>
2206
+ </div>
2207
+ <div id="search-modal-results" class="search-modal-results">
2208
+ <div class="search-modal-empty">Type to search...</div>
2209
+ </div>
2210
+ </div>
2211
+ </div>
1737
2212
 
1738
2213
  <!-- Sidebar Overlay -->
1739
2214
  <div id="sidebar-overlay" class="sidebar-overlay"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/templates/page.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAuBtD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgnCd,CAAC;AAEF,MAAM,OAAO,GAAG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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/templates/page.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAuBtD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidigen",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "Transform your Obsidian vault into a beautiful, browsable wiki with a modern three-column interface, hover previews, and optional Cloudflare Tunnel integration",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",