@primer/primitives 9.0.3 → 9.1.0-rc.c6c17c46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/build/PrimerStyleDictionary.d.ts +9 -0
  2. package/dist/build/PrimerStyleDictionary.js +92 -0
  3. package/dist/build/filters/index.d.ts +13 -0
  4. package/dist/build/filters/index.js +29 -0
  5. package/{src/filters/isBorder.ts → dist/build/filters/isBorder.d.ts} +2 -5
  6. package/dist/build/filters/isBorder.js +12 -0
  7. package/{src/filters/isColor.ts → dist/build/filters/isColor.d.ts} +2 -5
  8. package/dist/build/filters/isColor.js +12 -0
  9. package/dist/build/filters/isColorWithAlpha.d.ts +7 -0
  10. package/dist/build/filters/isColorWithAlpha.js +13 -0
  11. package/dist/build/filters/isColorWithMix.d.ts +7 -0
  12. package/dist/build/filters/isColorWithMix.js +28 -0
  13. package/{src/filters/isDeprecated.ts → dist/build/filters/isDeprecated.d.ts} +2 -5
  14. package/dist/build/filters/isDeprecated.js +12 -0
  15. package/{src/filters/isDimension.ts → dist/build/filters/isDimension.d.ts} +2 -5
  16. package/dist/build/filters/isDimension.js +12 -0
  17. package/{src/filters/isDuration.ts → dist/build/filters/isDuration.d.ts} +2 -5
  18. package/dist/build/filters/isDuration.js +12 -0
  19. package/{src/filters/isFontFamily.ts → dist/build/filters/isFontFamily.d.ts} +2 -5
  20. package/dist/build/filters/isFontFamily.js +12 -0
  21. package/{src/filters/isFontWeight.ts → dist/build/filters/isFontWeight.d.ts} +2 -5
  22. package/dist/build/filters/isFontWeight.js +12 -0
  23. package/dist/build/filters/isFromFile.d.ts +8 -0
  24. package/dist/build/filters/isFromFile.js +14 -0
  25. package/{src/filters/isNumber.ts → dist/build/filters/isNumber.d.ts} +2 -3
  26. package/dist/build/filters/isNumber.js +10 -0
  27. package/{src/filters/isShadow.ts → dist/build/filters/isShadow.d.ts} +2 -5
  28. package/dist/build/filters/isShadow.js +12 -0
  29. package/{src/filters/isSource.ts → dist/build/filters/isSource.d.ts} +2 -5
  30. package/dist/build/filters/isSource.js +12 -0
  31. package/{src/filters/isTypography.ts → dist/build/filters/isTypography.d.ts} +2 -5
  32. package/dist/build/filters/isTypography.js +12 -0
  33. package/dist/build/formats/cssAdvanced.d.ts +2 -0
  34. package/dist/build/formats/cssAdvanced.js +85 -0
  35. package/dist/build/formats/cssCustomMedia.d.ts +7 -0
  36. package/dist/build/formats/cssCustomMedia.js +25 -0
  37. package/dist/build/formats/index.d.ts +9 -0
  38. package/dist/build/formats/index.js +21 -0
  39. package/dist/build/formats/javascriptCommonJs.d.ts +7 -0
  40. package/dist/build/formats/javascriptCommonJs.js +25 -0
  41. package/dist/build/formats/javascriptEsm.d.ts +7 -0
  42. package/dist/build/formats/javascriptEsm.js +25 -0
  43. package/dist/build/formats/jsonFigma.d.ts +7 -0
  44. package/dist/build/formats/jsonFigma.js +116 -0
  45. package/dist/build/formats/jsonNestedPrefixed.d.ts +8 -0
  46. package/dist/build/formats/jsonNestedPrefixed.js +28 -0
  47. package/dist/build/formats/jsonOneDimensional.d.ts +8 -0
  48. package/dist/build/formats/jsonOneDimensional.js +24 -0
  49. package/dist/build/formats/jsonPostCssFallback.d.ts +8 -0
  50. package/dist/build/formats/jsonPostCssFallback.js +21 -0
  51. package/dist/build/formats/typescriptExportDefinition.d.ts +7 -0
  52. package/dist/build/formats/typescriptExportDefinition.js +166 -0
  53. package/{src/formats/utilities/jsonToFlat.ts → dist/build/formats/utilities/jsonToFlat.d.ts} +4 -3
  54. package/dist/build/formats/utilities/jsonToFlat.js +12 -0
  55. package/dist/build/formats/utilities/jsonToNestedValue.d.ts +8 -0
  56. package/dist/build/formats/utilities/jsonToNestedValue.js +25 -0
  57. package/dist/build/formats/utilities/prefixTokens.d.ts +8 -0
  58. package/dist/build/formats/utilities/prefixTokens.js +17 -0
  59. package/dist/build/parsers/index.d.ts +1 -0
  60. package/dist/build/parsers/index.js +5 -0
  61. package/dist/build/parsers/w3cJsonParser.d.ts +6 -0
  62. package/dist/build/parsers/w3cJsonParser.js +27 -0
  63. package/dist/build/platforms/css.d.ts +2 -0
  64. package/dist/build/platforms/css.js +88 -0
  65. package/dist/build/platforms/deprecatedJson.d.ts +2 -0
  66. package/dist/build/platforms/deprecatedJson.js +17 -0
  67. package/dist/build/platforms/docJson.d.ts +2 -0
  68. package/dist/build/platforms/docJson.js +35 -0
  69. package/dist/build/platforms/fallbacks.d.ts +2 -0
  70. package/dist/build/platforms/fallbacks.js +35 -0
  71. package/dist/build/platforms/figma.d.ts +2 -0
  72. package/dist/build/platforms/figma.js +53 -0
  73. package/dist/build/platforms/index.d.ts +10 -0
  74. package/dist/build/platforms/index.js +23 -0
  75. package/dist/build/platforms/javascript.d.ts +2 -0
  76. package/dist/build/platforms/javascript.js +31 -0
  77. package/dist/build/platforms/json.d.ts +2 -0
  78. package/dist/build/platforms/json.js +33 -0
  79. package/dist/build/platforms/styleLint.d.ts +2 -0
  80. package/dist/build/platforms/styleLint.js +35 -0
  81. package/dist/build/platforms/typeDefinitions.d.ts +2 -0
  82. package/dist/build/platforms/typeDefinitions.js +31 -0
  83. package/dist/build/platforms/typescript.d.ts +2 -0
  84. package/dist/build/platforms/typescript.js +31 -0
  85. package/dist/build/schemas/alphaValue.d.ts +2 -0
  86. package/dist/build/schemas/alphaValue.js +8 -0
  87. package/dist/build/schemas/baseToken.d.ts +11 -0
  88. package/dist/build/schemas/baseToken.js +10 -0
  89. package/dist/build/schemas/borderToken.d.ts +51 -0
  90. package/dist/build/schemas/borderToken.js +20 -0
  91. package/dist/build/schemas/collections.d.ts +6 -0
  92. package/dist/build/schemas/collections.js +18 -0
  93. package/dist/build/schemas/colorHexValue.d.ts +2 -0
  94. package/dist/build/schemas/colorHexValue.js +12 -0
  95. package/dist/build/schemas/colorToken.d.ts +80 -0
  96. package/dist/build/schemas/colorToken.js +52 -0
  97. package/dist/build/schemas/designToken.d.ts +2 -0
  98. package/dist/build/schemas/designToken.js +37 -0
  99. package/dist/build/schemas/dimensionToken.d.ts +52 -0
  100. package/dist/build/schemas/dimensionToken.js +36 -0
  101. package/dist/build/schemas/dimensionValue.d.ts +2 -0
  102. package/dist/build/schemas/dimensionValue.js +12 -0
  103. package/dist/build/schemas/durationToken.d.ts +18 -0
  104. package/dist/build/schemas/durationToken.js +14 -0
  105. package/dist/build/schemas/durationValue.d.ts +2 -0
  106. package/dist/build/schemas/durationValue.js +8 -0
  107. package/dist/build/schemas/fontFamilyToken.d.ts +52 -0
  108. package/dist/build/schemas/fontFamilyToken.js +23 -0
  109. package/dist/build/schemas/fontWeightToken.d.ts +52 -0
  110. package/dist/build/schemas/fontWeightToken.js +24 -0
  111. package/dist/build/schemas/fontWeightValue.d.ts +2 -0
  112. package/dist/build/schemas/fontWeightValue.js +9 -0
  113. package/dist/build/schemas/numberToken.d.ts +71 -0
  114. package/dist/build/schemas/numberToken.js +30 -0
  115. package/dist/build/schemas/referenceValue.d.ts +2 -0
  116. package/dist/build/schemas/referenceValue.js +8 -0
  117. package/dist/build/schemas/scopes.d.ts +5 -0
  118. package/dist/build/schemas/scopes.js +34 -0
  119. package/dist/build/schemas/shadowToken.d.ts +157 -0
  120. package/dist/build/schemas/shadowToken.js +46 -0
  121. package/dist/build/schemas/stringToken.d.ts +18 -0
  122. package/dist/build/schemas/stringToken.js +13 -0
  123. package/dist/build/schemas/tokenName.d.ts +2 -0
  124. package/dist/build/schemas/tokenName.js +8 -0
  125. package/dist/build/schemas/tokenType.d.ts +3 -0
  126. package/dist/build/schemas/tokenType.js +6 -0
  127. package/dist/build/schemas/typographyToken.d.ts +59 -0
  128. package/dist/build/schemas/typographyToken.js +21 -0
  129. package/dist/build/schemas/validTokenType.d.ts +5 -0
  130. package/dist/build/schemas/validTokenType.js +34 -0
  131. package/dist/build/schemas/viewportRangeToken.d.ts +18 -0
  132. package/dist/build/schemas/viewportRangeToken.js +13 -0
  133. package/dist/build/transformers/borderToCss.d.ts +8 -0
  134. package/dist/build/transformers/borderToCss.js +38 -0
  135. package/dist/build/transformers/colorToHex.d.ts +8 -0
  136. package/dist/build/transformers/colorToHex.js +18 -0
  137. package/dist/build/transformers/colorToHexAlpha.d.ts +8 -0
  138. package/dist/build/transformers/colorToHexAlpha.js +25 -0
  139. package/dist/build/transformers/colorToHexMix.d.ts +8 -0
  140. package/dist/build/transformers/colorToHexMix.js +25 -0
  141. package/dist/build/transformers/colorToRgbAlpha.d.ts +8 -0
  142. package/dist/build/transformers/colorToRgbAlpha.js +22 -0
  143. package/dist/build/transformers/colorToRgbaFloat.d.ts +8 -0
  144. package/dist/build/transformers/colorToRgbaFloat.js +50 -0
  145. package/dist/build/transformers/dimensionToPixelUnitless.d.ts +8 -0
  146. package/dist/build/transformers/dimensionToPixelUnitless.js +50 -0
  147. package/dist/build/transformers/dimensionToRem.d.ts +8 -0
  148. package/dist/build/transformers/dimensionToRem.js +47 -0
  149. package/dist/build/transformers/dimensionToRemPxArray.d.ts +8 -0
  150. package/dist/build/transformers/dimensionToRemPxArray.js +47 -0
  151. package/dist/build/transformers/durationToCss.d.ts +8 -0
  152. package/dist/build/transformers/durationToCss.js +30 -0
  153. package/dist/build/transformers/figmaAttributes.d.ts +8 -0
  154. package/dist/build/transformers/figmaAttributes.js +57 -0
  155. package/dist/build/transformers/floatToPixel.d.ts +15 -0
  156. package/dist/build/transformers/floatToPixel.js +41 -0
  157. package/dist/build/transformers/fontFamilyToCss.d.ts +14 -0
  158. package/dist/build/transformers/fontFamilyToCss.js +40 -0
  159. package/dist/build/transformers/fontFamilyToFigma.d.ts +14 -0
  160. package/dist/build/transformers/fontFamilyToFigma.js +46 -0
  161. package/dist/build/transformers/fontWeightToNumber.d.ts +9 -0
  162. package/dist/build/transformers/fontWeightToNumber.js +53 -0
  163. package/dist/build/transformers/index.d.ts +24 -0
  164. package/dist/build/transformers/index.js +51 -0
  165. package/dist/build/transformers/jsonDeprecated.d.ts +8 -0
  166. package/dist/build/transformers/jsonDeprecated.js +16 -0
  167. package/{src/transformers/namePathToCamelCase.ts → dist/build/transformers/namePathToCamelCase.d.ts} +2 -8
  168. package/dist/build/transformers/namePathToCamelCase.js +14 -0
  169. package/dist/build/transformers/namePathToDotNotation.d.ts +8 -0
  170. package/dist/build/transformers/namePathToDotNotation.js +33 -0
  171. package/dist/build/transformers/namePathToFigma.d.ts +9 -0
  172. package/dist/build/transformers/namePathToFigma.js +24 -0
  173. package/dist/build/transformers/namePathToKebabCase.d.ts +8 -0
  174. package/dist/build/transformers/namePathToKebabCase.js +18 -0
  175. package/dist/build/transformers/namePathToPascalCase.d.ts +8 -0
  176. package/dist/build/transformers/namePathToPascalCase.js +14 -0
  177. package/dist/build/transformers/namePathToSlashNotation.d.ts +8 -0
  178. package/dist/build/transformers/namePathToSlashNotation.js +18 -0
  179. package/dist/build/transformers/shadowToCss.d.ts +8 -0
  180. package/dist/build/transformers/shadowToCss.js +35 -0
  181. package/dist/build/transformers/typographyToCss.d.ts +8 -0
  182. package/dist/build/transformers/typographyToCss.js +29 -0
  183. package/dist/build/transformers/utilities/alpha.d.ts +9 -0
  184. package/dist/build/transformers/utilities/alpha.js +20 -0
  185. package/dist/build/transformers/utilities/checkRequiredTokenProperties.d.ts +7 -0
  186. package/dist/build/transformers/utilities/checkRequiredTokenProperties.js +17 -0
  187. package/dist/build/transformers/utilities/getTokenValue.d.ts +2 -0
  188. package/dist/build/transformers/utilities/getTokenValue.js +18 -0
  189. package/dist/build/transformers/utilities/hasSpaceInString.d.ts +1 -0
  190. package/dist/build/transformers/utilities/hasSpaceInString.js +10 -0
  191. package/dist/build/transformers/utilities/hexToRgbaFloat.d.ts +2 -0
  192. package/dist/build/transformers/utilities/hexToRgbaFloat.js +33 -0
  193. package/dist/build/transformers/utilities/invalidTokenError.d.ts +7 -0
  194. package/dist/build/transformers/utilities/invalidTokenError.js +26 -0
  195. package/dist/build/transformers/utilities/isRgbaFloat.d.ts +7 -0
  196. package/dist/build/transformers/utilities/isRgbaFloat.js +24 -0
  197. package/dist/build/transformers/utilities/mix.d.ts +5 -0
  198. package/dist/build/transformers/utilities/mix.js +40 -0
  199. package/dist/build/transformers/utilities/rgbaFloatToHex.d.ts +6 -0
  200. package/dist/build/transformers/utilities/rgbaFloatToHex.js +15 -0
  201. package/dist/build/utilities/copyFromDir.d.ts +8 -0
  202. package/dist/build/utilities/copyFromDir.js +34 -0
  203. package/dist/build/utilities/filterStringArray.d.ts +1 -0
  204. package/dist/build/utilities/filterStringArray.js +17 -0
  205. package/{src/utilities/getFlag.ts → dist/build/utilities/getFlag.d.ts} +1 -5
  206. package/dist/build/utilities/getFlag.js +16 -0
  207. package/dist/build/utilities/index.d.ts +3 -0
  208. package/dist/build/utilities/index.js +9 -0
  209. package/dist/build/utilities/joinFriendly.d.ts +1 -0
  210. package/dist/build/utilities/joinFriendly.js +5 -0
  211. package/dist/build/utilities/schemaErrorMessage.d.ts +1 -0
  212. package/dist/build/utilities/schemaErrorMessage.js +5 -0
  213. package/dist/build/utilities/toCamelCase.d.ts +1 -0
  214. package/dist/build/utilities/toCamelCase.js +20 -0
  215. package/dist/build/utilities/toPascalCase.d.ts +1 -0
  216. package/dist/build/utilities/toPascalCase.js +17 -0
  217. package/dist/build/utilities/treeWalker.d.ts +8 -0
  218. package/dist/build/utilities/treeWalker.js +27 -0
  219. package/{src/utilities/upperCaseFirstCharacter.ts → dist/build/utilities/upperCaseFirstCharacter.d.ts} +1 -3
  220. package/dist/build/utilities/upperCaseFirstCharacter.js +14 -0
  221. package/package.json +4 -5
  222. package/src/PrimerStyleDictionary.ts +0 -232
  223. package/src/filters/index.ts +0 -13
  224. package/src/filters/isColorWithAlpha.ts +0 -11
  225. package/src/filters/isColorWithMix.ts +0 -33
  226. package/src/filters/isFromFile.ts +0 -12
  227. package/src/formats/cssAdvanced.ts +0 -99
  228. package/src/formats/cssCustomMedia.ts +0 -24
  229. package/src/formats/index.ts +0 -9
  230. package/src/formats/javascriptCommonJs.ts +0 -21
  231. package/src/formats/javascriptEsm.ts +0 -21
  232. package/src/formats/jsonFigma.ts +0 -134
  233. package/src/formats/jsonNestedPrefixed.ts +0 -23
  234. package/src/formats/jsonOneDimensional.ts +0 -18
  235. package/src/formats/jsonPostCssFallback.ts +0 -16
  236. package/src/formats/typescriptExportDefinition.ts +0 -170
  237. package/src/formats/utilities/jsonToNestedValue.ts +0 -20
  238. package/src/formats/utilities/prefixTokens.ts +0 -17
  239. package/src/parsers/index.ts +0 -1
  240. package/src/parsers/w3cJsonParser.ts +0 -25
  241. package/src/platforms/css.ts +0 -101
  242. package/src/platforms/deprecatedJson.ts +0 -16
  243. package/src/platforms/docJson.ts +0 -34
  244. package/src/platforms/fallbacks.ts +0 -34
  245. package/src/platforms/figma.ts +0 -58
  246. package/src/platforms/index.ts +0 -10
  247. package/src/platforms/javascript.ts +0 -30
  248. package/src/platforms/json.ts +0 -32
  249. package/src/platforms/styleLint.ts +0 -34
  250. package/src/platforms/typeDefinitions.ts +0 -30
  251. package/src/platforms/typescript.ts +0 -30
  252. package/src/schemas/alphaValue.ts +0 -12
  253. package/src/schemas/baseToken.ts +0 -8
  254. package/src/schemas/borderToken.ts +0 -19
  255. package/src/schemas/collections.ts +0 -49
  256. package/src/schemas/colorHexValue.ts +0 -18
  257. package/src/schemas/colorToken.ts +0 -50
  258. package/src/schemas/designToken.ts +0 -38
  259. package/src/schemas/dimensionToken.ts +0 -34
  260. package/src/schemas/dimensionValue.ts +0 -16
  261. package/src/schemas/durationToken.ts +0 -12
  262. package/src/schemas/durationValue.ts +0 -9
  263. package/src/schemas/fontFamilyToken.ts +0 -21
  264. package/src/schemas/fontWeightToken.ts +0 -22
  265. package/src/schemas/fontWeightValue.ts +0 -14
  266. package/src/schemas/numberToken.ts +0 -28
  267. package/src/schemas/referenceValue.ts +0 -12
  268. package/src/schemas/scopes.ts +0 -40
  269. package/src/schemas/shadowToken.ts +0 -45
  270. package/src/schemas/stringToken.ts +0 -11
  271. package/src/schemas/tokenName.ts +0 -12
  272. package/src/schemas/tokenType.ts +0 -4
  273. package/src/schemas/typographyToken.ts +0 -20
  274. package/src/schemas/validTokenType.ts +0 -44
  275. package/src/schemas/viewportRangeToken.ts +0 -11
  276. package/src/test-utilities/getMockDictionary.ts +0 -22
  277. package/src/test-utilities/getMockFormatterArguments.ts +0 -21
  278. package/src/test-utilities/getMockParserInput.ts +0 -72
  279. package/src/test-utilities/getMockToken.ts +0 -25
  280. package/src/test-utilities/index.ts +0 -4
  281. package/src/tokens/base/color/dark/dark.dimmed.json5 +0 -1164
  282. package/src/tokens/base/color/dark/dark.high-contrast.json5 +0 -764
  283. package/src/tokens/base/color/dark/dark.json5 +0 -911
  284. package/src/tokens/base/color/dark/display-dark.json5 +0 -1774
  285. package/src/tokens/base/color/light/display-light.json5 +0 -1774
  286. package/src/tokens/base/color/light/light.high-contrast.json5 +0 -755
  287. package/src/tokens/base/color/light/light.json5 +0 -911
  288. package/src/tokens/base/size/size.json +0 -196
  289. package/src/tokens/base/typography/typography.json +0 -48
  290. package/src/tokens/fallback/color-fallbacks.json +0 -270
  291. package/src/tokens/functional/border/dark.json5 +0 -12
  292. package/src/tokens/functional/border/light.json5 +0 -12
  293. package/src/tokens/functional/color/dark/app-dark.json5 +0 -554
  294. package/src/tokens/functional/color/dark/data-vis-dark.json5 +0 -284
  295. package/src/tokens/functional/color/dark/display-dark.json5 +0 -1258
  296. package/src/tokens/functional/color/dark/overrides/dark.dimmed.json5 +0 -194
  297. package/src/tokens/functional/color/dark/overrides/dark.high-contrast.json5 +0 -935
  298. package/src/tokens/functional/color/dark/overrides/dark.protanopia-deuteranopia.json5 +0 -310
  299. package/src/tokens/functional/color/dark/overrides/dark.tritanopia.json5 +0 -224
  300. package/src/tokens/functional/color/dark/patterns-dark.json5 +0 -3097
  301. package/src/tokens/functional/color/dark/primitives-dark.json5 +0 -1200
  302. package/src/tokens/functional/color/dark/syntax-dark.json5 +0 -559
  303. package/src/tokens/functional/color/light/app-light.json5 +0 -551
  304. package/src/tokens/functional/color/light/data-vis-light.json5 +0 -284
  305. package/src/tokens/functional/color/light/display-light.json5 +0 -1258
  306. package/src/tokens/functional/color/light/overrides/light.high-contrast.json5 +0 -819
  307. package/src/tokens/functional/color/light/overrides/light.protanopia-deuteranopia.json5 +0 -327
  308. package/src/tokens/functional/color/light/overrides/light.tritanopia.json5 +0 -237
  309. package/src/tokens/functional/color/light/patterns-light.json5 +0 -3091
  310. package/src/tokens/functional/color/light/primitives-light.json5 +0 -1193
  311. package/src/tokens/functional/color/light/syntax-light.json5 +0 -559
  312. package/src/tokens/functional/motion/loading.json5 +0 -17
  313. package/src/tokens/functional/motion/patterns.json5 +0 -28
  314. package/src/tokens/functional/shadow/dark.json5 +0 -383
  315. package/src/tokens/functional/shadow/light.json5 +0 -376
  316. package/src/tokens/functional/size/border.json +0 -111
  317. package/src/tokens/functional/size/breakpoints.json +0 -64
  318. package/src/tokens/functional/size/size-coarse.json +0 -28
  319. package/src/tokens/functional/size/size-fine.json +0 -28
  320. package/src/tokens/functional/size/size.json +0 -740
  321. package/src/tokens/functional/size/viewport.json +0 -28
  322. package/src/tokens/functional/typography/typography.json +0 -527
  323. package/src/tokens/removed/color.json +0 -421
  324. package/src/tokens/removed/testing.json5 +0 -4
  325. package/src/transformers/borderToCss.ts +0 -38
  326. package/src/transformers/colorToHex.ts +0 -16
  327. package/src/transformers/colorToHexAlpha.ts +0 -23
  328. package/src/transformers/colorToHexMix.ts +0 -19
  329. package/src/transformers/colorToRgbAlpha.ts +0 -19
  330. package/src/transformers/colorToRgbaFloat.ts +0 -45
  331. package/src/transformers/dimensionToPixelUnitless.ts +0 -60
  332. package/src/transformers/dimensionToRem.ts +0 -56
  333. package/src/transformers/dimensionToRemPxArray.ts +0 -60
  334. package/src/transformers/durationToCss.ts +0 -29
  335. package/src/transformers/figmaAttributes.ts +0 -79
  336. package/src/transformers/floatToPixel.ts +0 -40
  337. package/src/transformers/fontFamilyToCss.ts +0 -37
  338. package/src/transformers/fontFamilyToFigma.ts +0 -47
  339. package/src/transformers/fontWeightToNumber.ts +0 -53
  340. package/src/transformers/index.ts +0 -24
  341. package/src/transformers/jsonDeprecated.ts +0 -15
  342. package/src/transformers/namePathToDotNotation.ts +0 -34
  343. package/src/transformers/namePathToFigma.ts +0 -28
  344. package/src/transformers/namePathToKebabCase.ts +0 -19
  345. package/src/transformers/namePathToSlashNotation.ts +0 -19
  346. package/src/transformers/shadowToCss.ts +0 -37
  347. package/src/transformers/typographyToCss.ts +0 -31
  348. package/src/transformers/utilities/alpha.ts +0 -23
  349. package/src/transformers/utilities/checkRequiredTokenProperties.ts +0 -16
  350. package/src/transformers/utilities/getTokenValue.ts +0 -18
  351. package/src/transformers/utilities/hasSpaceInString.ts +0 -6
  352. package/src/transformers/utilities/hexToRgbaFloat.ts +0 -31
  353. package/src/transformers/utilities/invalidTokenError.ts +0 -34
  354. package/src/transformers/utilities/isRgbaFloat.ts +0 -29
  355. package/src/transformers/utilities/mix.ts +0 -46
  356. package/src/transformers/utilities/rgbaFloatToHex.ts +0 -15
  357. package/src/types/Border.d.ts +0 -5
  358. package/src/types/BorderTokenValue.d.ts +0 -10
  359. package/src/types/ColorHex.d.ts +0 -4
  360. package/src/types/PlatformInitializer.d.ts +0 -11
  361. package/src/types/Shadow.d.ts +0 -5
  362. package/src/types/ShadowTokenValue.d.ts +0 -14
  363. package/src/types/SizeEm.d.ts +0 -4
  364. package/src/types/SizePx.d.ts +0 -4
  365. package/src/types/SizeRem.d.ts +0 -4
  366. package/src/types/StyleDictionaryConfigGenerator.d.ts +0 -15
  367. package/src/types/TokenBuildInput.d.ts +0 -8
  368. package/src/types/TypographyTokenValue.d.ts +0 -12
  369. package/src/types/w3cTransformedToken.d.ts +0 -8
  370. package/src/utilities/copyFromDir.ts +0 -21
  371. package/src/utilities/index.ts +0 -3
  372. package/src/utilities/joinFriendly.ts +0 -2
  373. package/src/utilities/schemaErrorMessage.ts +0 -2
  374. package/src/utilities/toCamelCase.ts +0 -29
  375. package/src/utilities/treeWalker.ts +0 -27
@@ -1,56 +0,0 @@
1
- import {isDimension} from '../filters'
2
- import type StyleDictionary from 'style-dictionary'
3
- import type {Platform} from 'style-dictionary'
4
-
5
- /**
6
- * @description base font size from options or 16
7
- * @param options
8
- * @returns number
9
- */
10
- const getBasePxFontSize = (options?: Platform): number => (options && options.basePxFontSize) || 16
11
-
12
- /**
13
- * @description checks if token value has a specific unit
14
- * @param value token value
15
- * @param unit unit string like px or value
16
- * @returns boolean
17
- */
18
- const hasUnit = (value: string | number, unit: string): boolean => {
19
- if (typeof value === 'number') {
20
- return false
21
- }
22
-
23
- return value.indexOf(unit) > -1
24
- }
25
-
26
- /**
27
- * @description converts dimension tokens value to `rem`, ignores `em` as they are relative to the font size of the parent element
28
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
29
- * @matcher matches all tokens of $type `dimension`
30
- * @transformer returns a `rem` string
31
- */
32
- export const dimensionToRem: StyleDictionary.Transform = {
33
- type: `value`,
34
- transitive: true,
35
- matcher: isDimension,
36
- transformer: (token: StyleDictionary.TransformedToken, options?: Platform) => {
37
- const baseFont = getBasePxFontSize(options)
38
- const floatVal = parseFloat(token.value)
39
-
40
- if (isNaN(floatVal)) {
41
- throw new Error(
42
- `Invalid dimension token: '${token.name}: ${token.value}' is not valid and cannot be transform to 'rem' \n`,
43
- )
44
- }
45
-
46
- if (floatVal === 0) {
47
- return '0'
48
- }
49
-
50
- if (hasUnit(token.value, 'rem') || hasUnit(token.value, 'em')) {
51
- return token.value
52
- }
53
-
54
- return `${floatVal / baseFont}rem`
55
- },
56
- }
@@ -1,60 +0,0 @@
1
- import {isDimension} from '../filters'
2
- import type StyleDictionary from 'style-dictionary'
3
- import type {Platform} from 'style-dictionary'
4
-
5
- type SizePx = '0' | `${number}px`
6
- type SizeRem = '0' | `${number}rem`
7
- type SizeEm = '0' | `${number}em`
8
-
9
- /**
10
- * @description base font size from options or 16
11
- * @param options
12
- * @returns number
13
- */
14
- const getBasePxFontSize = (options?: Platform): number => (options && options.basePxFontSize) || 16
15
-
16
- /**
17
- * @description checks if token value has a specific unit
18
- * @param value token value
19
- * @param unit unit string like px or value
20
- * @returns boolean
21
- */
22
- const hasUnit = (value: string | number, unit: string): boolean => {
23
- if (typeof value === 'number') {
24
- return false
25
- }
26
-
27
- return value.indexOf(unit) > -1
28
- }
29
-
30
- /**
31
- * @description converts dimension tokens value to `rem`, ignores `em` as they are relative to the font size of the parent element
32
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
33
- * @matcher matches all tokens of $type `dimension`
34
- * @transformer returns an array with the `rem` and `pixel` string
35
- */
36
- export const dimensionToRemPxArray: StyleDictionary.Transform = {
37
- type: `value`,
38
- transitive: true,
39
- matcher: isDimension,
40
- transformer: (token: StyleDictionary.TransformedToken, options?: Platform): [SizeRem | SizeEm, SizePx] => {
41
- const baseFont = getBasePxFontSize(options)
42
- const floatVal = parseFloat(token.value)
43
-
44
- if (isNaN(floatVal)) {
45
- throw new Error(
46
- `Invalid dimension token: '${token.name}: ${token.value}' is not valid and cannot be transform to 'rem' \n`,
47
- )
48
- }
49
-
50
- if (floatVal === 0) {
51
- return ['0', '0']
52
- }
53
-
54
- if (hasUnit(token.value, 'rem') || hasUnit(token.value, 'em')) {
55
- return [token.value, `${floatVal * baseFont}px`]
56
- }
57
-
58
- return [`${floatVal / baseFont}rem`, `${floatVal}px`]
59
- },
60
- }
@@ -1,29 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import {isDuration} from '../filters/isDuration'
3
-
4
- /**
5
- * @description converts duration tokens string value to number with `ms` unit
6
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
7
- * @matcher matches all tokens of $type `duration`
8
- * @transformer returns a css duration
9
- */
10
- export const durationToCss: StyleDictionary.Transform = {
11
- type: `value`,
12
- transitive: true,
13
- matcher: isDuration,
14
- transformer: (token: StyleDictionary.TransformedToken, _options?: StyleDictionary.Platform) => {
15
- // throw an error if token value is not a string or does not end with `ms`
16
- if (typeof token.value !== `string` || !token.value.endsWith(`ms`)) {
17
- throw new Error(`duration token value must be a string with an "ms" unit`)
18
- }
19
- // get value
20
- let value = parseInt(token.value.replace('ms', ''))
21
- let unit = `ms`
22
- if (value >= 1000) {
23
- value = value / 1000
24
- unit = `s`
25
- }
26
- // return value
27
- return `${value}${unit}`
28
- },
29
- }
@@ -1,79 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
-
3
- type FigmaVariableScope =
4
- | 'ALL_SCOPES'
5
- | 'TEXT_CONTENT'
6
- | 'CORNER_RADIUS'
7
- | 'WIDTH_HEIGHT'
8
- | 'GAP'
9
- | 'ALL_FILLS'
10
- | 'FRAME_FILL'
11
- | 'SHAPE_FILL'
12
- | 'TEXT_FILL'
13
- | 'STROKE_COLOR'
14
- | 'STROKE_FLOAT'
15
- | 'EFFECT_COLOR'
16
- | 'EFFECT_FLOAT'
17
- | 'OPACITY'
18
- | 'FONT_FAMILY'
19
- | 'FONT_STYLE'
20
- | 'FONT_WEIGHT'
21
- | 'FONT_SIZE'
22
- | 'LINE_HEIGHT'
23
- | 'LETTER_SPACING'
24
- | 'PARAGRAPH_SPACING'
25
- | 'PARAGRAPH_INDENT'
26
-
27
- const figmaScopes: Record<string, FigmaVariableScope[]> = {
28
- all: ['ALL_SCOPES'],
29
- radius: ['CORNER_RADIUS'],
30
- size: ['WIDTH_HEIGHT'],
31
- gap: ['GAP'],
32
- bgColor: ['FRAME_FILL', 'SHAPE_FILL'],
33
- fgColor: ['TEXT_FILL', 'SHAPE_FILL'],
34
- effectColor: ['EFFECT_COLOR'],
35
- effectFloat: ['EFFECT_FLOAT'],
36
- borderColor: ['STROKE_COLOR'],
37
- borderWidth: ['STROKE_FLOAT'],
38
- opacity: ['OPACITY'],
39
- fontFamily: ['FONT_FAMILY'],
40
- fontStyle: ['FONT_STYLE'],
41
- fontWeight: ['FONT_WEIGHT'],
42
- fontSize: ['FONT_SIZE'],
43
- lineHeight: ['LINE_HEIGHT'],
44
- letterSpacing: ['LETTER_SPACING'],
45
- paragraphSpacing: ['PARAGRAPH_SPACING'],
46
- paragraphIndent: ['PARAGRAPH_INDENT'],
47
- }
48
-
49
- const getScopes = (scopes: string[] | string | undefined): FigmaVariableScope[] => {
50
- if (typeof scopes === 'string') scopes = [scopes]
51
- if (Array.isArray(scopes))
52
- return scopes
53
- .map(scope => {
54
- if (scope in figmaScopes) return figmaScopes[scope]
55
- throw new Error(`Invalid scope: ${scope}`)
56
- })
57
- .flat() as FigmaVariableScope[]
58
-
59
- return ['ALL_SCOPES']
60
- }
61
- /**
62
- * @description retrieves figma attributes from token and adds them to attributes
63
- * @type attribute transformer — [StyleDictionary.AttributeTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
64
- * @matcher matches all tokens
65
- * @transformer returns ab object of figma attributes
66
- */
67
- export const figmaAttributes: StyleDictionary.Transform = {
68
- type: `attribute`,
69
- transformer: (token: StyleDictionary.TransformedToken, platform: StyleDictionary.Platform = {}) => {
70
- const {mode, collection, scopes, group, codeSyntax} = token.$extensions?.['org.primer.figma'] || {}
71
- return {
72
- mode: platform.options?.mode || mode || 'default',
73
- collection,
74
- group: group || collection,
75
- scopes: getScopes(scopes),
76
- codeSyntax,
77
- }
78
- },
79
- }
@@ -1,40 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import {isNumber} from '../filters'
3
- /**
4
- * takes a value and returns it if its a px string if it is a float and the token has a fontSize value in extensions['org.primer.data']
5
- * @param value
6
- * @returns string
7
- */
8
- export const convertFloatToPixel = (token: StyleDictionary.TransformedToken, unitless = false) => {
9
- // short circut if value is not a number
10
- if (
11
- typeof token.value !== 'number' ||
12
- !token.$extensions?.['org.primer.data']?.fontSize ||
13
- typeof token.$extensions?.['org.primer.data']?.fontSize !== 'number'
14
- ) {
15
- return token.value
16
- }
17
- // convert value
18
- const convertedValue = token.$extensions?.['org.primer.data']?.fontSize * token.value
19
- // return converted value
20
- return convertedValue === 0 ? 0 : unitless ? Math.round(convertedValue) : `${Math.round(convertedValue)}px`
21
- }
22
- /**
23
- * @description converts a float value to a pixel value based on the provided fontSize on the tokersn extension
24
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
25
- * @matcher matches all tokens of $type `isNumber`
26
- * @transformer returns a pixel string
27
- */
28
- export const floatToPixel: StyleDictionary.Transform = {
29
- type: `value`,
30
- transitive: true,
31
- matcher: isNumber,
32
- transformer: (token: StyleDictionary.TransformedToken): string => convertFloatToPixel(token),
33
- }
34
-
35
- export const floatToPixelUnitless: StyleDictionary.Transform = {
36
- type: `value`,
37
- transitive: true,
38
- matcher: isNumber,
39
- transformer: (token: StyleDictionary.TransformedToken): string => convertFloatToPixel(token, true),
40
- }
@@ -1,37 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import {isFontFamily} from '../filters'
3
- import {getTokenValue} from './utilities/getTokenValue'
4
- import {hasSpaceInString} from './utilities/hasSpaceInString'
5
- /**
6
- * takes a value and returns it if its a string or concats strings in an array quoting strings with spaces
7
- * @param value
8
- * @returns string
9
- */
10
- export const parseFontFamily = (value: unknown): string => {
11
- if (typeof value === 'string') {
12
- return value
13
- }
14
- if (Array.isArray(value)) {
15
- return value
16
- .map((string: string) => {
17
- if (typeof string !== 'string') {
18
- throw new Error(`Invalid value in array ${string}, must be a string`)
19
- }
20
- return hasSpaceInString(string) ? `'${string}'` : string
21
- })
22
- .join(', ')
23
- }
24
- throw new Error(`Invalid value ${value}, should be a string or array of strings`)
25
- }
26
- /**
27
- * @description converts fontFamily tokens value to string
28
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
29
- * @matcher matches all tokens of $type `fontFamily`
30
- * @transformer returns a string
31
- */
32
- export const fontFamilyToCss: StyleDictionary.Transform = {
33
- type: `value`,
34
- transitive: true,
35
- matcher: isFontFamily,
36
- transformer: (token: StyleDictionary.TransformedToken): string => parseFontFamily(getTokenValue(token)),
37
- }
@@ -1,47 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import {isFontFamily} from '../filters'
3
- import {hasSpaceInString} from './utilities/hasSpaceInString'
4
- /**
5
- * takes a value and returns it if its a string or concats strings in an array quoting strings with spaces
6
- * @param value
7
- * @returns string
8
- */
9
- export const parseFontFamily = (
10
- token: StyleDictionary.TransformedToken,
11
- fontFamilies: Record<string, string> = {},
12
- ): string => {
13
- // return value from fontFamilies
14
- if (token.name in fontFamilies) {
15
- return fontFamilies[token.name]
16
- }
17
- // return string
18
- if (typeof token.value === 'string') {
19
- return token.value
20
- }
21
- // return stringified array
22
- if (Array.isArray(token.value)) {
23
- return token.value
24
- .map((string: string) => {
25
- if (typeof string !== 'string') {
26
- throw new Error(`Invalid value in array ${string}, must be a string`)
27
- }
28
- return hasSpaceInString(string) ? `'${string}'` : string
29
- })
30
- .join(', ')
31
- }
32
- // invalid value
33
- throw new Error(`Invalid value ${token.value}, should be a string or array of strings`)
34
- }
35
- /**
36
- * @description converts fontFamily tokens value to string
37
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
38
- * @matcher matches all tokens of $type `fontFamily`
39
- * @transformer returns a string
40
- */
41
- export const fontFamilyToFigma: StyleDictionary.Transform = {
42
- type: `value`,
43
- transitive: true,
44
- matcher: isFontFamily,
45
- transformer: (token: StyleDictionary.TransformedToken, platform: StyleDictionary.Platform): string =>
46
- parseFontFamily(token, platform.options?.fontFamilies),
47
- }
@@ -1,53 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import {isFontWeight} from '../filters'
3
- import {getTokenValue} from './utilities/getTokenValue'
4
-
5
- const fontWeightMatrix: Record<string, string[]> = {
6
- '100': ['thin', 'hairline'],
7
- '200': ['extra-light', 'ultra-light'],
8
- '300': ['light'],
9
- '400': ['normal', 'regular', 'book'],
10
- '500': ['medium'],
11
- '600': ['semi-bold', 'demi-bold'],
12
- '700': ['bold'],
13
- '800': ['extra-bold', 'ultra-bold'],
14
- '900': ['black', 'heavy'],
15
- '950': ['extra-black', 'ultra-black'],
16
- }
17
-
18
- export const parseFontWeight = (value: unknown): number => {
19
- // throw on anything but string and number
20
- if (typeof value !== 'string' && typeof value !== 'number') {
21
- throw new Error(`Invalid value ${value}, should be a number or fontWeight string`)
22
- }
23
- // valid string
24
- if (typeof value === 'string') {
25
- const key = Object.keys(fontWeightMatrix).find((k: string) => fontWeightMatrix[k].includes(value as string))
26
- if (key !== undefined) {
27
- return parseInt(key)
28
- }
29
- }
30
- // if number as string
31
- if (typeof value === 'string' && typeof parseInt(value) === 'number' && !isNaN(parseInt(value))) {
32
- value = parseInt(value)
33
- }
34
- // return if valid numver
35
- if (typeof value === 'number' && value > 0 && value <= 1000) {
36
- return value
37
- }
38
- // invalid value
39
- throw new Error(`Invalid value ${value}, should be a number or fontWeight string`)
40
- }
41
-
42
- /**
43
- * @description converts fontWeight tokens value to numeric value
44
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
45
- * @matcher matches all tokens of $type `fontWeight`
46
- * @transformer returns a number
47
- */
48
- export const fontWeightToNumber: StyleDictionary.Transform = {
49
- type: `value`,
50
- transitive: true,
51
- matcher: isFontWeight,
52
- transformer: (token: StyleDictionary.TransformedToken): number => parseFontWeight(getTokenValue(token)),
53
- }
@@ -1,24 +0,0 @@
1
- export {borderToCss} from './borderToCss'
2
- export {colorToHex} from './colorToHex'
3
- export {colorToHexAlpha} from './colorToHexAlpha'
4
- export {colorToHexMix} from './colorToHexMix'
5
- export {colorToRgbAlpha} from './colorToRgbAlpha'
6
- export {colorToRgbaFloat} from './colorToRgbaFloat'
7
- export {floatToPixel} from './floatToPixel'
8
- export {floatToPixelUnitless} from './floatToPixel'
9
- export {dimensionToRem} from './dimensionToRem'
10
- export {dimensionToRemPxArray} from './dimensionToRemPxArray'
11
- export {dimensionToPixelUnitless} from './dimensionToPixelUnitless'
12
- export {durationToCss} from './durationToCss'
13
- export {figmaAttributes} from './figmaAttributes'
14
- export {fontFamilyToCss} from './fontFamilyToCss'
15
- export {fontFamilyToFigma} from './fontFamilyToFigma'
16
- export {fontWeightToNumber} from './fontWeightToNumber'
17
- export {jsonDeprecated} from './jsonDeprecated'
18
- export {namePathToCamelCase} from './namePathToCamelCase'
19
- export {namePathToDotNotation} from './namePathToDotNotation'
20
- export {namePathToFigma} from './namePathToFigma'
21
- export {namePathToKebabCase} from './namePathToKebabCase'
22
- export {namePathToSlashNotation} from './namePathToSlashNotation'
23
- export {shadowToCss} from './shadowToCss'
24
- export {typographyToCss} from './typographyToCss'
@@ -1,15 +0,0 @@
1
- import {isDeprecated} from '../filters'
2
- import type StyleDictionary from 'style-dictionary'
3
- /**
4
- * @description replaces tokens value with content of tokens `deprecated` property
5
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
6
- * @matcher matches all tokens with a `deprecated` property
7
- * @transformer returns `string` specified in `token.deprecated` or `null`
8
- */
9
- export const jsonDeprecated: StyleDictionary.Transform = {
10
- type: `value`,
11
- transitive: true,
12
- matcher: isDeprecated,
13
- transformer: (token: StyleDictionary.TransformedToken) =>
14
- typeof token.deprecated === 'string' ? token.deprecated.replace(/[{}]/g, '') : null,
15
- }
@@ -1,34 +0,0 @@
1
- import {upperCaseFirstCharacter} from '../utilities'
2
- import type StyleDictionary from 'style-dictionary'
3
-
4
- /**
5
- * camelCase
6
- * @scope custom camelCase implementation should only be used within `name path to dot notation` transformer
7
- * @description replaces space ` `, dash `-`, underscore `_` and plus `+` by camelCasing e.g. `camel-case` -> `camelCase`
8
- * @param string
9
- * @returns string
10
- */
11
- const camelCase = (string: string): string => {
12
- return string
13
- .split(/[\s-_+]+/g)
14
- .map((stringPart: string, index: number) => (index === 0 ? stringPart : upperCaseFirstCharacter(stringPart)))
15
- .join('')
16
- }
17
- /**
18
- * @description converts the [TransformedToken's](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts) `.path` array to a dot.notation string
19
- * @type name transformer — [StyleDictionary.NameTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
20
- * @matcher omitted to match all tokens
21
- * @transformer returns `string` in dot.notation
22
- */
23
- export const namePathToDotNotation: StyleDictionary.Transform = {
24
- type: `name`,
25
- transformer: (token: StyleDictionary.TransformedToken, options?: StyleDictionary.Platform): string => {
26
- return (
27
- [options?.prefix, ...token.path]
28
- // remove undefined if exists
29
- .filter((part: unknown): part is string => typeof part === 'string' && part !== '@')
30
- .map((part: string) => camelCase(part))
31
- .join('.')
32
- )
33
- },
34
- }
@@ -1,28 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
-
3
- export const transformNamePathToFigma = (
4
- token: StyleDictionary.TransformedToken,
5
- options?: StyleDictionary.Platform,
6
- ): string => {
7
- let pathArray = token.path.filter((part: unknown): part is string => part !== '@')
8
- if (['fgColor', 'borderColor', 'bgColor'].includes(pathArray[0]) && pathArray.length === 3) {
9
- pathArray = [pathArray[0], `${pathArray[1]}-${pathArray[2]}`]
10
- }
11
- return (
12
- [options?.prefix, ...pathArray]
13
- // remove undefined if exists
14
- .filter((part: unknown): part is string => typeof part === 'string' && part !== '@')
15
- .join('/')
16
- )
17
- }
18
-
19
- /**
20
- * @description converts the [TransformedToken's](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts) `.path` array to a specific figma name
21
- * @type name transformer — [StyleDictionary.NameTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
22
- * @matcher omitted to match all tokens
23
- * @transformer returns `string`
24
- */
25
- export const namePathToFigma: StyleDictionary.Transform = {
26
- type: `name`,
27
- transformer: transformNamePathToFigma,
28
- }
@@ -1,19 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
-
3
- /**
4
- * @description converts the [TransformedToken's](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts) `.path` array to a kebab-case string, preserves casing of parts
5
- * @type name transformer — [StyleDictionary.NameTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
6
- * @matcher omitted to match all tokens
7
- * @transformer returns `string` kebab-case
8
- */
9
- export const namePathToKebabCase: StyleDictionary.Transform = {
10
- type: `name`,
11
- transformer: (token: StyleDictionary.TransformedToken, options?: StyleDictionary.Platform): string => {
12
- return (
13
- [options?.prefix, ...token.path]
14
- // remove undefined if exists
15
- .filter((part: unknown): part is string => typeof part === 'string' && part !== '@')
16
- .join('-')
17
- )
18
- },
19
- }
@@ -1,19 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
-
3
- /**
4
- * @description converts the [TransformedToken's](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts) `.path` array to a slash/notation string
5
- * @type name transformer — [StyleDictionary.NameTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
6
- * @matcher omitted to match all tokens
7
- * @transformer returns `string` on slash/notation
8
- */
9
- export const namePathToSlashNotation: StyleDictionary.Transform = {
10
- type: `name`,
11
- transformer: (token: StyleDictionary.TransformedToken, options?: StyleDictionary.Platform): string => {
12
- return (
13
- [options?.prefix, ...token.path]
14
- // remove undefined if exists
15
- .filter((part: unknown): part is string => typeof part === 'string' && part !== '@')
16
- .join('/')
17
- )
18
- },
19
- }
@@ -1,37 +0,0 @@
1
- import {toHex} from 'color2k'
2
- import {isShadow} from '../filters'
3
- import {alpha} from './utilities/alpha'
4
- import {checkRequiredTokenProperties} from './utilities/checkRequiredTokenProperties'
5
- import type {ShadowTokenValue} from '../types/ShadowTokenValue'
6
- import type StyleDictionary from 'style-dictionary'
7
- import {getTokenValue} from './utilities/getTokenValue'
8
-
9
- /**
10
- * @description converts w3c shadow tokens in css shadow string
11
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
12
- * @matcher matches all tokens of $type `shadow`
13
- * @transformer returns css shadow `string`
14
- */
15
- export const shadowToCss: StyleDictionary.Transform = {
16
- type: `value`,
17
- transitive: true,
18
- matcher: isShadow,
19
- transformer: (token: StyleDictionary.TransformedToken) => {
20
- // extract value
21
- const {value}: {value: ShadowTokenValue | ShadowTokenValue[]} = token
22
- // turn value into array
23
- const shadowValues = !Array.isArray(value) ? [value] : value
24
-
25
- return shadowValues
26
- .map((shadow: ShadowTokenValue) => {
27
- // if value === string it was probably already transformed
28
- if (typeof shadow === 'string') return shadow
29
- checkRequiredTokenProperties(shadow, ['color', 'offsetX', 'offsetY', 'blur', 'spread'])
30
- /*css box shadow: inset? | offset-x | offset-y | blur-radius | spread-radius | color */
31
- return `${shadow.inset === true ? 'inset ' : ''}${shadow.offsetX} ${shadow.offsetY} ${shadow.blur} ${
32
- shadow.spread
33
- } ${toHex(alpha(getTokenValue({...token, ...{value: shadow}}, 'color'), shadow.alpha || 1, token))}`
34
- })
35
- .join(', ')
36
- },
37
- }
@@ -1,31 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import {isTypography} from '../filters'
3
- import type {TypographyTokenValue} from '../types/TypographyTokenValue'
4
- import {checkRequiredTokenProperties} from './utilities/checkRequiredTokenProperties'
5
- import {parseFontFamily} from './fontFamilyToCss'
6
- import {parseFontWeight} from './fontWeightToNumber'
7
- import {getTokenValue} from './utilities/getTokenValue'
8
-
9
- /**
10
- * @description converts typograhy token value to css font shorthand
11
- * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
12
- * @matcher matches all tokens of $type `typography`
13
- * @transformer returns a css font string
14
- */
15
- export const typographyToCss: StyleDictionary.Transform = {
16
- type: `value`,
17
- transitive: true,
18
- matcher: isTypography,
19
- transformer: (token: StyleDictionary.TransformedToken) => {
20
- // extract value
21
- const value: TypographyTokenValue = getTokenValue(token)
22
- // validate token properties
23
- checkRequiredTokenProperties(value, ['fontWeight', 'fontSize', 'fontFamily'])
24
- // format output
25
- return `${value.fontStyle || ''} ${parseFontWeight(getTokenValue(token, 'fontWeight'))} ${value.fontSize}${
26
- value.lineHeight ? `/${value.lineHeight}` : ''
27
- } ${parseFontFamily(getTokenValue(token, 'fontFamily'))}`
28
- .trim()
29
- .replace(/\s\s+/g, ' ')
30
- },
31
- }
@@ -1,23 +0,0 @@
1
- import {rgba, parseToRgba} from 'color2k'
2
- import type {TransformedToken} from 'style-dictionary'
3
- /**
4
- * alpha
5
- * @description takes a colors string like hex or rgba and returns an rgba color with the specified alpha value
6
- * @param color color string like a `#334455` or `rgb(255,200,100)`
7
- * @param desiredAlpha number
8
- * @returns rgba value
9
- */
10
- export const alpha = (color: string, desiredAlpha: number, token?: TransformedToken): string => {
11
- const [r, g, b, a] = parseToRgba(color)
12
-
13
- if (a < 1 && desiredAlpha < 1) {
14
- // eslint-disable-next-line no-console
15
- console.warn(
16
- `🚨 You are setting an alpha value of "${desiredAlpha}" for a color with an alpha value (${color}). The previous alpha value will be disregarded as if the color would have been 100% opaque.${
17
- token !== undefined ? `\n ↳ Token: "${token.name}" in file: "${token.filePath}"` : ''
18
- }`,
19
- )
20
- }
21
-
22
- return rgba(r, g, b, desiredAlpha)
23
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * checks if all required properties exist on token
3
- * @param object - tokenValue
4
- * @param array - property names
5
- * @returns void or throws error
6
- */
7
- export const checkRequiredTokenProperties = (
8
- tokenValue: Record<string, unknown>,
9
- requiredProperties: readonly string[],
10
- ) => {
11
- for (const prop of requiredProperties) {
12
- if (prop in tokenValue === false) {
13
- throw new Error(`Missing property: ${prop} on token with value ${JSON.stringify(tokenValue)}`)
14
- }
15
- }
16
- }