@@ -13,6 +13,7 @@ import { SourceSwitcher } from './ui/components';
1313import { TableHeader , TableBody , Legend } from './components' ;
1414import styles from './styles.module.css' ;
1515import { groupAndSortAntibiotics , buildMatrix , formatMatrix } from './utils' ;
16+ import { PaletteProvider } from './palette' ;
1617import { getTranslator } from './i18n' ;
1718
1819const useIsomorphicLayoutEffect =
@@ -108,6 +109,9 @@ export default function ResistanceTable(props) {
108109
109110 const { colorMode } = useColorMode ( ) ;
110111
112+ // We will use PaletteProvider to supply inline color values to subcomponents.
113+ // For inline styles within this component, we derive the same palette through the provider.
114+ // To keep it simple here, we compute a local palette identical to the provider's value.
111115 const palette = useMemo ( ( ) => {
112116 if ( colorMode === 'dark' ) {
113117 return {
@@ -122,6 +126,7 @@ export default function ResistanceTable(props) {
122126 tooltipBg : 'rgba(200, 200, 200, 0.9)' ,
123127 tooltipText : '#000' ,
124128 overlay : 'rgba(30, 30, 30, 0.7)' ,
129+ primary : 'var(--ifm-color-primary, #7aa2f7)'
125130 } ;
126131 }
127132 return {
@@ -136,6 +141,7 @@ export default function ResistanceTable(props) {
136141 tooltipBg : 'rgba(60, 60, 60, 0.9)' ,
137142 tooltipText : '#fff' ,
138143 overlay : 'rgba(255, 255, 255, 0.7)' ,
144+ primary : 'var(--ifm-color-primary, #3578e5)'
139145 } ;
140146 } , [ colorMode ] ) ;
141147
@@ -466,10 +472,10 @@ export default function ResistanceTable(props) {
466472 </ div >
467473 ) }
468474 < table ref = { tableRef } className = { styles . resistanceTable } style = { { borderCollapse : 'separate' , borderSpacing : 0 , color : palette . text } } >
469- < TableHeader { ...{ cols, displayMode : display , hoveredCol : hover . col , onSetHover : handleSetHover , onClearHover : handleClearHover , onShowTooltip : showTooltip , onHideTooltip : hideTooltip , styles, palette } } />
470- < TableBody { ...{ data, cols, displayMode : display , rowsAreAbx, hoveredRow : hover . row , hoveredCol : hover . col , onSetHover : handleSetHover , onClearHover : handleClearHover , onShowTooltip : showTooltip , onHideTooltip : hideTooltip , styles, colorMode, sourceId2ShortName, palette , t } } />
475+ < TableHeader { ...{ cols, displayMode : display , hoveredCol : hover . col , onSetHover : handleSetHover , onClearHover : handleClearHover , onShowTooltip : showTooltip , onHideTooltip : hideTooltip , styles } } />
476+ < TableBody { ...{ data, cols, displayMode : display , rowsAreAbx, hoveredRow : hover . row , hoveredCol : hover . col , onSetHover : handleSetHover , onClearHover : handleClearHover , onShowTooltip : showTooltip , onHideTooltip : hideTooltip , styles, colorMode, sourceId2ShortName, t } } />
471477 </ table >
472- < Legend { ...{ cols, displayMode : display , styles, palette } } />
478+ < Legend { ...{ cols, displayMode : display , styles } } />
473479 < div className = { styles . sourceInfo } style = { { backgroundColor : palette . sourceInfoBg , borderTop : `1px solid ${ palette . border } ` , color : palette . sourceInfoText } } >
474480 { renderHiddenInfo ( ) }
475481 { sourceChain . length > 0 && (
@@ -500,33 +506,35 @@ export default function ResistanceTable(props) {
500506 if ( ! pluginGlobalData ) return < div className = { styles . error } > { t ( 'error' ) } : { t ( 'pluginError' ) } </ div > ;
501507
502508 return (
503- < RadixTooltip . Provider >
504- < div ref = { containerRef } style = { { minHeight : '150px' } } >
505- < div className = { styles . rootContainer } >
506- { hierarchicalSources . length > 0 && (
507- < SourceSwitcher { ...{ sources : hierarchicalSources , selected : selectedSource , onSelect : setSelectedSource , styles, locale, palette } } />
508- ) }
509- < div className = { styles . tableContainer } >
510- { renderContent ( ) }
509+ < PaletteProvider colorMode = { colorMode } >
510+ < RadixTooltip . Provider >
511+ < div ref = { containerRef } style = { { minHeight : '150px' } } >
512+ < div className = { styles . rootContainer } >
513+ { hierarchicalSources . length > 0 && (
514+ < SourceSwitcher { ...{ sources : hierarchicalSources , selected : selectedSource , onSelect : setSelectedSource , styles, locale } } />
515+ ) }
516+ < div className = { styles . tableContainer } >
517+ { renderContent ( ) }
518+ </ div >
511519 </ div >
512520 </ div >
513- </ div >
514521
515- < RadixTooltip . Root open = { tooltipOpen } onOpenChange = { setTooltipOpen } >
516- < RadixTooltip . Trigger asChild > < VirtualTrigger ref = { virtualTriggerRef } /> </ RadixTooltip . Trigger >
517- < RadixTooltip . Portal >
518- < RadixTooltip . Content
519- side = "top"
520- align = "center"
521- sideOffset = { 5 }
522- className = { styles . tooltipContent }
523- style = { { backgroundColor : palette . tooltipBg , color : palette . tooltipText } }
524- >
525- { tooltipContent }
526- < RadixTooltip . Arrow width = { 8 } height = { 4 } className = { styles . tooltipArrow } style = { { fill : palette . tooltipBg } } />
527- </ RadixTooltip . Content >
528- </ RadixTooltip . Portal >
529- </ RadixTooltip . Root >
530- </ RadixTooltip . Provider >
522+ < RadixTooltip . Root open = { tooltipOpen } onOpenChange = { setTooltipOpen } >
523+ < RadixTooltip . Trigger asChild > < VirtualTrigger ref = { virtualTriggerRef } /> </ RadixTooltip . Trigger >
524+ < RadixTooltip . Portal >
525+ < RadixTooltip . Content
526+ side = "top"
527+ align = "center"
528+ sideOffset = { 5 }
529+ className = { styles . tooltipContent }
530+ style = { { backgroundColor : palette . tooltipBg , color : palette . tooltipText } }
531+ >
532+ { tooltipContent }
533+ < RadixTooltip . Arrow width = { 8 } height = { 4 } className = { styles . tooltipArrow } style = { { fill : palette . tooltipBg } } />
534+ </ RadixTooltip . Content >
535+ </ RadixTooltip . Portal >
536+ </ RadixTooltip . Root >
537+ </ RadixTooltip . Provider >
538+ </ PaletteProvider >
531539 ) ;
532540}
0 commit comments