Fix page rect does not consider whole content and various pdf loading issues

This commit is contained in:
CodeDoctorDE
2025-11-14 23:04:50 +01:00
parent 7a88c789b8
commit eb72e08e59
14 changed files with 88 additions and 89 deletions

View File

@@ -77,18 +77,18 @@ packages:
dependency: transitive
description:
name: build_daemon
sha256: "409002f1adeea601018715d613115cfaf0e31f512cb80ae4534c79867ae2363d"
sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957
url: "https://pub.dev"
source: hosted
version: "4.1.0"
version: "4.1.1"
build_runner:
dependency: "direct dev"
description:
name: build_runner
sha256: a9461b8e586bf018dd4afd2e13b49b08c6a844a4b226c8d1d10f3a723cdd78c3
sha256: "7b5b569f3df370590a85029148d6fc66c7d0201fc6f1847c07dd85d365ae9fcd"
url: "https://pub.dev"
source: hosted
version: "2.10.1"
version: "2.10.3"
built_collection:
dependency: transitive
description:
@@ -182,10 +182,10 @@ packages:
dependency: transitive
description:
name: dart_style
sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697
sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
url: "https://pub.dev"
source: hosted
version: "3.1.2"
version: "3.1.3"
ffi:
dependency: transitive
description:
@@ -543,26 +543,26 @@ packages:
dependency: "direct dev"
description:
name: test
sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7"
sha256: "8f0eb7fa76b7d05a4f3707e0dbd581babef5b0915ca508b757cf15d0cabb56cb"
url: "https://pub.dev"
source: hosted
version: "1.26.3"
version: "1.27.0"
test_api:
dependency: transitive
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
sha256: "19a78f63e83d3a61f00826d09bc2f60e191bf3504183c001262be6ac75589fb8"
url: "https://pub.dev"
source: hosted
version: "0.7.7"
version: "0.7.8"
test_core:
dependency: transitive
description:
name: test_core
sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0"
sha256: bad9916601a4f2ef6e4dbc466fb712e4b42cf4917c3fd428b018f51984fce13b
url: "https://pub.dev"
source: hosted
version: "0.6.12"
version: "0.6.13"
type_plus:
dependency: transitive
description:

View File

@@ -30,8 +30,8 @@ android {
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
flavorDimensions += "default"
@@ -92,7 +92,7 @@ android {
kotlin {
compilerOptions {
jvmTarget = JvmTarget.fromTarget("11")
jvmTarget = JvmTarget.fromTarget("17")
}
}

View File

@@ -88,7 +88,7 @@ abstract class DocumentLoaded extends DocumentState {
FileMetadata? metadata,
DocumentInfo? info,
}) : page = page ?? data.getPage(pageName) ?? DocumentDefaults.createPage(),
assetService = assetService ?? AssetService(data),
assetService = assetService ?? AssetService(),
metadata =
metadata ?? data.getMetadata() ?? DocumentDefaults.createMetadata(),
info = info ?? data.getInfo() ?? DocumentDefaults.createInfo();

View File

@@ -1689,7 +1689,7 @@ class CurrentIndexCubit extends Cubit<CurrentIndex> {
Rect getPageRect() {
Rect? rect;
for (final renderer in renderers) {
final rendererRect = renderer.rect;
final rendererRect = renderer.expandedRect;
if (rendererRect == null) continue;
rect = rect?.expandToInclude(rendererRect) ?? rendererRect;
}

View File

@@ -106,7 +106,7 @@ class ImageBackgroundRenderer extends Renderer<ImageBackground> {
super.setup(transformCubit, document, assetService, page);
if (image != null) return;
try {
image = await assetService.getImage(element.source);
image = await assetService.getImage(element.source, document);
} catch (_) {}
}

View File

@@ -15,6 +15,10 @@ class ImageRenderer extends Renderer<ImageElement> {
final uri = Uri.parse(element.source);
if (uri.hasScheme && !uri.isScheme('file')) return false;
final shouldUpdate = uri.path == path;
if (shouldUpdate) {
image?.dispose();
image = null;
}
return shouldUpdate;
}

View File

@@ -9,22 +9,20 @@ Uint8List? _getDataFromSource((NoteData, String) message) =>
element_helper.getDataFromSource(message.$1, message.$2);
class AssetService {
final NoteData document;
final Map<String, ui.Image> _images = {};
final Map<String, Future<Uint8List?>> _dataCache = {};
final Map<String, PdfDocument> _pdfDocumentCache = {};
AssetService(this.document);
AssetService();
Future<ui.Image?> getImage(String path, [NoteData? document]) async {
Future<ui.Image?> getImage(String path, NoteData document) async {
if (_images.containsKey(path)) {
return _images[path]!.clone();
}
document ??= this.document;
return _importImage(path);
return _importImage(path, document);
}
Future<ui.Image?> _importImage(String path) async {
Future<ui.Image?> _importImage(String path, NoteData document) async {
var data = await compute(_getDataFromSource, (document, path));
if (data == null) return null;
final codec = await ui.instantiateImageCodec(data);
@@ -45,14 +43,10 @@ class AssetService {
_images.remove(path);
}
Future<Uint8List?> computeDataFromSource(
String source, [
NoteData? document,
]) {
Future<Uint8List?> computeDataFromSource(String source, NoteData document) {
if (_dataCache.containsKey(source)) {
return _dataCache[source]!;
}
document ??= this.document;
final data = element_helper.computeDataFromSource(document, source);
_dataCache[source] = data;
return data;
@@ -62,14 +56,10 @@ class AssetService {
_dataCache.remove(source);
}
Future<PdfDocument?> getPdfDocument(
String source, [
NoteData? document,
]) async {
Future<PdfDocument?> getPdfDocument(String source, NoteData document) async {
if (_pdfDocumentCache.containsKey(source)) {
return _pdfDocumentCache[source];
}
document ??= this.document;
final data = await computeDataFromSource(source, document);
if (data == null) return null;
final pdfDocument = await PdfDocument.openData(data);

View File

@@ -488,7 +488,7 @@ class ImportService {
.map((e) => Renderer.fromInstance(e))
.toList();
final transformCubit = TransformCubit(1, position);
final assetService = AssetService(document);
final assetService = AssetService();
await Future.wait(
renderers.map(
(e) async =>

View File

@@ -253,7 +253,7 @@ class _ProjectPageState extends State<ProjectPage> {
final renderers = page.content
.map((e) => Renderer.fromInstance(e))
.toList();
final assetService = AssetService(document);
final assetService = AssetService();
final transformCubit = TransformCubit(pixelRatio);
await Future.wait(
renderers.map(

View File

@@ -109,10 +109,10 @@ packages:
dependency: "direct dev"
description:
name: build_runner
sha256: "04f69b1502f66e22ae7990bbd01eb552b7f12793c4d3ea6e715d0ac5e98bcdac"
sha256: "7b5b569f3df370590a85029148d6fc66c7d0201fc6f1847c07dd85d365ae9fcd"
url: "https://pub.dev"
source: hosted
version: "2.10.2"
version: "2.10.3"
built_collection:
dependency: transitive
description:
@@ -325,10 +325,10 @@ packages:
dependency: transitive
description:
name: dart_style
sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697
sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
url: "https://pub.dev"
source: hosted
version: "3.1.2"
version: "3.1.3"
dbus:
dependency: transitive
description:
@@ -1000,10 +1000,10 @@ packages:
dependency: "direct main"
description:
name: pdfrx
sha256: "45d535ab7156144e19748e95ecbc1e2ef3f72ed0ea91fb2b22b7493dd95167a2"
sha256: aff4b53b463c2a6417325d47198fdf11e91f18298fe42681ced203bb2cd611c3
url: "https://pub.dev"
source: hosted
version: "2.2.11"
version: "2.2.12"
pdfrx_engine:
dependency: transitive
description:
@@ -1016,10 +1016,10 @@ packages:
dependency: "direct main"
description:
name: perfect_freehand
sha256: "399c16dc35a6eb1dee4d9a2c638ff0fe71ebb5e8980ab41261bf4306dafaa4af"
sha256: "7a6a591832be33fe82d8ecab68562a794d39837af16e7413fe0ccebdd0c3e3c0"
url: "https://pub.dev"
source: hosted
version: "2.5.0"
version: "2.5.1"
petitparser:
dependency: transitive
description:

View File

@@ -17,7 +17,7 @@
"@phosphor-icons/react": "^2.1.10",
"@types/react": "^19.2.4",
"@types/react-dom": "^19.2.3",
"astro": "^5.15.5",
"astro": "^5.15.7",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"remark-gemoji": "^8.0.0",

84
docs/pnpm-lock.yaml generated
View File

@@ -16,7 +16,7 @@ importers:
version: 4.4.2(@types/node@24.10.1)(@types/react-dom@19.2.3(@types/react@19.2.4))(@types/react@19.2.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1)
'@astrojs/starlight':
specifier: ^0.36.2
version: 0.36.2(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))
version: 0.36.2(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))
'@linwooddev/style':
specifier: github:LinwoodDev/style#efbdf8f05d4ef1cf6fec65c90194d30b68b3c64e&path:/packages/web
version: https://codeload.github.com/LinwoodDev/style/tar.gz/efbdf8f05d4ef1cf6fec65c90194d30b68b3c64e#path:/packages/web
@@ -30,8 +30,8 @@ importers:
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.4)
astro:
specifier: ^5.15.5
version: 5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
specifier: ^5.15.7
version: 5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
react:
specifier: ^19.2.0
version: 19.2.0
@@ -50,7 +50,7 @@ importers:
devDependencies:
'@vite-pwa/astro':
specifier: ^1.1.1
version: 1.1.1(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))(vite-plugin-pwa@1.1.0(vite@6.4.1(@types/node@24.10.1)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))
version: 1.1.1(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))(vite-plugin-pwa@1.1.0(vite@6.4.1(@types/node@24.10.1)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))
sass:
specifier: ^1.94.0
version: 1.94.0
@@ -670,8 +670,8 @@ packages:
'@emmetio/stream-reader@2.2.0':
resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==}
'@emnapi/runtime@1.7.0':
resolution: {integrity: sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==}
'@emnapi/runtime@1.7.1':
resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
'@esbuild/aix-ppc64@0.25.12':
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
@@ -1523,8 +1523,8 @@ packages:
peerDependencies:
astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0
astro@5.15.5:
resolution: {integrity: sha512-A56u4H6gFHEb0yRHcGTOADBb7jmEwfDjQpkqVV/Z+ZWlu6mYuwCrIcOUtZjNno0chrRKmOeZWDofW23ql18y3w==}
astro@5.15.7:
resolution: {integrity: sha512-Zmw6otInhxcjoGcEyEN+wxgdiQERQOS3VzOmAKsDdKK8Fb4x1656r+9NtaTXCRZ0/fGtHjkSvkGUhZUJLXKfxQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
@@ -1574,8 +1574,8 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
baseline-browser-mapping@2.8.27:
resolution: {integrity: sha512-2CXFpkjVnY2FT+B6GrSYxzYf65BJWEqz5tIRHCvNsZZ2F3CmsCB37h8SpYgKG7y9C4YAeTipIPWG7EmFmhAeXA==}
baseline-browser-mapping@2.8.28:
resolution: {integrity: sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==}
hasBin: true
bcp-47-match@2.0.3:
@@ -1732,8 +1732,8 @@ packages:
engines: {node: '>=4'}
hasBin: true
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
csstype@3.2.0:
resolution: {integrity: sha512-si++xzRAY9iPp60roQiFta7OFbhrgvcthrhlNAGeQptSY25uJjkfUV8OArC3KLocB8JT8ohz+qgxWCmz8RhjIg==}
data-view-buffer@1.0.2:
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
@@ -1827,8 +1827,8 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
electron-to-chromium@1.5.250:
resolution: {integrity: sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw==}
electron-to-chromium@1.5.252:
resolution: {integrity: sha512-53uTpjtRgS7gjIxZ4qCgFdNO2q+wJt/Z8+xAvxbCqXPJrY6h7ighUkadQmNMXH96crtpa6gPFNP7BF4UBGDuaA==}
emmet@2.4.11:
resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==}
@@ -2413,8 +2413,8 @@ packages:
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
magicast@0.3.5:
resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
magicast@0.5.1:
resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==}
markdown-extensions@2.0.0:
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
@@ -3040,8 +3040,8 @@ packages:
smob@1.5.0:
resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
smol-toml@1.4.2:
resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==}
smol-toml@1.5.2:
resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==}
engines: {node: '>= 18'}
source-map-js@1.2.1:
@@ -3763,7 +3763,7 @@ snapshots:
remark-rehype: 11.1.2
remark-smartypants: 3.0.2
shiki: 3.15.0
smol-toml: 1.4.2
smol-toml: 1.5.2
unified: 11.0.5
unist-util-remove-position: 5.0.0
unist-util-visit: 5.0.0
@@ -3772,12 +3772,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@astrojs/mdx@4.3.10(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))':
'@astrojs/mdx@4.3.10(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))':
dependencies:
'@astrojs/markdown-remark': 6.3.8
'@mdx-js/mdx': 3.1.1
acorn: 8.15.0
astro: 5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
astro: 5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
es-module-lexer: 1.7.0
estree-util-visit: 2.0.0
hast-util-to-html: 9.0.5
@@ -3824,17 +3824,17 @@ snapshots:
stream-replace-string: 2.0.0
zod: 3.25.76
'@astrojs/starlight@0.36.2(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))':
'@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))':
dependencies:
'@astrojs/markdown-remark': 6.3.8
'@astrojs/mdx': 4.3.10(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))
'@astrojs/mdx': 4.3.10(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))
'@astrojs/sitemap': 3.6.0
'@pagefind/default-ui': 1.4.0
'@types/hast': 3.0.4
'@types/js-yaml': 4.0.9
'@types/mdast': 4.0.4
astro: 5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
astro-expressive-code: 0.41.3(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))
astro: 5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
astro-expressive-code: 0.41.3(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))
bcp-47: 2.1.0
hast-util-from-html: 2.0.3
hast-util-select: 6.0.4
@@ -4566,7 +4566,7 @@ snapshots:
'@emmetio/stream-reader@2.2.0': {}
'@emnapi/runtime@1.7.0':
'@emnapi/runtime@1.7.1':
dependencies:
tslib: 2.8.1
optional: true
@@ -4758,7 +4758,7 @@ snapshots:
'@img/sharp-wasm32@0.34.5':
dependencies:
'@emnapi/runtime': 1.7.0
'@emnapi/runtime': 1.7.1
optional: true
'@img/sharp-win32-arm64@0.34.5':
@@ -5155,7 +5155,7 @@ snapshots:
'@types/react@19.2.4':
dependencies:
csstype: 3.1.3
csstype: 3.2.0
'@types/resolve@1.20.2': {}
@@ -5171,9 +5171,9 @@ snapshots:
'@ungap/structured-clone@1.3.0': {}
'@vite-pwa/astro@1.1.1(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))(vite-plugin-pwa@1.1.0(vite@6.4.1(@types/node@24.10.1)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))':
'@vite-pwa/astro@1.1.1(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1))(vite-plugin-pwa@1.1.0(vite@6.4.1(@types/node@24.10.1)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))':
dependencies:
astro: 5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
astro: 5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
vite-plugin-pwa: 1.1.0(vite@6.4.1(@types/node@24.10.1)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@24.10.1)(sass@1.94.0)(terser@5.44.1)(yaml@2.8.1))':
@@ -5299,12 +5299,12 @@ snapshots:
astring@1.9.0: {}
astro-expressive-code@0.41.3(astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)):
astro-expressive-code@0.41.3(astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)):
dependencies:
astro: 5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
astro: 5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1)
rehype-expressive-code: 0.41.3
astro@5.15.5(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1):
astro@5.15.7(@types/node@24.10.1)(rollup@2.79.2)(sass@1.94.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.1):
dependencies:
'@astrojs/compiler': 2.13.0
'@astrojs/internal-helpers': 0.7.4
@@ -5339,7 +5339,7 @@ snapshots:
import-meta-resolve: 4.2.0
js-yaml: 4.1.1
magic-string: 0.30.21
magicast: 0.3.5
magicast: 0.5.1
mrmime: 2.0.1
neotraverse: 0.6.18
p-limit: 6.2.0
@@ -5351,7 +5351,7 @@ snapshots:
rehype: 13.0.2
semver: 7.7.3
shiki: 3.15.0
smol-toml: 1.4.2
smol-toml: 1.5.2
tinyexec: 1.0.2
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@5.9.3)
@@ -5449,7 +5449,7 @@ snapshots:
base64-js@1.5.1: {}
baseline-browser-mapping@2.8.27: {}
baseline-browser-mapping@2.8.28: {}
bcp-47-match@2.0.3: {}
@@ -5491,9 +5491,9 @@ snapshots:
browserslist@4.28.0:
dependencies:
baseline-browser-mapping: 2.8.27
baseline-browser-mapping: 2.8.28
caniuse-lite: 1.0.30001754
electron-to-chromium: 1.5.250
electron-to-chromium: 1.5.252
node-releases: 2.0.27
update-browserslist-db: 1.1.4(browserslist@4.28.0)
@@ -5593,7 +5593,7 @@ snapshots:
cssesc@3.0.0: {}
csstype@3.1.3: {}
csstype@3.2.0: {}
data-view-buffer@1.0.2:
dependencies:
@@ -5676,7 +5676,7 @@ snapshots:
dependencies:
jake: 10.9.4
electron-to-chromium@1.5.250: {}
electron-to-chromium@1.5.252: {}
emmet@2.4.11:
dependencies:
@@ -6465,7 +6465,7 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
magicast@0.3.5:
magicast@0.5.1:
dependencies:
'@babel/parser': 7.28.5
'@babel/types': 7.28.5
@@ -7547,7 +7547,7 @@ snapshots:
smob@1.5.0: {}
smol-toml@1.4.2: {}
smol-toml@1.5.2: {}
source-map-js@1.2.1: {}

View File

@@ -0,0 +1,5 @@
* Fix page rect does not consider whole content
* Fix png not loading after importing
* Fix png not updating after doing operations like flip or invert
Read more here: https://linwood.dev/butterfly/2.4.2-rc.0

View File

@@ -37,10 +37,10 @@ packages:
dependency: "direct main"
description:
name: http
sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
version: "1.6.0"
http_parser:
dependency: transitive
description: