@@ -56,6 +56,10 @@ function hash(value) {
5656 return hasher . digest ( 'hex' ) ;
5757}
5858
59+ function dashToCamelCase ( name : string ) {
60+ return name . replace ( / - ( [ a - z ] ) / g, word => word [ 1 ] . toUpperCase ( ) ) ;
61+ }
62+
5963function parseSelector ( selector ) {
6064 let parser = createSelectorParser ( ) ;
6165 return parser . process ( selector ) . res ;
@@ -181,7 +185,7 @@ function localizeComponentRule(node) {
181185 let prev = selector . parent . nodes [ idx - 1 ] ;
182186 if ( prev && prev . type === 'tag' && componentNames . indexOf ( prev . value ) > - 1 ) {
183187 let componentName = prev . value ;
184- let variantName = selector . value . slice ( 1 ) ;
188+ let variantName = dashToCamelCase ( selector . value . slice ( 1 ) ) ;
185189 if ( CSSPseudoClassList [ variantName ] ) {
186190 selector . parent . parent . append ( className ( { value : componentName + '__' + variantName } ) ) ;
187191 } else {
@@ -194,7 +198,7 @@ function localizeComponentRule(node) {
194198 let idx = parent . nodes . indexOf ( selector ) ;
195199 let prev = parent . nodes [ idx - 1 ] ;
196200 let componentName = prev . value ;
197- let variantName = selector . value . slice ( 1 ) ;
201+ let variantName = dashToCamelCase ( selector . value . slice ( 1 ) ) ;
198202 if ( selector . value === PROP_VARIANT_NAME ) {
199203 let expression = node . selector . slice (
200204 selector . source . start . column + PROP_VARIANT_NAME . length ,
@@ -316,6 +320,7 @@ function renderToJS(source: string, config: RenderConfig): string {
316320 let className = expr `styles.${ identifier ( componentName ) } ` ;
317321 for ( let variantName in component . variants ) {
318322 let variant = component . variants [ variantName ] ;
323+ variantName = dashToCamelCase ( variantName ) ;
319324 if ( variant . expression ) {
320325 className = expr `
321326 ${ className } + (${ variant . expression }
0 commit comments