Skip to content

Commit ffed8ab

Browse files
committed
fixup! chore: upgrade style-dictionary to v4
1 parent a87634e commit ffed8ab

24 files changed

Lines changed: 332 additions & 454 deletions
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import type { Filter } from 'style-dictionary/types'
12
import { matchDarkThemeToken } from '../../common/tokenFilters'
23

3-
export default (token) => matchDarkThemeToken(token)
4+
export default {
5+
name: 'android/filterDarkColor',
6+
filter: (token) => matchDarkThemeToken(token)
7+
} as Filter
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
export default (token) => token.attributes.category === 'font'
1+
import type { Filter } from 'style-dictionary/types'
2+
3+
export default {
4+
name: 'android/filterFontStyle',
5+
filter: (token) => token.attributes.category === 'font'
6+
} as Filter
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
import type { Filter } from 'style-dictionary/types'
12
import { matchLightThemeToken } from '../../common/tokenFilters'
23

3-
export default (token) =>
4-
// We are adding primitive colors in light colors as values/colors.xml would be the default color file and we don't have dark version of primitive colors.
5-
matchLightThemeToken(token) || token.name.startsWith('primitive')
4+
export default {
5+
name: 'android/filterLightColor',
6+
filter: (token) =>
7+
// We are adding primitive colors in light colors as values/colors.xml would be the default color file and we don't have dark version of primitive colors.
8+
matchLightThemeToken(token) || token.name.startsWith('primitive')
9+
} as Filter
Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
import { TinyColor } from '@ctrl/tinycolor'
2+
import type { Format } from 'style-dictionary/types'
23
import { fileHeader } from 'style-dictionary/utils'
34

4-
export default ({ dictionary, platform, options = {}, file }) => {
5-
const colorStyles = dictionary.allTokens
6-
.filter((compositeToken) => compositeToken.type === 'color')
7-
.map((compositeToken) => {
8-
const colorCode = new TinyColor(
9-
compositeToken.original.value
10-
).toHexString()
11-
return `<color name="${compositeToken.name}">${colorCode}</color>`
12-
})
13-
return `
14-
<?xml version="1.0" encoding="utf-8"?>
15-
${fileHeader({ file, commentStyle: 'xml' })}
16-
<resources>
17-
${colorStyles.join('\n')}
18-
</resources>
19-
`
20-
}
5+
export default {
6+
name: 'android/formatColorStyle',
7+
format: ({ dictionary, platform, options = {}, file }) => {
8+
const colorStyles = dictionary.allTokens
9+
.filter((compositeToken) => compositeToken.type === 'color')
10+
.map((compositeToken) => {
11+
const colorCode = new TinyColor(
12+
compositeToken.original.value
13+
).toHexString()
14+
return `<color name="${compositeToken.name}">${colorCode}</color>`
15+
})
16+
return `
17+
<?xml version="1.0" encoding="utf-8"?>
18+
${fileHeader({ file, commentStyle: 'xml' })}
19+
<resources>
20+
${colorStyles.join('\n')}
21+
</resources>
22+
`
23+
}
24+
} as Format
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1+
import type { Format } from 'style-dictionary/types'
12
import { fileHeader } from 'style-dictionary/utils'
23

3-
export default ({ dictionary, platform, options = {}, file }) => {
4-
const fontStyles = dictionary.allTokens
5-
.filter((compositeToken) => compositeToken.type === 'custom-fontStyle')
6-
.map((compositeToken) => {
7-
const dimenName = compositeToken.name.replace('font_android_', '')
8-
return ` <dimen name="${dimenName}">${compositeToken.value}</dimen>`
9-
})
10-
return `
4+
export default {
5+
name: 'android/formatDimenStyle',
6+
format: ({ dictionary, platform, options = {}, file }) => {
7+
const fontStyles = dictionary.allTokens
8+
.filter((compositeToken) => compositeToken.type === 'custom-fontStyle')
9+
.map((compositeToken) => {
10+
const dimenName = compositeToken.name.replace('font_android_', '')
11+
return ` <dimen name="${dimenName}">${compositeToken.value}</dimen>`
12+
})
13+
return `
1114
<?xml version="1.0" encoding="utf-8"?>
1215
${fileHeader({ file, commentStyle: 'xml' })}
1316
<resources>
1417
${fontStyles.join('\n')}
1518
</resources>
1619
`
17-
}
20+
}
21+
} as Format
Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { fileHeader } from 'style-dictionary/utils'
21
import { pascalCase, snakeCase } from 'change-case'
2+
import type { Format } from 'style-dictionary/types'
3+
import { fileHeader } from 'style-dictionary/utils'
34

45
const letterSpacingToFloat = (letterSpacing, fontSize) =>
56
1 + letterSpacing / fontSize
@@ -9,39 +10,42 @@ const printDescription = (description) =>
910
? ` <!-- ${description} -->\n`
1011
: ''
1112

12-
export default ({ dictionary, platform, options = {}, file }) => {
13-
const fontStyles = dictionary.allTokens
14-
.filter((compositeToken) => compositeToken.type === 'custom-fontStyle')
15-
// create style
16-
.map((compositeToken) => {
17-
return (
18-
` <style name="${pascalCase(
19-
compositeToken.name.replace('font_android_', '')
20-
)}">\n` +
21-
printDescription(compositeToken.description) +
22-
` <item name="android:fontFamily">@font/${snakeCase(
23-
compositeToken.original.value.fontFamily
24-
)}</item>\n` +
25-
` <item name="android:textSize">@dimen/${snakeCase(
26-
compositeToken.name.replace('font_android_', '')
27-
)}</item>\n` +
28-
// for android:lineHeight requires API level 28 and current api is 26
29-
` <item name="lineHeight">${compositeToken.original.value.lineHeight}sp</item>\n` +
30-
// Commenting the changes, we need to fix the conversion
31-
// ` <item name="android:letterSpacing">${letterSpacingToFloat(
32-
// compositeToken.original.value.letterSpacing,
33-
// compositeToken.original.value.fontSize
34-
// )}</item>\n` +
35-
` <item name="fontStyle">${compositeToken.original.value.fontStyle}</item>\n` +
36-
` <item name="fontWeight">${compositeToken.original.value.fontWeight}</item>\n` +
37-
' </style>\n'
38-
)
39-
})
40-
return `
13+
export default {
14+
name: 'android/formatFontStyle',
15+
format: ({ dictionary, platform, options = {}, file }) => {
16+
const fontStyles = dictionary.allTokens
17+
.filter((compositeToken) => compositeToken.type === 'custom-fontStyle')
18+
// create style
19+
.map((compositeToken) => {
20+
return (
21+
` <style name="${pascalCase(
22+
compositeToken.name.replace('font_android_', '')
23+
)}">\n` +
24+
printDescription(compositeToken.description) +
25+
` <item name="android:fontFamily">@font/${snakeCase(
26+
compositeToken.original.value.fontFamily
27+
)}</item>\n` +
28+
` <item name="android:textSize">@dimen/${snakeCase(
29+
compositeToken.name.replace('font_android_', '')
30+
)}</item>\n` +
31+
// for android:lineHeight requires API level 28 and current api is 26
32+
` <item name="lineHeight">${compositeToken.original.value.lineHeight}sp</item>\n` +
33+
// Commenting the changes, we need to fix the conversion
34+
// ` <item name="android:letterSpacing">${letterSpacingToFloat(
35+
// compositeToken.original.value.letterSpacing,
36+
// compositeToken.original.value.fontSize
37+
// )}</item>\n` +
38+
` <item name="fontStyle">${compositeToken.original.value.fontStyle}</item>\n` +
39+
` <item name="fontWeight">${compositeToken.original.value.fontWeight}</item>\n` +
40+
' </style>\n'
41+
)
42+
})
43+
return `
4144
<?xml version="1.0" encoding="utf-8"?>
4245
${fileHeader({ file, commentStyle: 'xml' })}
4346
<resources>
4447
${fontStyles.join('\n')}
4548
</resources>
4649
`
47-
}
50+
}
51+
} as Format

src/tokens/transformation/android/index.ts

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,40 +10,17 @@ import lightColorFilter from './filters/lightColor'
1010

1111
// Transforms
1212
StyleDictionary.registerTransform(colorName)
13-
1413
StyleDictionary.registerTransform(fontSizeToSp)
1514

1615
// Formats
17-
StyleDictionary.registerFormat({
18-
name: 'android/formatFontStyle',
19-
format: fontStyleFormatter
20-
})
21-
22-
StyleDictionary.registerFormat({
23-
name: 'android/formatColorStyle',
24-
format: colorStyleFormatter
25-
})
26-
27-
StyleDictionary.registerFormat({
28-
name: 'android/formatDimenStyle',
29-
format: dimenStyleFormatter
30-
})
16+
StyleDictionary.registerFormat(fontStyleFormatter)
17+
StyleDictionary.registerFormat(colorStyleFormatter)
18+
StyleDictionary.registerFormat(dimenStyleFormatter)
3119

3220
// Filters
33-
StyleDictionary.registerFilter({
34-
name: 'android/filterFontStyle',
35-
filter: fontStyleFilter
36-
})
37-
38-
StyleDictionary.registerFilter({
39-
name: 'android/filterDarkColor',
40-
filter: darkColorFilter
41-
})
42-
43-
StyleDictionary.registerFilter({
44-
name: 'android/filterLightColor',
45-
filter: lightColorFilter
46-
})
21+
StyleDictionary.registerFilter(fontStyleFilter)
22+
StyleDictionary.registerFilter(darkColorFilter)
23+
StyleDictionary.registerFilter(lightColorFilter)
4724

4825
// TransformGroup
4926
StyleDictionary.registerTransformGroup({

src/tokens/transformation/ios/colorsets.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { TinyColor } from '@ctrl/tinycolor'
2-
import fs from 'fs-extra'
32
import { snakeCase } from 'change-case'
3+
import fs from 'fs-extra'
4+
import type { Action } from 'style-dictionary/types'
45

56
const contents = {
67
info: {
@@ -50,6 +51,7 @@ type Color = {
5051
* mode versions.
5152
*/
5253
export default {
54+
name: 'ios/colorSets',
5355
// This is going to run once per theme.
5456
do: (dictionary, platform) => {
5557
const assetPath = `${platform.buildPath}/Colors.xcassets`
@@ -110,4 +112,4 @@ export default {
110112
undo: function (dictionary, platform) {
111113
// no undo
112114
}
113-
}
115+
} as Action

src/tokens/transformation/ios/fontStyleTemplate.ts

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/tokens/transformation/ios/fontStyles.ts

Lines changed: 0 additions & 69 deletions
This file was deleted.

0 commit comments

Comments
 (0)