Skip to content

Commit

Permalink
fix(comp:*): theme token css var getter is not supported in safari (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
sallerli1 committed Apr 17, 2024
1 parent 8a10fc8 commit 8166a03
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions packages/components/theme/src/utils/tokenToCss.ts
Expand Up @@ -33,7 +33,23 @@ export function tokenToCss(record: TokenRecord<string>, prefix?: string, transfo
}

function getTokenCssVarName(tokenName: string): string {
return tokenName
.replace(/(?<![A-Z0-9])([A-Z0-9])/g, (input, upperChar) => (upperChar ? `-${upperChar.toLowerCase()}` : input))
.toLowerCase()
let name = ''
let preChar: string | undefined
for (let i = 0; i < tokenName.length; i++) {
const char = tokenName[i]

if (preChar && !isUppercaseOrNumber(preChar) && isUppercaseOrNumber(char)) {
name += `-${char}`
} else {
name += char
}

preChar = char
}
return name.toLowerCase()
}

function isUppercaseOrNumber(char: string) {
const charCode = char.charCodeAt(0)
return (charCode >= 65 && charCode <= 90) || (charCode >= 48 && charCode <= 57)
}

0 comments on commit 8166a03

Please sign in to comment.