Skip to content

Commit 6a0cd75

Browse files
committed
Restyle supervisor dialog as flat settings panel
1 parent be9d3d5 commit 6a0cd75

2 files changed

Lines changed: 110 additions & 9 deletions

File tree

packages/web/src/styles/components.css

Lines changed: 78 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3866,12 +3866,81 @@ body.is-resizing-panels * {
38663866
color: var(--icon-error);
38673867
}
38683868

3869+
.supervisor-dialog .modal-body {
3870+
gap: var(--sp-3);
3871+
}
3872+
3873+
.supervisor-dialog .form-group {
3874+
gap: 6px;
3875+
}
3876+
3877+
.supervisor-dialog-intro {
3878+
display: flex;
3879+
align-items: flex-start;
3880+
gap: var(--sp-3);
3881+
padding: var(--sp-3);
3882+
border: 1px solid color-mix(in srgb, var(--border) 90%, transparent);
3883+
border-radius: var(--radius-md);
3884+
background: color-mix(in srgb, var(--bg-surface) 88%, var(--bg-hover));
3885+
}
3886+
3887+
.supervisor-dialog-intro__icon {
3888+
display: inline-flex;
3889+
width: 24px;
3890+
height: 24px;
3891+
align-items: center;
3892+
justify-content: center;
3893+
border-radius: var(--radius-sm);
3894+
background: var(--icon-surface-success);
3895+
color: var(--icon-success);
3896+
flex-shrink: 0;
3897+
}
3898+
3899+
.supervisor-dialog--edit .supervisor-dialog-intro__icon {
3900+
background: var(--icon-surface-info);
3901+
color: var(--icon-info);
3902+
}
3903+
3904+
.supervisor-dialog--disable .supervisor-dialog-intro__icon {
3905+
background: var(--icon-surface-error);
3906+
color: var(--icon-error);
3907+
}
3908+
3909+
.supervisor-dialog-intro__copy {
3910+
min-width: 0;
3911+
}
3912+
3913+
.supervisor-dialog-intro__title {
3914+
display: block;
3915+
margin: 0;
3916+
font-size: var(--type-body-size);
3917+
line-height: var(--type-body-line-height);
3918+
font-weight: var(--font-medium);
3919+
color: var(--text-primary);
3920+
}
3921+
3922+
.supervisor-dialog-intro__description {
3923+
margin: 2px 0 0;
3924+
font-size: var(--type-meta-size);
3925+
line-height: var(--type-meta-line-height);
3926+
font-weight: var(--type-meta-weight);
3927+
color: var(--text-secondary);
3928+
}
3929+
3930+
.supervisor-dialog .input,
3931+
.supervisor-dialog .mobile-select-trigger {
3932+
font-size: var(--type-label-size);
3933+
line-height: var(--type-label-line-height);
3934+
font-weight: var(--type-label-weight);
3935+
}
3936+
38693937
.supervisor-dialog .textarea {
3938+
min-height: 104px;
38703939
font-family: var(--type-code-inline-family);
38713940
font-size: var(--type-code-inline-size);
38723941
line-height: var(--type-code-inline-line-height);
38733942
font-weight: var(--type-code-inline-weight);
3874-
min-height: 120px;
3943+
color: var(--text-secondary);
38753944
}
38763945

38773946
.supervisor-dialog .input[type="select"],
@@ -3882,11 +3951,11 @@ body.is-resizing-panels * {
38823951
/* Destructive action callout for the disable flow */
38833952
.supervisor-danger-callout {
38843953
display: flex;
3885-
gap: var(--sp-3);
3886-
padding: var(--sp-3);
3954+
gap: var(--sp-2);
3955+
padding: var(--sp-2) var(--sp-3);
38873956
background: var(--icon-surface-error);
3888-
border: 1px solid color-mix(in srgb, var(--icon-error) 36%, var(--border));
3889-
border-left-width: 2px;
3957+
border: 1px solid color-mix(in srgb, var(--icon-error) 24%, var(--border));
3958+
border-left-width: 1px;
38903959
border-radius: var(--radius-md);
38913960
}
38923961

@@ -3898,10 +3967,10 @@ body.is-resizing-panels * {
38983967
.supervisor-danger-callout-copy {
38993968
display: flex;
39003969
flex-direction: column;
3901-
gap: var(--sp-1);
3902-
font-size: var(--type-body-size);
3903-
line-height: var(--type-body-line-height);
3904-
font-weight: var(--type-body-weight);
3970+
gap: 2px;
3971+
font-size: var(--type-label-size);
3972+
line-height: var(--type-label-line-height);
3973+
font-weight: var(--type-label-weight);
39053974
color: var(--text-primary);
39063975
}
39073976

packages/web/src/styles/components.theme.test.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,38 @@ describe("components.css theme-sensitive surfaces", () => {
851851
expect(hasRuleBlock(".supervisor-dialog .modal-header h3")).toBe(false);
852852
});
853853

854+
it("keeps supervisor dialog body styling flat and dense", () => {
855+
const modalBody = getLastRuleBlock(".supervisor-dialog .modal-body");
856+
const formGroup = getLastRuleBlock(".supervisor-dialog .form-group");
857+
const intro = getLastRuleBlock(".supervisor-dialog-intro");
858+
const introTitle = getLastRuleBlock(".supervisor-dialog-intro__title");
859+
const introDescription = getLastRuleBlock(".supervisor-dialog-intro__description");
860+
const compactInputGroup = getLastGroupedRuleBlock(
861+
/\.supervisor-dialog \.input,\s*\n\.supervisor-dialog \.mobile-select-trigger\s*\{([^}]*)\}/g
862+
);
863+
const textarea = getLastRuleBlock(".supervisor-dialog .textarea");
864+
const dangerCallout = getLastRuleBlock(".supervisor-danger-callout");
865+
const dangerCalloutCopy = getLastRuleBlock(".supervisor-danger-callout-copy");
866+
867+
expect(modalBody).toContain("gap: var(--sp-3)");
868+
expect(formGroup).toContain("gap: 6px");
869+
expect(intro).toContain("display: flex");
870+
expect(intro).toContain("padding: var(--sp-3)");
871+
expect(introTitle).toContain("font-size: var(--type-body-size)");
872+
expect(introTitle).toContain("line-height: var(--type-body-line-height)");
873+
expect(introDescription).toContain("font-size: var(--type-meta-size)");
874+
expect(introDescription).toContain("line-height: var(--type-meta-line-height)");
875+
expect(compactInputGroup).toContain("font-size: var(--type-label-size)");
876+
expect(compactInputGroup).toContain("line-height: var(--type-label-line-height)");
877+
expect(textarea).toContain("font-size: var(--type-code-inline-size)");
878+
expect(textarea).toContain("min-height: 104px");
879+
expect(dangerCallout).toContain("gap: var(--sp-2)");
880+
expect(dangerCallout).toContain("padding: var(--sp-2) var(--sp-3)");
881+
expect(dangerCallout).toContain("border-left-width: 1px");
882+
expect(dangerCalloutCopy).toContain("font-size: var(--type-label-size)");
883+
expect(dangerCalloutCopy).toContain("line-height: var(--type-label-line-height)");
884+
});
885+
854886
it("does not allow page or modal wrappers to override approved header typography tokens", () => {
855887
const settingsBack = getLastRuleBlock(
856888
".settings-header .mobile-page-header .page-header__back"

0 commit comments

Comments
 (0)