diff --git a/src/shared/versions.ts b/src/shared/versions.ts index c805c1e..5e2439e 100644 --- a/src/shared/versions.ts +++ b/src/shared/versions.ts @@ -1,6 +1,6 @@ export const HARBOR_VERSIONS = Object.freeze({ - macClient: '0.23.8', - gatewayClient: '0.24.8', + macClient: '0.23.9', + gatewayClient: '0.24.9', gatewayBackend: '0.24.0', }); diff --git a/src/web/styles/layout.css b/src/web/styles/layout.css index 6fb62f2..20c64a6 100644 --- a/src/web/styles/layout.css +++ b/src/web/styles/layout.css @@ -576,7 +576,7 @@ .client-panel.has-subscription { --client-work-height: min(640px, calc(100vh - 120px)); --client-power-top: calc((var(--client-work-height) - 96px) / 2); - transform: translateY(-9vh); + top: -9vh; } } diff --git a/test/web/responsive-layout-contract.test.js b/test/web/responsive-layout-contract.test.js index 02353eb..6af0468 100644 --- a/test/web/responsive-layout-contract.test.js +++ b/test/web/responsive-layout-contract.test.js @@ -36,7 +36,9 @@ test('desktop layout keeps the power control on a symmetric center axis beside t assert.doesNotMatch(styles, /\.client-panel\.has-subscription \.client-form\b/); assert.doesNotMatch(styles, /\.client-form-content\b/); assert.match(styles, /--client-power-top:\s*calc\(\(var\(--client-work-height\) - 96px\) \/ 2\)/); - assert.match(styles, /\.client-panel\.has-subscription \{[\s\S]*transform:\s*translateY\(-9vh\)/); + const subscribedPanel = /\.client-panel\.has-subscription\s*\{([^}]*)\}/.exec(layoutStyles)?.[1] || ''; + assert.match(subscribedPanel, /top:\s*-9vh/); + assert.doesNotMatch(subscribedPanel, /\b(?:transform|filter|perspective|contain|will-change)\s*:/); assert.match(styles, /\.client-panel\.has-subscription \.client-power-section \{[\s\S]*height:\s*var\(--client-work-height\);[\s\S]*padding-top:\s*var\(--client-power-top\)/); assert.match(rule('.client-panel.is-gateway-home'), /min-height:\s*max\(620px, calc\(100dvh - 80px\)\)[\s\S]*grid-template-rows:\s*minmax\(260px, 1fr\) auto[\s\S]*row-gap:\s*36px/); assert.match(rule('.client-gateway-summary'), /grid-column:\s*1 \/ -1[\s\S]*grid-row:\s*2[\s\S]*justify-self:\s*center[\s\S]*width:\s*min\(860px, calc\(100% - 48px\)\)/); diff --git a/test/web/style-boundaries.test.js b/test/web/style-boundaries.test.js index 7d4c3ae..9c83a3f 100644 --- a/test/web/style-boundaries.test.js +++ b/test/web/style-boundaries.test.js @@ -49,11 +49,11 @@ const acceptedLedger = { hashes: { cascadeEdges: '1f48ed1c4272092b7698d94ea8d0fc1ebfb66454a6a715c9b684515bbff74fb8', customProperties: 'fc8401b40b8d2cc8a1fc1716360ba8e5baccb694cdabde68427d3c92c04a84d4', - declarations: '8507f8575ae0bd512449c411f0a553f6478ab18fdf217534a32617a8abb9aeb2', + declarations: '35919553b73a13a1690570968da5b5bd3b493a067cfe74834bbe0006e2861fd2', duplicateKeyframes: '4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945', duplicateSelectors: '419962e669cbfdf5c8186318cb26688477fc0199cae98df8e1cd9bf5cddd76c2', keyframes: 'fb859c4d0d1bfd2f5a18904e30a5f79c6ce6931d74fe88cbd506fb28c334b7ac', - ruleDeclarationSequences: 'a1d47956771b1503fad124768e3157fe924c6c76914d219885e2cc2dab4413bb', + ruleDeclarationSequences: '92b8ba9efa203d28b6f88809abb819541f3d85d92a891e1a9b93d768bee9760a', selectors: '6dd352f47606c21b5c07817e185753baa8b3168ab92d3cfef4b28f772b989cc7', variableReferences: '700137c05be5f12722a7ebec90d06be70dde203a754a9312d45c03ff05ff08ec', witnesses: 'f51f070cc2c7dba0f8d08518cdeee49eaf176aac82e3571cdd8498315ba8db83', @@ -405,8 +405,8 @@ test('main owns one public stylesheet and the regrouped production CSS is determ assert.equal((main.match(/import ['"][^'"]+\.css['"]/g) || []).length, 1); const assets = fs.readdirSync(path.join(root, 'dist/assets')).filter((file) => file.endsWith('.css')); - assert.deepEqual(assets, ['index-OzbtuDco.css']); + assert.deepEqual(assets, ['index-DTaZk39l.css']); const built = fs.readFileSync(path.join(root, 'dist/assets', assets[0])); - assert.equal(built.byteLength, 123218); - assert.equal(sha256(built), 'e462ddaffffecd18bbc0f14daebc11e6c0df149e6322e1356433d4052550389b'); + assert.equal(built.byteLength, 123200); + assert.equal(sha256(built), 'd2ab8641a6c7fedbcde0eb45d89b5a911a6e8a27b398e12693628ab742d59e12'); });