Skip to content

Commit 4fdfd5f

Browse files
committed
fix(source-switcher): unify item color + hover across levels
- Apply inline text color via palette for all levels - Add pointer/focus highlight with proper contrast - Pass palette recursively; set padding-left for indentation - Set Content text color to palette.text Also: set data cell text color inline (palette.text)
1 parent 8754517 commit 4fdfd5f

File tree

7 files changed

+284
-12
lines changed

7 files changed

+284
-12
lines changed

dist/theme/ResistanceTable/components/TableCell.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const TableCell = React.memo(
1616
onShowTooltip,
1717
onHideTooltip,
1818
styles,
19+
palette,
1920
colorMode,
2021
sourceId2ShortName,
2122
t,
@@ -47,6 +48,7 @@ export const TableCell = React.memo(
4748
<td
4849
style={{
4950
...cellStyle(cell?.pct, colorMode),
51+
color: palette?.text,
5052
...(highlight ? hl : {}),
5153
}}
5254
onMouseEnter={handleMouseEnter}

dist/theme/ResistanceTable/components/TableRow.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export const TableRow = React.memo(
7171
onShowTooltip={onShowTooltip}
7272
onHideTooltip={onHideTooltip}
7373
styles={styles}
74+
palette={palette}
7475
colorMode={colorMode}
7576
sourceId2ShortName={sourceId2ShortName}
7677
t={t}

dist/theme/ResistanceTable/ui/components.jsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useState } from 'react';
22
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
33
import { ChevronDownIcon } from '@radix-ui/react-icons';
44
import clsx from 'clsx';
@@ -16,6 +16,10 @@ const SourceMenuItem = ({
1616
}) => {
1717
const hasChildren = source.children && source.children.length > 0;
1818
const isSelected = selected?.id === source.id;
19+
const [isHighlighted, setIsHighlighted] = useState(false);
20+
const indentRem = 1 + level * 1.5;
21+
const itemColor = isSelected ? 'var(--ifm-color-primary)' : (palette?.text ?? undefined);
22+
const itemBg = isHighlighted ? (palette?.subtleBgHover ?? undefined) : undefined;
1923

2024
return (
2125
<div className={styles.sourceSwitcherItemContainer} role="presentation">
@@ -27,15 +31,19 @@ const SourceMenuItem = ({
2731
isLast && styles.sourceSwitcherItemIsLast,
2832
level > 0 && styles.sourceSwitcherItemIndented,
2933
)}
30-
style={{ '--level': level }}
34+
style={{ '--level': String(level), color: itemColor, backgroundColor: itemBg, paddingLeft: `${indentRem}rem` }}
3135
onSelect={() => onSelect(source)}
3236
role="menuitemradio"
3337
aria-checked={isSelected}
34-
35-
style={{ color: palette?.text }}
38+
onPointerEnter={() => setIsHighlighted(true)}
39+
onPointerLeave={() => setIsHighlighted(false)}
40+
onFocus={() => setIsHighlighted(true)}
41+
onBlur={() => setIsHighlighted(false)}
3642
>
37-
<span className={styles.sourceSwitcherItemInner}>
38-
<span className={styles.sourceSwitcherItemLabel}>{source[`name_${locale}`] || source.name_en || source.id}</span>
43+
<span className={styles.sourceSwitcherItemInner} style={{ color: itemColor }}>
44+
<span className={styles.sourceSwitcherItemLabel} style={{ color: itemColor }}>
45+
{source[`name_${locale}`] || source.name_en || source.id}
46+
</span>
3947
</span>
4048
</DropdownMenu.Item>
4149
{hasChildren && (
@@ -50,6 +58,7 @@ const SourceMenuItem = ({
5058
level={level + 1}
5159
isLast={index === source.children.length - 1}
5260
locale={locale}
61+
palette={palette}
5362
/>
5463
))}
5564
</div>
@@ -102,6 +111,7 @@ export const SourceSwitcher = ({
102111
style={{
103112
backgroundColor: palette?.background,
104113
border: `1px solid ${palette?.border}`,
114+
color: palette?.text,
105115
}}
106116
>
107117
<DropdownMenu.RadioGroup value={selected?.id}>
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
organism_id,antibiotic_id,resistance_pct,n_isolates
2+
B_ENTRC_FACM,GEN,58.4,262
3+
B_ENTRC_FACM,STR1,68.3,63
4+
B_ENTRC_FACM,IPM,96.6,503
5+
B_ENTRC_FACM,CIP,99.0,200
6+
B_ENTRC_FACM,LVX,97.0,236
7+
B_ENTRC_FACM,TEC,5.0,482
8+
B_ENTRC_FACM,VAN,13.7,534
9+
B_ENTRC_FACM,AMX,96.1,102
10+
B_ENTRC_FACM,AMC,96.2,133
11+
B_ENTRC_FACM,AMP,94.7,475
12+
B_ENTRC_FACM,SAM,94.3,350
13+
B_ENTRC_FACM,LNZ,0.9,535
14+
B_ENTRC_FACM,TGC,0.5,406
15+
B_ESCHR_COLI,AMK,2.2,783
16+
B_ESCHR_COLI,GEN,4.8,19623
17+
B_ESCHR_COLI,TOB,7.4,1521
18+
B_ESCHR_COLI,ETP,0.1,25743
19+
B_ESCHR_COLI,IPM,0.1,16679
20+
B_ESCHR_COLI,MEM,0.0,39535
21+
B_ESCHR_COLI,FEP,9.6,12293
22+
B_ESCHR_COLI,CTX,9.3,37909
23+
B_ESCHR_COLI,CAZ,9.2,38424
24+
B_ESCHR_COLI,CRO,9.3,18813
25+
B_ESCHR_COLI,CXM,14.2,30567
26+
B_ESCHR_COLI,CIP,14.4,39389
27+
B_ESCHR_COLI,LVX,13.4,10207
28+
B_ESCHR_COLI,MFX,22.0,1386
29+
B_ESCHR_COLI,AMX,46.1,3799
30+
B_ESCHR_COLI,AMC,31.4,25903
31+
B_ESCHR_COLI,AMP,46.0,38302
32+
B_ESCHR_COLI,SAM,36.7,16512
33+
B_ESCHR_COLI,MEC,7.6,26370
34+
B_ESCHR_COLI,PIP,45.3,25175
35+
B_ESCHR_COLI,TZP,8.0,39331
36+
B_ESCHR_COLI,SXT,20.5,39441
37+
B_ESCHR_COLI,FOS,1.8,22628
38+
B_ESCHR_COLI,NIT,1.2,28937
39+
B_ESCHR_COLI,TMP,24.2,26507
40+
B_ESCHR_COLI,TGC,0.7,9944
41+
B_KLBSL_OXYT,AMK,0.0,82
42+
B_KLBSL_OXYT,GEN,0.7,3140
43+
B_KLBSL_OXYT,TOB,1.9,211
44+
B_KLBSL_OXYT,ETP,0.2,3039
45+
B_KLBSL_OXYT,IPM,0.0,2859
46+
B_KLBSL_OXYT,MEM,0.0,4686
47+
B_KLBSL_OXYT,FEP,3.3,1253
48+
B_KLBSL_OXYT,CTX,5.2,4479
49+
B_KLBSL_OXYT,CAZ,3.1,4599
50+
B_KLBSL_OXYT,CRO,6.7,2485
51+
B_KLBSL_OXYT,CXM,18.9,3731
52+
B_KLBSL_OXYT,CIP,2.4,4684
53+
B_KLBSL_OXYT,LVX,3.0,1473
54+
B_KLBSL_OXYT,MFX,7.0,171
55+
B_KLBSL_OXYT,AMC,21.2,2169
56+
B_KLBSL_OXYT,SAM,31.2,2836
57+
B_KLBSL_OXYT,MEC,39.2,1048
58+
B_KLBSL_OXYT,TZP,16.4,4652
59+
B_KLBSL_OXYT,SXT,2.7,4672
60+
B_KLBSL_OXYT,FOS,36.7,1876
61+
B_KLBSL_OXYT,TMP,4.6,1930
62+
B_KLBSL_PNMN,AMK,1.6,321
63+
B_KLBSL_PNMN,GEN,3.3,5649
64+
B_KLBSL_PNMN,TOB,7.6,536
65+
B_KLBSL_PNMN,ETP,1.1,6402
66+
B_KLBSL_PNMN,IPM,1.0,5088
67+
B_KLBSL_PNMN,MEM,0.7,10066
68+
B_KLBSL_PNMN,FEP,9.9,2860
69+
B_KLBSL_PNMN,CTX,10.2,9623
70+
B_KLBSL_PNMN,CAZ,10.6,9587
71+
B_KLBSL_PNMN,CRO,12.1,5002
72+
B_KLBSL_PNMN,CXM,16.4,7797
73+
B_KLBSL_PNMN,CIP,10.2,10034
74+
B_KLBSL_PNMN,LVX,10.9,2731
75+
B_KLBSL_PNMN,MFX,17.1,380
76+
B_KLBSL_PNMN,AMC,21.0,5854
77+
B_KLBSL_PNMN,SAM,27.2,4763
78+
B_KLBSL_PNMN,MEC,33.5,2671
79+
B_KLBSL_PNMN,TZP,13.8,9987
80+
B_KLBSL_PNMN,SXT,10.2,10025
81+
B_KLBSL_PNMN,FOS,36.9,4973
82+
B_KLBSL_PNMN,TMP,14.4,5102
83+
B_MRGNL_MRGN,GEN,3.0,1143
84+
B_MRGNL_MRGN,TOB,3.4,88
85+
B_MRGNL_MRGN,ETP,0.7,1293
86+
B_MRGNL_MRGN,IPM,8.0,865
87+
B_MRGNL_MRGN,MEM,0.0,2049
88+
B_MRGNL_MRGN,FEP,9.4,524
89+
B_MRGNL_MRGN,CTX,19.9,1924
90+
B_MRGNL_MRGN,CAZ,17.9,1994
91+
B_MRGNL_MRGN,CRO,20.1,1008
92+
B_MRGNL_MRGN,CIP,7.5,2049
93+
B_MRGNL_MRGN,LVX,5.5,561
94+
B_MRGNL_MRGN,PIP,35.5,1130
95+
B_MRGNL_MRGN,TZP,9.6,2033
96+
B_MRGNL_MRGN,SXT,10.2,2045
97+
B_MRGNL_MRGN,FOS,97.0,1000
98+
B_MRGNL_MRGN,TMP,16.7,1117
99+
B_PROTS_MRBL,AMK,7.8,230
100+
B_PROTS_MRBL,GEN,9.2,4935
101+
B_PROTS_MRBL,TOB,11.5,419
102+
B_PROTS_MRBL,ETP,0.0,6016
103+
B_PROTS_MRBL,IPM,2.3,3155
104+
B_PROTS_MRBL,MEM,0.0,8985
105+
B_PROTS_MRBL,FEP,1.3,2690
106+
B_PROTS_MRBL,CTX,1.5,8685
107+
B_PROTS_MRBL,CAZ,1.3,8759
108+
B_PROTS_MRBL,CRO,1.8,4252
109+
B_PROTS_MRBL,CXM,3.6,6916
110+
B_PROTS_MRBL,CIP,12.4,8982
111+
B_PROTS_MRBL,LVX,13.3,2399
112+
B_PROTS_MRBL,MFX,75.4,130
113+
B_PROTS_MRBL,AMX,28.3,757
114+
B_PROTS_MRBL,AMC,11.1,5351
115+
B_PROTS_MRBL,AMP,29.4,8766
116+
B_PROTS_MRBL,SAM,10.9,4234
117+
B_PROTS_MRBL,MEC,62.9,1951
118+
B_PROTS_MRBL,PIP,25.7,6165
119+
B_PROTS_MRBL,TZP,0.7,8938
120+
B_PROTS_MRBL,SXT,28.7,8974
121+
B_PROTS_MRBL,FOS,27.5,4760
122+
B_PROTS_MRBL,TMP,39.7,4569
123+
B_PSDMN_AERG,AMK,2.1,7196
124+
B_PSDMN_AERG,GEN,58.7,884
125+
B_PSDMN_AERG,TOB,3.1,7592
126+
B_PSDMN_AERG,IPM,14.7,8811
127+
B_PSDMN_AERG,MEM,5.9,9784
128+
B_PSDMN_AERG,FEP,9.1,8311
129+
B_PSDMN_AERG,CAZ,11.3,9774
130+
B_PSDMN_AERG,CIP,11.7,9785
131+
B_PSDMN_AERG,LVX,12.6,3743
132+
B_PSDMN_AERG,PIP,18.5,7963
133+
B_PSDMN_AERG,TZP,13.7,9132
134+
B_PSDMN_AERG,ATM,11.0,5162
135+
B_SERRT_MRCS,AMK,0.0,55
136+
B_SERRT_MRCS,GEN,2.2,1779
137+
B_SERRT_MRCS,TOB,12.8,133
138+
B_SERRT_MRCS,ETP,0.5,1550
139+
B_SERRT_MRCS,IPM,0.4,1442
140+
B_SERRT_MRCS,MEM,0.1,2326
141+
B_SERRT_MRCS,FEP,7.6,667
142+
B_SERRT_MRCS,CTX,14.1,2234
143+
B_SERRT_MRCS,CAZ,11.0,2273
144+
B_SERRT_MRCS,CRO,15.2,1301
145+
B_SERRT_MRCS,CIP,4.0,2318
146+
B_SERRT_MRCS,LVX,4.1,858
147+
B_SERRT_MRCS,PIP,18.5,1723
148+
B_SERRT_MRCS,TZP,8.5,2320
149+
B_SERRT_MRCS,SXT,1.2,2323
150+
B_SERRT_MRCS,FOS,17.8,696
151+
B_SERRT_MRCS,TMP,5.7,662
152+
B_STPHY_AURS,GEN,2.6,13552
153+
B_STPHY_AURS,TOB,10.7,859
154+
B_STPHY_AURS,ETP,13.3,375
155+
B_STPHY_AURS,IPM,7.6,7045
156+
B_STPHY_AURS,MEM,9.2,4372
157+
B_STPHY_AURS,FEP,10.5,437
158+
B_STPHY_AURS,CTX,9.3,3250
159+
B_STPHY_AURS,FOX,8.7,1820
160+
B_STPHY_AURS,CRO,8.5,3477
161+
B_STPHY_AURS,CXM,8.1,9175
162+
B_STPHY_AURS,CIP,14.9,5627
163+
B_STPHY_AURS,LVX,12.2,13640
164+
B_STPHY_AURS,MFX,13.2,4780
165+
B_STPHY_AURS,TEC,0.2,11373
166+
B_STPHY_AURS,VAN,0.0,13107
167+
B_STPHY_AURS,AZM,19.8,3871
168+
B_STPHY_AURS,CLR,19.1,1451
169+
B_STPHY_AURS,CLI,17.6,12465
170+
B_STPHY_AURS,ERY,18.1,14031
171+
B_STPHY_AURS,AMC,6.9,6549
172+
B_STPHY_AURS,SAM,9.1,7544
173+
B_STPHY_AURS,FLC,9.7,3035
174+
B_STPHY_AURS,OXA,8.6,12322
175+
B_STPHY_AURS,PEN,70.0,13672
176+
B_STPHY_AURS,TZP,9.1,4044
177+
B_STPHY_AURS,SXT,1.6,14277
178+
B_STPHY_AURS,DAP,0.5,10232
179+
B_STPHY_AURS,FOS,2.3,10407
180+
B_STPHY_AURS,FUS,2.6,10095
181+
B_STPHY_AURS,LNZ,0.0,13480
182+
B_STPHY_AURS,NIT,16.1,1845
183+
B_STPHY_AURS,RIF,2.7,13151
184+
B_STPHY_AURS,TMP,5.2,115
185+
B_STPHY_AURS,DOX,5.5,4111
186+
B_STPHY_AURS,TCY,4.0,12244
187+
B_STPHY_AURS,TGC,0.0,10241
188+
B_STPHY_EPDR,GEN,31.6,8138
189+
B_STPHY_EPDR,TOB,73.1,866
190+
B_STPHY_EPDR,ETP,64.6,178
191+
B_STPHY_EPDR,IPM,63.1,4455
192+
B_STPHY_EPDR,MEM,58.7,2606
193+
B_STPHY_EPDR,FEP,66.2,266
194+
B_STPHY_EPDR,CTX,74.4,2258
195+
B_STPHY_EPDR,FOX,58.4,1209
196+
B_STPHY_EPDR,CRO,72.5,2406
197+
B_STPHY_EPDR,CXM,61.9,5509
198+
B_STPHY_EPDR,CIP,45.0,3358
199+
B_STPHY_EPDR,LVX,43.0,7910
200+
B_STPHY_EPDR,MFX,43.6,2488
201+
B_STPHY_EPDR,TEC,21.7,6866
202+
B_STPHY_EPDR,VAN,0.0,8059
203+
B_STPHY_EPDR,AZM,62.6,2442
204+
B_STPHY_EPDR,CLR,66.9,1204
205+
B_STPHY_EPDR,CLI,46.8,8491
206+
B_STPHY_EPDR,ERY,60.6,8531
207+
B_STPHY_EPDR,AMC,62.6,4158
208+
B_STPHY_EPDR,SAM,59.4,4408
209+
B_STPHY_EPDR,FLC,60.1,1550
210+
B_STPHY_EPDR,OXA,60.9,7418
211+
B_STPHY_EPDR,TZP,61.3,2351
212+
B_STPHY_EPDR,SXT,18.2,8497
213+
B_STPHY_EPDR,DAP,0.2,6140
214+
B_STPHY_EPDR,FOS,18.8,6157
215+
B_STPHY_EPDR,FUS,31.7,5931
216+
B_STPHY_EPDR,LNZ,0.4,8003
217+
B_STPHY_EPDR,NIT,0.4,841
218+
B_STPHY_EPDR,RIF,7.8,7925
219+
B_STPHY_EPDR,DOX,20.9,2051
220+
B_STPHY_EPDR,TCY,29.8,7598
221+
B_STPHY_EPDR,TGC,0.1,6019
222+
B_STNTR_MLTP,SXT,1.6,970
223+
B_STRPT_PNMN,IPM,0.0,207
224+
B_STRPT_PNMN,MEM,0.0,150
225+
B_STRPT_PNMN,CTX,0.4,245
226+
B_STRPT_PNMN,CRO,0.0,466
227+
B_STRPT_PNMN,CXM,0.8,398
228+
B_STRPT_PNMN,LVX,0.4,493
229+
B_STRPT_PNMN,MFX,0.3,364
230+
B_STRPT_PNMN,TEC,0.0,160
231+
B_STRPT_PNMN,VAN,0.0,482
232+
B_STRPT_PNMN,CLR,12.0,50
233+
B_STRPT_PNMN,CLI,5.5,585
234+
B_STRPT_PNMN,ERY,10.4,584
235+
B_STRPT_PNMN,AMX,1.6,252
236+
B_STRPT_PNMN,AMC,0.9,348
237+
B_STRPT_PNMN,AMP,3.5,315
238+
B_STRPT_PNMN,SAM,1.4,210
239+
B_STRPT_PNMN,PEN,2.7,596
240+
B_STRPT_PNMN,PIP,1.1,95
241+
B_STRPT_PNMN,TZP,1.0,103
242+
B_STRPT_PNMN,SXT,7.3,468
243+
B_STRPT_PNMN,LNZ,0.0,397
244+
B_STRPT_PNMN,RIF,1.4,221
245+
B_STRPT_PNMN,DOX,7.3,191
246+
B_STRPT_PNMN,TCY,6.5,384

src/theme/ResistanceTable/components/TableCell.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const TableCell = React.memo(
1616
onShowTooltip,
1717
onHideTooltip,
1818
styles,
19+
palette,
1920
colorMode,
2021
sourceId2ShortName,
2122
t,
@@ -47,6 +48,7 @@ export const TableCell = React.memo(
4748
<td
4849
style={{
4950
...cellStyle(cell?.pct, colorMode),
51+
color: palette?.text,
5052
...(highlight ? hl : {}),
5153
}}
5254
onMouseEnter={handleMouseEnter}

src/theme/ResistanceTable/components/TableRow.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export const TableRow = React.memo(
7171
onShowTooltip={onShowTooltip}
7272
onHideTooltip={onHideTooltip}
7373
styles={styles}
74+
palette={palette}
7475
colorMode={colorMode}
7576
sourceId2ShortName={sourceId2ShortName}
7677
t={t}

0 commit comments

Comments
 (0)