11import { debugData , isDevToolsEnabled , getSourceURLfromError } from './devtools' ;
2+ import { insertionFactory } from './insertionFactory' ;
23import { reduceToClassNameForSlots } from './runtime/reduceToClassNameForSlots' ;
3- import type { CSSClassesMapBySlot , CSSRulesByBucket } from './types' ;
4+ import type { CSSClassesMapBySlot , CSSRulesByBucket , GriffelInsertionFactory } from './types' ;
45import type { MakeStylesOptions } from './makeStyles' ;
56
67/**
@@ -11,8 +12,9 @@ import type { MakeStylesOptions } from './makeStyles';
1112export function __styles < Slots extends string > (
1213 classesMapBySlot : CSSClassesMapBySlot < Slots > ,
1314 cssRules : CSSRulesByBucket ,
15+ factory : GriffelInsertionFactory = insertionFactory ,
1416) {
15- const insertionCache : Record < string , boolean > = { } ;
17+ const insertStyles = factory ( ) ;
1618
1719 let ltrClassNamesForSlots : Record < Slots , string > | null = null ;
1820 let rtlClassNamesForSlots : Record < Slots , string > | null = null ;
@@ -24,10 +26,7 @@ export function __styles<Slots extends string>(
2426
2527 function computeClasses ( options : Pick < MakeStylesOptions , 'dir' | 'renderer' > ) : Record < Slots , string > {
2628 const { dir, renderer } = options ;
27-
2829 const isLTR = dir === 'ltr' ;
29- // As RTL classes are different they should have a different cache key for insertion
30- const rendererId = isLTR ? renderer . id : renderer . id + 'r' ;
3130
3231 if ( isLTR ) {
3332 if ( ltrClassNamesForSlots === null ) {
@@ -39,10 +38,7 @@ export function __styles<Slots extends string>(
3938 }
4039 }
4140
42- if ( insertionCache [ rendererId ] === undefined ) {
43- renderer . insertCSSRules ( cssRules ! ) ;
44- insertionCache [ rendererId ] = true ;
45- }
41+ insertStyles ( renderer , dir , cssRules ) ;
4642
4743 const classNamesForSlots = isLTR
4844 ? ( ltrClassNamesForSlots as Record < Slots , string > )
0 commit comments