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.
- package/dist/templates/page.d.ts.map +1 -1
- package/dist/templates/page.js +498 -23
- package/dist/templates/page.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
|
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"}
|
package/dist/templates/page.js
CHANGED
|
@@ -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:
|
|
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
|
|
1324
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
1721
|
-
<
|
|
1722
|
-
<
|
|
1723
|
-
<
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
<
|
|
1731
|
-
<
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
</
|
|
1736
|
-
</
|
|
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
|
|
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
|
|
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",
|