diff --git a/package-lock.json b/package-lock.json index bf7016396..6cedbe2e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2024,6 +2024,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2064,6 +2065,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" } @@ -3996,7 +3998,6 @@ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -4412,7 +4413,6 @@ "integrity": "sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/shared": "3.5.28" } @@ -4423,7 +4423,6 @@ "integrity": "sha512-POVHTdbgnrBBIpnbYU4y7pOMNlPn2QVxVzkvEA2pEgvzbelQq4ZOUxbp2oiyo+BOtiYlm8Q44wShHJoBvDPAjQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.28", "@vue/shared": "3.5.28" @@ -4435,7 +4434,6 @@ "integrity": "sha512-4SXxSF8SXYMuhAIkT+eBRqOkWEfPu6nhccrzrkioA6l0boiq7sp18HCOov9qWJA5HML61kW8p/cB4MmBiG9dSA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.28", "@vue/runtime-core": "3.5.28", @@ -4449,7 +4447,6 @@ "integrity": "sha512-pf+5ECKGj8fX95bNincbzJ6yp6nyzuLDhYZCeFxUNp8EBrQpPpQaLX3nNCp49+UbgbPun3CeVE+5CXVV1Xydfg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-ssr": "3.5.28", "@vue/shared": "3.5.28" @@ -6876,8 +6873,7 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ctype": { "version": "0.5.3", @@ -11710,6 +11706,7 @@ "integrity": "sha512-KDYJgZ6T2TKdU8yBfYueq5EPG/EylMsBvCaenWMJb2OXmjgczzwveRCoJ+Hgj1lXPDyasvrgneSn4GBuR1hYyA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@acemir/cssom": "^0.9.31", "@asamuzakjp/dom-selector": "^6.7.6", @@ -14861,6 +14858,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -18460,6 +18458,7 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -18535,6 +18534,7 @@ "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "4.0.18", "@vitest/mocker": "4.0.18", diff --git a/packages/child/send/size.js b/packages/child/send/size.js index 411c9098d..348405acb 100644 --- a/packages/child/send/size.js +++ b/packages/child/send/size.js @@ -44,7 +44,10 @@ function sendSize( // Ignore overflowObserver here, as more efficient than using // mutationObserver to detect OVERFLOW_ATTR changes - case sendPending === true && triggerEvent !== OVERFLOW_OBSERVER: { + // Also allow manual and parent resize requests to bypass the pending check + case sendPending === true && + triggerEvent !== OVERFLOW_OBSERVER && + !(triggerEvent in IGNORE_DISABLE_RESIZE): { purge() log('Resize already pending - Ignored resize request') break // only update once per frame diff --git a/packages/child/size/content.js b/packages/child/size/content.js index 12e7c1b70..645fb96e3 100644 --- a/packages/child/size/content.js +++ b/packages/child/size/content.js @@ -3,9 +3,11 @@ import { HIGHLIGHT } from 'auto-console-group' import { ENABLE, INIT, + MANUAL_RESIZE_REQUEST, MUTATION_OBSERVER, NO_CHANGE, OVERFLOW_OBSERVER, + PARENT_RESIZE_REQUEST, RESIZE_OBSERVER, SET_OFFSET_SIZE, SIZE_CHANGE_DETECTED, @@ -38,6 +40,8 @@ export default function getContentSize( case INIT: case ENABLE: case SIZE_CHANGE_DETECTED: + case MANUAL_RESIZE_REQUEST: + case PARENT_RESIZE_REQUEST: state.height = newHeight state.width = newWidth // eslint-disable-next-line no-fallthrough