From 56304514ffe0ca842fd35687a548be1b38e87941 Mon Sep 17 00:00:00 2001 From: Dmitriy Petrov Date: Sun, 12 Jul 2026 00:10:25 +0300 Subject: [PATCH] Bump Harbor versions and refine delete strike styling --- src/shared/versions.js | 4 ++-- src/web/styles.css | 24 ++++++++++++++++-------- test/web/rule-editor-contract.test.js | 3 ++- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/shared/versions.js b/src/shared/versions.js index 8419068..d39f15d 100644 --- a/src/shared/versions.js +++ b/src/shared/versions.js @@ -1,6 +1,6 @@ export const HARBOR_VERSIONS = Object.freeze({ - macClient: '0.6.6', - gatewayClient: '0.6.5', + macClient: '0.6.7', + gatewayClient: '0.6.6', gatewayBackend: '0.6.0', }); diff --git a/src/web/styles.css b/src/web/styles.css index 2ead8ac..93b8d78 100644 --- a/src/web/styles.css +++ b/src/web/styles.css @@ -915,6 +915,7 @@ p { .client-local-rule { position: relative; + isolation: isolate; min-width: 0; display: grid; grid-template-columns: 24px 116px minmax(0, 1fr) 112px 28px; @@ -960,20 +961,27 @@ p { .client-delete-strike { position: absolute; - left: 0; - right: 0; - top: 50%; - z-index: 6; - height: 4px; - background: oklch(0.68 0.15 28); - clip-path: polygon(0 50%, 18% 40%, 50% 28%, 82% 40%, 100% 50%, 82% 60%, 50% 72%, 18% 60%); - filter: drop-shadow(0 0 2px oklch(0.68 0.15 28 / 0.5)); + inset: 0; + z-index: 20; + background: radial-gradient(ellipse at center, oklch(0.68 0.15 28 / 0.3) 0%, oklch(0.68 0.15 28 / 0.12) 36%, transparent 74%); opacity: 0; pointer-events: none; transform: scaleX(0); transform-origin: left center; } +.client-delete-strike::after { + content: ''; + position: absolute; + left: 0; + right: 0; + top: calc(50% - 2px); + height: 4px; + background: oklch(0.68 0.15 28); + clip-path: polygon(0 50%, 18% 40%, 50% 28%, 82% 40%, 100% 50%, 82% 60%, 50% 72%, 18% 60%); + filter: drop-shadow(0 0 2px oklch(0.68 0.15 28 / 0.5)); +} + .client-deletable-row.is-removing > .client-delete-strike { animation: client-delete-strike 760ms cubic-bezier(0.16, 1, 0.3, 1) both; } diff --git a/test/web/rule-editor-contract.test.js b/test/web/rule-editor-contract.test.js index aadcaf2..06b4aef 100644 --- a/test/web/rule-editor-contract.test.js +++ b/test/web/rule-editor-contract.test.js @@ -22,7 +22,8 @@ test('rule editor add latency stays constant and dirty exits are guarded', () => assert.match(component, /client-deletable-row/); assert.match(component, /className="client-delete-strike"[\s\S]*onAnimationEnd/); assert.match(styles, /\.client-deletable-row\.is-removing > \.client-delete-strike[\s\S]*client-delete-strike/); - assert.match(styles, /\.client-delete-strike[\s\S]*clip-path: polygon\(0 50%[\s\S]*100% 50%/); + assert.match(styles, /\.client-delete-strike::after[\s\S]*clip-path: polygon\(0 50%[\s\S]*100% 50%/); + assert.match(styles, /\.client-delete-strike \{[\s\S]*z-index: 20[\s\S]*radial-gradient/); assert.match(styles, /@keyframes client-delete-strike[\s\S]*scaleX\(0\)[\s\S]*scaleX\(1\)/); assert.match(styles, /\.client-local-rule:has\(\.client-rule-type\.is-open\)[\s\S]*z-index: 5/); });