Refine rule editor exit animations and bump Harbor versions
All checks were successful
Build and Deploy Gateway / build-and-push (push) Successful in 15s
Build and Deploy Gateway / deploy (push) Successful in 7s

This commit is contained in:
2026-07-12 00:28:34 +03:00
parent c56f51e07b
commit 8db9d30828
3 changed files with 12 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
export const HARBOR_VERSIONS = Object.freeze({ export const HARBOR_VERSIONS = Object.freeze({
macClient: '0.6.12', macClient: '0.6.13',
gatewayClient: '0.6.11', gatewayClient: '0.6.12',
gatewayBackend: '0.6.0', gatewayBackend: '0.6.0',
}); });

View File

@@ -956,7 +956,7 @@ p {
.client-local-rule.is-removing { .client-local-rule.is-removing {
pointer-events: none; pointer-events: none;
animation: client-local-rule-leave 760ms cubic-bezier(0.7, 0, 0.84, 0) both; animation: client-local-rule-leave 820ms cubic-bezier(0.7, 0, 0.84, 0) both;
} }
.client-delete-strike { .client-delete-strike {
@@ -996,7 +996,7 @@ p {
} }
.client-deletable-row.is-removing > .client-delete-strike { .client-deletable-row.is-removing > .client-delete-strike {
animation: client-delete-strike 760ms cubic-bezier(0.16, 1, 0.3, 1) both; animation: client-delete-strike 820ms cubic-bezier(0.16, 1, 0.3, 1) both;
} }
.client-deletable-row.is-removing > :not(.client-delete-strike) { .client-deletable-row.is-removing > :not(.client-delete-strike) {
@@ -1341,14 +1341,15 @@ p {
} }
@keyframes client-local-rule-leave { @keyframes client-local-rule-leave {
0%, 48% { opacity: 1; filter: blur(0); } 0%, 52% { opacity: 1; filter: blur(0); transform: translateX(0); }
100% { opacity: 0; filter: blur(8px); } 100% { opacity: 0; filter: blur(8px); transform: translateX(28px); }
} }
@keyframes client-delete-strike { @keyframes client-delete-strike {
0% { opacity: 1; transform: scaleX(0); } 0% { opacity: 1; transform: scaleX(0); transform-origin: left center; }
38%, 58% { opacity: 1; transform: scaleX(1); } 42%, 52% { opacity: 1; transform: scaleX(1); transform-origin: left center; }
100% { opacity: 0; transform: scaleX(1); } 53% { opacity: 1; transform: scaleX(1); transform-origin: right center; }
100% { opacity: 0; transform: scaleX(0); transform-origin: right center; }
} }
@keyframes client-local-rules-notice { @keyframes client-local-rules-notice {

View File

@@ -31,6 +31,8 @@ test('rule editor add latency stays constant and dirty exits are guarded', () =>
assert.match(styles, /\.client-delete-strike::before[\s\S]*20% 8%[\s\S]*filter: blur\(3px\)/); assert.match(styles, /\.client-delete-strike::before[\s\S]*20% 8%[\s\S]*filter: blur\(3px\)/);
assert.doesNotMatch(styles, /client-local-rule > button:last-child/); assert.doesNotMatch(styles, /client-local-rule > button:last-child/);
assert.match(styles, /@keyframes client-delete-strike[\s\S]*scaleX\(0\)[\s\S]*scaleX\(1\)/); assert.match(styles, /@keyframes client-delete-strike[\s\S]*scaleX\(0\)[\s\S]*scaleX\(1\)/);
assert.match(styles, /53%[\s\S]*transform-origin: right center[\s\S]*100%[\s\S]*scaleX\(0\)/);
assert.match(styles, /@keyframes client-local-rule-leave[\s\S]*translateX\(28px\)/);
assert.match(styles, /\.client-local-rule:has\(\.client-rule-type\.is-open\)[\s\S]*z-index: 5/); assert.match(styles, /\.client-local-rule:has\(\.client-rule-type\.is-open\)[\s\S]*z-index: 5/);
}); });