a tool for shared writing and social publishing

fixed a weird scrolling issue, also squished the interaction drawer and page together

+434 -88
+3 -2
app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer.tsx
··· 17 17 if (!drawer) return null; 18 18 return ( 19 19 <> 20 - <div className="snap-center h-full flex z-10 shrink-0 w-[calc(var(--page-width-units)-12px)] sm:w-[var(--page-width-units)]"> 20 + <SandwichSpacer noWidth /> 21 + <div className="snap-center h-full flex z-10 shrink-0 w-[calc(var(--page-width-units)-6px)] sm:w-[calc(var(--page-width-units)*.75)]"> 21 22 <div 22 23 id="interaction-drawer" 23 - className="opaque-container !rounded-lg h-full w-full px-3 sm:px-4 pt-2 sm:pt-3 pb-6 overflow-scroll " 24 + className="opaque-container rounded-l-none! rounded-r-lg! h-full w-full px-3 sm:px-4 pt-2 sm:pt-3 pb-6 overflow-scroll -ml-[1px] " 24 25 > 25 26 {drawer === "quotes" ? ( 26 27 <Quotes {...props} />
+1 -1
app/lish/[did]/[publication]/[rkey]/Interactions/Interactions.tsx
··· 107 107 108 108 return ( 109 109 <div 110 - className={`flex gap-2 text-tertiary px-3 sm:px-4 ${props.compact ? "text-sm" : ""} ${props.className}`} 110 + className={`flex gap-2 text-tertiary ${props.compact ? "text-sm" : "px-3 sm:px-4"} ${props.className}`} 111 111 > 112 112 <button 113 113 className={`flex gap-1 items-center ${!props.compact && "px-1 py-0.5 border border-border-light rounded-lg trasparent-outline selected-outline"}`}
+3
app/lish/[did]/[publication]/[rkey]/PostPages.tsx
··· 94 94 fullPageScroll={fullPageScroll} 95 95 cardBorderHidden={!hasPageBackground} 96 96 id={"post-page"} 97 + drawerOpen={!!drawerOpen} 97 98 > 98 99 <PostHeader 99 100 data={document} ··· 161 162 return ( 162 163 <Fragment key={p}> 163 164 <SandwichSpacer /> 165 + {/*JARED TODO : drawerOpen here is checking whether the drawer is open on the first page, rather than if it's open on this page. Please rewire this when you add drawers per page!*/} 164 166 <PageWrapper 165 167 cardBorderHidden={!hasPageBackground} 166 168 id={`post-page-${p}`} 167 169 fullPageScroll={false} 170 + drawerOpen={!!drawerOpen} 168 171 pageOptions={ 169 172 <PageOptions 170 173 onClick={() => closePage(page?.id!)}
+3 -2
components/LeafletLayout.tsx
··· 18 18 w-full h-full 19 19 flex gap-0 20 20 py-2 sm:py-6 21 - overflow-x-scroll snap-x snap-mandatory no-scrollbar 21 + overflow-y-hidden overflow-x-scroll snap-x snap-mandatory no-scrollbar 22 22 ${props.className}`} 23 23 > 24 24 {props.children} ··· 45 45 46 46 export const SandwichSpacer = (props: { 47 47 onClick?: (e: React.MouseEvent) => void; 48 + noWidth?: boolean; 48 49 className?: string; 49 50 }) => { 50 51 // these spacers are used between pages so that the page carousel can fit two pages side by side by snapping in between pages 51 52 return ( 52 53 <div 53 54 onClick={props.onClick} 54 - className={`spacer shrink-0 w-6 lg:snap-center ${props.className}`} 55 + className={`spacer shrink-0 lg:snap-center ${props.noWidth ? "w-0" : "w-6"} ${props.className}`} 55 56 /> 56 57 ); 57 58 };
+8 -2
components/Pages/Page.tsx
··· 15 15 import { focusPage } from "."; 16 16 import { PageOptions } from "./PageOptions"; 17 17 import { CardThemeProvider } from "components/ThemeManager/ThemeProvider"; 18 + import { useDrawerOpen } from "app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer"; 18 19 19 20 export function Page(props: { 20 21 entityID: string; ··· 33 34 }); 34 35 let pageType = useEntity(props.entityID, "page/type")?.data.value || "doc"; 35 36 let cardBorderHidden = useCardBorderHidden(props.entityID); 37 + let drawerOpen = useDrawerOpen(props.entityID); 36 38 return ( 37 39 <CardThemeProvider entityID={props.entityID}> 38 40 <PageWrapper ··· 44 46 } 45 47 }} 46 48 id={elementId.page(props.entityID).container} 49 + drawerOpen={!!drawerOpen} 47 50 cardBorderHidden={!!cardBorderHidden} 48 51 isFocused={isFocused} 49 52 fullPageScroll={props.fullPageScroll} ··· 69 72 } 70 73 71 74 export const PageWrapper = (props: { 75 + id: string; 76 + 72 77 children: React.ReactNode; 73 78 pageOptions?: React.ReactNode; 74 - id: string; 75 79 cardBorderHidden: boolean; 76 80 fullPageScroll: boolean; 77 81 isFocused?: boolean; 78 82 onClickAction?: (e: React.MouseEvent) => void; 79 83 pageType?: "canvas" | "doc"; 84 + drawerOpen: boolean | undefined; 80 85 }) => { 81 86 return ( 82 87 // this div wraps the contents AND the page options. ··· 100 105 overflow-y-scroll 101 106 ${ 102 107 !props.cardBorderHidden && 103 - `h-full rounded-lg border 108 + `h-full border 104 109 bg-[rgba(var(--bg-page),var(--bg-page-alpha))] 110 + ${props.drawerOpen ? "rounded-l-lg " : ""} 105 111 ${props.isFocused ? "shadow-md border-border" : "border-border-light"}` 106 112 } 107 113 ${props.cardBorderHidden && "sm:h-[calc(100%+48px)] h-[calc(100%+20px)] sm:-my-6 -my-3 sm:pt-6 pt-3"}
+415 -80
package-lock.json
··· 71 71 "remark-rehype": "^11.1.0", 72 72 "remark-stringify": "^11.0.0", 73 73 "replicache": "^15.3.0", 74 - "sharp": "^0.34.2", 74 + "sharp": "^0.34.4", 75 75 "shiki": "^3.8.1", 76 76 "swr": "^2.3.3", 77 77 "thumbhash": "^0.1.1", ··· 692 692 "node": ">=10.0.0" 693 693 } 694 694 }, 695 + "node_modules/@emnapi/runtime": { 696 + "version": "1.5.0", 697 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", 698 + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", 699 + "optional": true, 700 + "dependencies": { 701 + "tslib": "^2.4.0" 702 + } 703 + }, 695 704 "node_modules/@esbuild-kit/core-utils": { 696 705 "version": "3.3.2", 697 706 "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.3.2.tgz", ··· 1038 1047 "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", 1039 1048 "dev": true 1040 1049 }, 1050 + "node_modules/@img/colour": { 1051 + "version": "1.0.0", 1052 + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", 1053 + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", 1054 + "engines": { 1055 + "node": ">=18" 1056 + } 1057 + }, 1058 + "node_modules/@img/sharp-darwin-arm64": { 1059 + "version": "0.34.4", 1060 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz", 1061 + "integrity": "sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==", 1062 + "cpu": [ 1063 + "arm64" 1064 + ], 1065 + "optional": true, 1066 + "os": [ 1067 + "darwin" 1068 + ], 1069 + "engines": { 1070 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1071 + }, 1072 + "funding": { 1073 + "url": "https://opencollective.com/libvips" 1074 + }, 1075 + "optionalDependencies": { 1076 + "@img/sharp-libvips-darwin-arm64": "1.2.3" 1077 + } 1078 + }, 1079 + "node_modules/@img/sharp-darwin-x64": { 1080 + "version": "0.34.4", 1081 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz", 1082 + "integrity": "sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==", 1083 + "cpu": [ 1084 + "x64" 1085 + ], 1086 + "optional": true, 1087 + "os": [ 1088 + "darwin" 1089 + ], 1090 + "engines": { 1091 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1092 + }, 1093 + "funding": { 1094 + "url": "https://opencollective.com/libvips" 1095 + }, 1096 + "optionalDependencies": { 1097 + "@img/sharp-libvips-darwin-x64": "1.2.3" 1098 + } 1099 + }, 1100 + "node_modules/@img/sharp-libvips-darwin-arm64": { 1101 + "version": "1.2.3", 1102 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz", 1103 + "integrity": "sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==", 1104 + "cpu": [ 1105 + "arm64" 1106 + ], 1107 + "optional": true, 1108 + "os": [ 1109 + "darwin" 1110 + ], 1111 + "funding": { 1112 + "url": "https://opencollective.com/libvips" 1113 + } 1114 + }, 1115 + "node_modules/@img/sharp-libvips-darwin-x64": { 1116 + "version": "1.2.3", 1117 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz", 1118 + "integrity": "sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==", 1119 + "cpu": [ 1120 + "x64" 1121 + ], 1122 + "optional": true, 1123 + "os": [ 1124 + "darwin" 1125 + ], 1126 + "funding": { 1127 + "url": "https://opencollective.com/libvips" 1128 + } 1129 + }, 1130 + "node_modules/@img/sharp-libvips-linux-arm": { 1131 + "version": "1.2.3", 1132 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz", 1133 + "integrity": "sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==", 1134 + "cpu": [ 1135 + "arm" 1136 + ], 1137 + "optional": true, 1138 + "os": [ 1139 + "linux" 1140 + ], 1141 + "funding": { 1142 + "url": "https://opencollective.com/libvips" 1143 + } 1144 + }, 1145 + "node_modules/@img/sharp-libvips-linux-arm64": { 1146 + "version": "1.2.3", 1147 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz", 1148 + "integrity": "sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==", 1149 + "cpu": [ 1150 + "arm64" 1151 + ], 1152 + "optional": true, 1153 + "os": [ 1154 + "linux" 1155 + ], 1156 + "funding": { 1157 + "url": "https://opencollective.com/libvips" 1158 + } 1159 + }, 1160 + "node_modules/@img/sharp-libvips-linux-ppc64": { 1161 + "version": "1.2.3", 1162 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz", 1163 + "integrity": "sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==", 1164 + "cpu": [ 1165 + "ppc64" 1166 + ], 1167 + "optional": true, 1168 + "os": [ 1169 + "linux" 1170 + ], 1171 + "funding": { 1172 + "url": "https://opencollective.com/libvips" 1173 + } 1174 + }, 1175 + "node_modules/@img/sharp-libvips-linux-s390x": { 1176 + "version": "1.2.3", 1177 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz", 1178 + "integrity": "sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==", 1179 + "cpu": [ 1180 + "s390x" 1181 + ], 1182 + "optional": true, 1183 + "os": [ 1184 + "linux" 1185 + ], 1186 + "funding": { 1187 + "url": "https://opencollective.com/libvips" 1188 + } 1189 + }, 1041 1190 "node_modules/@img/sharp-libvips-linux-x64": { 1042 - "version": "1.2.0", 1043 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.0.tgz", 1044 - "integrity": "sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==", 1191 + "version": "1.2.3", 1192 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz", 1193 + "integrity": "sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==", 1194 + "cpu": [ 1195 + "x64" 1196 + ], 1197 + "optional": true, 1198 + "os": [ 1199 + "linux" 1200 + ], 1201 + "funding": { 1202 + "url": "https://opencollective.com/libvips" 1203 + } 1204 + }, 1205 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 1206 + "version": "1.2.3", 1207 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz", 1208 + "integrity": "sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==", 1209 + "cpu": [ 1210 + "arm64" 1211 + ], 1212 + "optional": true, 1213 + "os": [ 1214 + "linux" 1215 + ], 1216 + "funding": { 1217 + "url": "https://opencollective.com/libvips" 1218 + } 1219 + }, 1220 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 1221 + "version": "1.2.3", 1222 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz", 1223 + "integrity": "sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==", 1045 1224 "cpu": [ 1046 1225 "x64" 1047 1226 ], 1048 - "license": "LGPL-3.0-or-later", 1227 + "optional": true, 1228 + "os": [ 1229 + "linux" 1230 + ], 1231 + "funding": { 1232 + "url": "https://opencollective.com/libvips" 1233 + } 1234 + }, 1235 + "node_modules/@img/sharp-linux-arm": { 1236 + "version": "0.34.4", 1237 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz", 1238 + "integrity": "sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==", 1239 + "cpu": [ 1240 + "arm" 1241 + ], 1242 + "optional": true, 1243 + "os": [ 1244 + "linux" 1245 + ], 1246 + "engines": { 1247 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1248 + }, 1249 + "funding": { 1250 + "url": "https://opencollective.com/libvips" 1251 + }, 1252 + "optionalDependencies": { 1253 + "@img/sharp-libvips-linux-arm": "1.2.3" 1254 + } 1255 + }, 1256 + "node_modules/@img/sharp-linux-arm64": { 1257 + "version": "0.34.4", 1258 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz", 1259 + "integrity": "sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==", 1260 + "cpu": [ 1261 + "arm64" 1262 + ], 1263 + "optional": true, 1264 + "os": [ 1265 + "linux" 1266 + ], 1267 + "engines": { 1268 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1269 + }, 1270 + "funding": { 1271 + "url": "https://opencollective.com/libvips" 1272 + }, 1273 + "optionalDependencies": { 1274 + "@img/sharp-libvips-linux-arm64": "1.2.3" 1275 + } 1276 + }, 1277 + "node_modules/@img/sharp-linux-ppc64": { 1278 + "version": "0.34.4", 1279 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz", 1280 + "integrity": "sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==", 1281 + "cpu": [ 1282 + "ppc64" 1283 + ], 1284 + "optional": true, 1285 + "os": [ 1286 + "linux" 1287 + ], 1288 + "engines": { 1289 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1290 + }, 1291 + "funding": { 1292 + "url": "https://opencollective.com/libvips" 1293 + }, 1294 + "optionalDependencies": { 1295 + "@img/sharp-libvips-linux-ppc64": "1.2.3" 1296 + } 1297 + }, 1298 + "node_modules/@img/sharp-linux-s390x": { 1299 + "version": "0.34.4", 1300 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz", 1301 + "integrity": "sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==", 1302 + "cpu": [ 1303 + "s390x" 1304 + ], 1049 1305 "optional": true, 1050 1306 "os": [ 1051 1307 "linux" 1052 1308 ], 1309 + "engines": { 1310 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1311 + }, 1053 1312 "funding": { 1054 1313 "url": "https://opencollective.com/libvips" 1314 + }, 1315 + "optionalDependencies": { 1316 + "@img/sharp-libvips-linux-s390x": "1.2.3" 1055 1317 } 1056 1318 }, 1057 1319 "node_modules/@img/sharp-linux-x64": { 1058 - "version": "0.34.3", 1059 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.3.tgz", 1060 - "integrity": "sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==", 1320 + "version": "0.34.4", 1321 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz", 1322 + "integrity": "sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==", 1061 1323 "cpu": [ 1062 1324 "x64" 1063 1325 ], 1064 - "license": "Apache-2.0", 1065 1326 "optional": true, 1066 1327 "os": [ 1067 1328 "linux" ··· 1073 1334 "url": "https://opencollective.com/libvips" 1074 1335 }, 1075 1336 "optionalDependencies": { 1076 - "@img/sharp-libvips-linux-x64": "1.2.0" 1337 + "@img/sharp-libvips-linux-x64": "1.2.3" 1338 + } 1339 + }, 1340 + "node_modules/@img/sharp-linuxmusl-arm64": { 1341 + "version": "0.34.4", 1342 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz", 1343 + "integrity": "sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==", 1344 + "cpu": [ 1345 + "arm64" 1346 + ], 1347 + "optional": true, 1348 + "os": [ 1349 + "linux" 1350 + ], 1351 + "engines": { 1352 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1353 + }, 1354 + "funding": { 1355 + "url": "https://opencollective.com/libvips" 1356 + }, 1357 + "optionalDependencies": { 1358 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.3" 1359 + } 1360 + }, 1361 + "node_modules/@img/sharp-linuxmusl-x64": { 1362 + "version": "0.34.4", 1363 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz", 1364 + "integrity": "sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==", 1365 + "cpu": [ 1366 + "x64" 1367 + ], 1368 + "optional": true, 1369 + "os": [ 1370 + "linux" 1371 + ], 1372 + "engines": { 1373 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1374 + }, 1375 + "funding": { 1376 + "url": "https://opencollective.com/libvips" 1377 + }, 1378 + "optionalDependencies": { 1379 + "@img/sharp-libvips-linuxmusl-x64": "1.2.3" 1380 + } 1381 + }, 1382 + "node_modules/@img/sharp-wasm32": { 1383 + "version": "0.34.4", 1384 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz", 1385 + "integrity": "sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==", 1386 + "cpu": [ 1387 + "wasm32" 1388 + ], 1389 + "optional": true, 1390 + "dependencies": { 1391 + "@emnapi/runtime": "^1.5.0" 1392 + }, 1393 + "engines": { 1394 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1395 + }, 1396 + "funding": { 1397 + "url": "https://opencollective.com/libvips" 1398 + } 1399 + }, 1400 + "node_modules/@img/sharp-win32-arm64": { 1401 + "version": "0.34.4", 1402 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz", 1403 + "integrity": "sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==", 1404 + "cpu": [ 1405 + "arm64" 1406 + ], 1407 + "optional": true, 1408 + "os": [ 1409 + "win32" 1410 + ], 1411 + "engines": { 1412 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1413 + }, 1414 + "funding": { 1415 + "url": "https://opencollective.com/libvips" 1416 + } 1417 + }, 1418 + "node_modules/@img/sharp-win32-ia32": { 1419 + "version": "0.34.4", 1420 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz", 1421 + "integrity": "sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==", 1422 + "cpu": [ 1423 + "ia32" 1424 + ], 1425 + "optional": true, 1426 + "os": [ 1427 + "win32" 1428 + ], 1429 + "engines": { 1430 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1431 + }, 1432 + "funding": { 1433 + "url": "https://opencollective.com/libvips" 1434 + } 1435 + }, 1436 + "node_modules/@img/sharp-win32-x64": { 1437 + "version": "0.34.4", 1438 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz", 1439 + "integrity": "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==", 1440 + "cpu": [ 1441 + "x64" 1442 + ], 1443 + "optional": true, 1444 + "os": [ 1445 + "win32" 1446 + ], 1447 + "engines": { 1448 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1449 + }, 1450 + "funding": { 1451 + "url": "https://opencollective.com/libvips" 1077 1452 } 1078 1453 }, 1079 1454 "node_modules/@inngest/ai": { ··· 7632 8007 "url": "https://github.com/sponsors/wooorm" 7633 8008 } 7634 8009 }, 7635 - "node_modules/color": { 7636 - "version": "4.2.3", 7637 - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 7638 - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 7639 - "license": "MIT", 7640 - "dependencies": { 7641 - "color-convert": "^2.0.1", 7642 - "color-string": "^1.9.0" 7643 - }, 7644 - "engines": { 7645 - "node": ">=12.5.0" 7646 - } 7647 - }, 7648 8010 "node_modules/color-convert": { 7649 8011 "version": "2.0.1", 7650 8012 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", ··· 7660 8022 "version": "1.1.4", 7661 8023 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 7662 8024 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 7663 - }, 7664 - "node_modules/color-string": { 7665 - "version": "1.9.1", 7666 - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 7667 - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 7668 - "license": "MIT", 7669 - "dependencies": { 7670 - "color-name": "^1.0.0", 7671 - "simple-swizzle": "^0.2.2" 7672 - } 7673 8025 }, 7674 8026 "node_modules/colorjs.io": { 7675 8027 "version": "0.5.2", ··· 8024 8376 } 8025 8377 }, 8026 8378 "node_modules/detect-libc": { 8027 - "version": "2.0.4", 8028 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 8029 - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 8030 - "license": "Apache-2.0", 8379 + "version": "2.1.2", 8380 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 8381 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 8031 8382 "engines": { 8032 8383 "node": ">=8" 8033 8384 } ··· 10780 11131 "funding": { 10781 11132 "url": "https://github.com/sponsors/ljharb" 10782 11133 } 10783 - }, 10784 - "node_modules/is-arrayish": { 10785 - "version": "0.3.2", 10786 - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 10787 - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 10788 - "license": "MIT" 10789 11134 }, 10790 11135 "node_modules/is-async-function": { 10791 11136 "version": "2.1.1", ··· 15508 15853 "license": "ISC" 15509 15854 }, 15510 15855 "node_modules/sharp": { 15511 - "version": "0.34.3", 15512 - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.3.tgz", 15513 - "integrity": "sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==", 15856 + "version": "0.34.4", 15857 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz", 15858 + "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==", 15514 15859 "hasInstallScript": true, 15515 - "license": "Apache-2.0", 15516 15860 "dependencies": { 15517 - "color": "^4.2.3", 15518 - "detect-libc": "^2.0.4", 15861 + "@img/colour": "^1.0.0", 15862 + "detect-libc": "^2.1.0", 15519 15863 "semver": "^7.7.2" 15520 15864 }, 15521 15865 "engines": { ··· 15525 15869 "url": "https://opencollective.com/libvips" 15526 15870 }, 15527 15871 "optionalDependencies": { 15528 - "@img/sharp-darwin-arm64": "0.34.3", 15529 - "@img/sharp-darwin-x64": "0.34.3", 15530 - "@img/sharp-libvips-darwin-arm64": "1.2.0", 15531 - "@img/sharp-libvips-darwin-x64": "1.2.0", 15532 - "@img/sharp-libvips-linux-arm": "1.2.0", 15533 - "@img/sharp-libvips-linux-arm64": "1.2.0", 15534 - "@img/sharp-libvips-linux-ppc64": "1.2.0", 15535 - "@img/sharp-libvips-linux-s390x": "1.2.0", 15536 - "@img/sharp-libvips-linux-x64": "1.2.0", 15537 - "@img/sharp-libvips-linuxmusl-arm64": "1.2.0", 15538 - "@img/sharp-libvips-linuxmusl-x64": "1.2.0", 15539 - "@img/sharp-linux-arm": "0.34.3", 15540 - "@img/sharp-linux-arm64": "0.34.3", 15541 - "@img/sharp-linux-ppc64": "0.34.3", 15542 - "@img/sharp-linux-s390x": "0.34.3", 15543 - "@img/sharp-linux-x64": "0.34.3", 15544 - "@img/sharp-linuxmusl-arm64": "0.34.3", 15545 - "@img/sharp-linuxmusl-x64": "0.34.3", 15546 - "@img/sharp-wasm32": "0.34.3", 15547 - "@img/sharp-win32-arm64": "0.34.3", 15548 - "@img/sharp-win32-ia32": "0.34.3", 15549 - "@img/sharp-win32-x64": "0.34.3" 15872 + "@img/sharp-darwin-arm64": "0.34.4", 15873 + "@img/sharp-darwin-x64": "0.34.4", 15874 + "@img/sharp-libvips-darwin-arm64": "1.2.3", 15875 + "@img/sharp-libvips-darwin-x64": "1.2.3", 15876 + "@img/sharp-libvips-linux-arm": "1.2.3", 15877 + "@img/sharp-libvips-linux-arm64": "1.2.3", 15878 + "@img/sharp-libvips-linux-ppc64": "1.2.3", 15879 + "@img/sharp-libvips-linux-s390x": "1.2.3", 15880 + "@img/sharp-libvips-linux-x64": "1.2.3", 15881 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", 15882 + "@img/sharp-libvips-linuxmusl-x64": "1.2.3", 15883 + "@img/sharp-linux-arm": "0.34.4", 15884 + "@img/sharp-linux-arm64": "0.34.4", 15885 + "@img/sharp-linux-ppc64": "0.34.4", 15886 + "@img/sharp-linux-s390x": "0.34.4", 15887 + "@img/sharp-linux-x64": "0.34.4", 15888 + "@img/sharp-linuxmusl-arm64": "0.34.4", 15889 + "@img/sharp-linuxmusl-x64": "0.34.4", 15890 + "@img/sharp-wasm32": "0.34.4", 15891 + "@img/sharp-win32-arm64": "0.34.4", 15892 + "@img/sharp-win32-ia32": "0.34.4", 15893 + "@img/sharp-win32-x64": "0.34.4" 15550 15894 } 15551 15895 }, 15552 15896 "node_modules/shebang-command": { ··· 15673 16017 }, 15674 16018 "funding": { 15675 16019 "url": "https://github.com/sponsors/isaacs" 15676 - } 15677 - }, 15678 - "node_modules/simple-swizzle": { 15679 - "version": "0.2.2", 15680 - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 15681 - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 15682 - "license": "MIT", 15683 - "dependencies": { 15684 - "is-arrayish": "^0.3.1" 15685 16020 } 15686 16021 }, 15687 16022 "node_modules/sirv": {
+1 -1
package.json
··· 81 81 "remark-rehype": "^11.1.0", 82 82 "remark-stringify": "^11.0.0", 83 83 "replicache": "^15.3.0", 84 - "sharp": "^0.34.2", 84 + "sharp": "^0.34.4", 85 85 "shiki": "^3.8.1", 86 86 "swr": "^2.3.3", 87 87 "thumbhash": "^0.1.1",