Replace /post's managed filepond field with a controlled 'photos' field
(theme forms/fields/photos) + picker logic in post-form.js: magic-byte
sniff (ISO-BMFF ftyp brands, not filename/MIME), lazy import('heic-to')
only for real HEIC (deferred 3MB chunk via ESM splitting), per-thumbnail
converting/uploading/done/error states, in-flight counter gating Submit,
and fail-closed skip on conversion failure. Converted JPEGs POST to Grav's
AJAX file-upload route into the form flash (the only path copyFiles reads),
so add-page-by-form attaches them on submit. Web-format photos pass through.
Refs R8, R9, R16, R17, AE1, AE4, KTD4.
21 lines
1014 B
JSON
21 lines
1014 B
JSON
{
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "node scripts/gen-weather-icons.js && esbuild js/src/main.js --bundle --minify --format=iife --outfile=js/main.js --loader:.woff2=file --loader:.woff=file --asset-names=../fonts/[name] && esbuild js/src/map.js --bundle --minify --format=iife --outfile=js/map.js && rm -rf js/post && esbuild js/src/post-form.js --bundle --minify --format=esm --splitting --outdir=js/post && mkdir -p css-compiled fonts && { mv js/main.css css-compiled/main.css 2>/dev/null || true; } && { mv js/map.css css-compiled/map.css 2>/dev/null || true; } && { mv js/post/post-form.css css-compiled/post-form.css 2>/dev/null || true; }"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/dm-sans": "latest",
|
|
"@fontsource/dm-serif-display": "latest",
|
|
"@mapbox/togeojson": "^0.16.2",
|
|
"easymde": "^2",
|
|
"heic-to": "^1",
|
|
"maplibre-gl": "^4",
|
|
"photoswipe": "^5",
|
|
"scrollama": "^3"
|
|
},
|
|
"devDependencies": {
|
|
"esbuild": "^0.21",
|
|
"lucide-static": "latest"
|
|
}
|
|
}
|