@primer/primitives 10.0.0-rc.fd912e08 → 10.1.0-rc.5ced3fe0

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 (345) hide show
  1. package/README.md +2 -2
  2. package/dist/build/filters/index.d.ts +14 -0
  3. package/dist/build/filters/index.js +14 -0
  4. package/dist/build/filters/isBorder.d.ts +7 -0
  5. package/dist/build/filters/isBorder.js +8 -0
  6. package/dist/build/filters/isColor.d.ts +7 -0
  7. package/dist/build/filters/isColor.js +10 -0
  8. package/dist/build/filters/isColorWithAlpha.d.ts +7 -0
  9. package/dist/build/filters/isColorWithAlpha.js +9 -0
  10. package/dist/build/filters/isColorWithMix.d.ts +7 -0
  11. package/dist/build/filters/isColorWithMix.js +24 -0
  12. package/dist/build/filters/isCubicBezier.d.ts +7 -0
  13. package/dist/build/filters/isCubicBezier.js +10 -0
  14. package/dist/build/filters/isDeprecated.d.ts +7 -0
  15. package/dist/build/filters/isDeprecated.js +8 -0
  16. package/dist/build/filters/isDimension.d.ts +7 -0
  17. package/dist/build/filters/isDimension.js +8 -0
  18. package/dist/build/filters/isDuration.d.ts +7 -0
  19. package/dist/build/filters/isDuration.js +8 -0
  20. package/dist/build/filters/isFontFamily.d.ts +7 -0
  21. package/dist/build/filters/isFontFamily.js +8 -0
  22. package/dist/build/filters/isFontWeight.d.ts +7 -0
  23. package/dist/build/filters/isFontWeight.js +8 -0
  24. package/dist/build/filters/isFromFile.d.ts +8 -0
  25. package/dist/build/filters/isFromFile.js +10 -0
  26. package/dist/build/filters/isNumber.d.ts +7 -0
  27. package/dist/build/filters/isNumber.js +8 -0
  28. package/dist/build/filters/isShadow.d.ts +7 -0
  29. package/dist/build/filters/isShadow.js +8 -0
  30. package/dist/build/filters/isSource.d.ts +7 -0
  31. package/dist/build/filters/isSource.js +8 -0
  32. package/dist/build/filters/isTypography.d.ts +7 -0
  33. package/dist/build/filters/isTypography.js +8 -0
  34. package/dist/build/formats/cssAdvanced.d.ts +2 -0
  35. package/dist/build/formats/cssAdvanced.js +86 -0
  36. package/dist/build/formats/cssCustomMedia.d.ts +7 -0
  37. package/dist/build/formats/cssCustomMedia.js +26 -0
  38. package/dist/build/formats/index.d.ts +9 -0
  39. package/dist/build/formats/index.js +9 -0
  40. package/dist/build/formats/javascriptCommonJs.d.ts +7 -0
  41. package/dist/build/formats/javascriptCommonJs.js +26 -0
  42. package/dist/build/formats/javascriptEsm.d.ts +7 -0
  43. package/dist/build/formats/javascriptEsm.js +26 -0
  44. package/dist/build/formats/jsonFigma.d.ts +7 -0
  45. package/dist/build/formats/jsonFigma.js +121 -0
  46. package/dist/build/formats/jsonNestedPrefixed.d.ts +8 -0
  47. package/dist/build/formats/jsonNestedPrefixed.js +30 -0
  48. package/dist/build/formats/jsonOneDimensional.d.ts +8 -0
  49. package/dist/build/formats/jsonOneDimensional.js +32 -0
  50. package/dist/build/formats/jsonPostCssFallback.d.ts +8 -0
  51. package/dist/build/formats/jsonPostCssFallback.js +14 -0
  52. package/dist/build/formats/typescriptExportDefinition.d.ts +7 -0
  53. package/dist/build/formats/typescriptExportDefinition.js +170 -0
  54. package/dist/build/formats/utilities/getPropName.d.ts +1 -0
  55. package/dist/build/formats/utilities/getPropName.js +16 -0
  56. package/dist/build/formats/utilities/jsonToFlat.d.ts +11 -0
  57. package/dist/build/formats/utilities/jsonToFlat.js +8 -0
  58. package/dist/build/formats/utilities/jsonToNestedValue.d.ts +8 -0
  59. package/dist/build/formats/utilities/jsonToNestedValue.js +23 -0
  60. package/dist/build/formats/utilities/prefixTokens.d.ts +8 -0
  61. package/dist/build/formats/utilities/prefixTokens.js +13 -0
  62. package/dist/build/parsers/index.d.ts +1 -0
  63. package/dist/build/parsers/index.js +1 -0
  64. package/dist/build/parsers/w3cJsonParser.d.ts +6 -0
  65. package/dist/build/parsers/w3cJsonParser.js +25 -0
  66. package/dist/build/platforms/css.d.ts +2 -0
  67. package/dist/build/platforms/css.js +100 -0
  68. package/dist/build/platforms/deprecatedJson.d.ts +2 -0
  69. package/dist/build/platforms/deprecatedJson.js +13 -0
  70. package/dist/build/platforms/docJson.d.ts +2 -0
  71. package/dist/build/platforms/docJson.js +39 -0
  72. package/dist/build/platforms/fallbacks.d.ts +2 -0
  73. package/dist/build/platforms/fallbacks.js +30 -0
  74. package/dist/build/platforms/figma.d.ts +2 -0
  75. package/dist/build/platforms/figma.js +63 -0
  76. package/dist/build/platforms/index.d.ts +10 -0
  77. package/dist/build/platforms/index.js +10 -0
  78. package/dist/build/platforms/javascript.d.ts +2 -0
  79. package/dist/build/platforms/javascript.js +30 -0
  80. package/dist/build/platforms/json.d.ts +2 -0
  81. package/dist/build/platforms/json.js +32 -0
  82. package/dist/build/platforms/styleLint.d.ts +2 -0
  83. package/dist/build/platforms/styleLint.js +34 -0
  84. package/dist/build/platforms/typeDefinitions.d.ts +2 -0
  85. package/dist/build/platforms/typeDefinitions.js +30 -0
  86. package/dist/build/platforms/typescript.d.ts +2 -0
  87. package/dist/build/platforms/typescript.js +30 -0
  88. package/dist/build/preprocessor/themeOverrides.d.ts +2 -0
  89. package/dist/build/preprocessor/themeOverrides.js +22 -0
  90. package/dist/build/preprocessor/utilities/transformTokens.d.ts +8 -0
  91. package/dist/build/preprocessor/utilities/transformTokens.js +22 -0
  92. package/dist/build/primerStyleDictionary.d.ts +8 -0
  93. package/dist/build/primerStyleDictionary.js +82 -0
  94. package/dist/build/schemas/alphaValue.d.ts +2 -0
  95. package/dist/build/schemas/alphaValue.js +5 -0
  96. package/dist/build/schemas/baseToken.d.ts +11 -0
  97. package/dist/build/schemas/baseToken.js +7 -0
  98. package/dist/build/schemas/borderToken.d.ts +51 -0
  99. package/dist/build/schemas/borderToken.js +17 -0
  100. package/dist/build/schemas/collections.d.ts +6 -0
  101. package/dist/build/schemas/collections.js +12 -0
  102. package/dist/build/schemas/colorHexValue.d.ts +2 -0
  103. package/dist/build/schemas/colorHexValue.js +9 -0
  104. package/dist/build/schemas/colorToken.d.ts +167 -0
  105. package/dist/build/schemas/colorToken.js +76 -0
  106. package/dist/build/schemas/cubicBezierToken.d.ts +18 -0
  107. package/dist/build/schemas/cubicBezierToken.js +8 -0
  108. package/dist/build/schemas/designToken.d.ts +2 -0
  109. package/dist/build/schemas/designToken.js +35 -0
  110. package/dist/build/schemas/dimensionToken.d.ts +59 -0
  111. package/dist/build/schemas/dimensionToken.js +34 -0
  112. package/dist/build/schemas/dimensionValue.d.ts +2 -0
  113. package/dist/build/schemas/dimensionValue.js +9 -0
  114. package/dist/build/schemas/durationToken.d.ts +18 -0
  115. package/dist/build/schemas/durationToken.js +11 -0
  116. package/dist/build/schemas/durationValue.d.ts +2 -0
  117. package/dist/build/schemas/durationValue.js +5 -0
  118. package/dist/build/schemas/fontFamilyToken.d.ts +52 -0
  119. package/dist/build/schemas/fontFamilyToken.js +20 -0
  120. package/dist/build/schemas/fontWeightToken.d.ts +52 -0
  121. package/dist/build/schemas/fontWeightToken.js +21 -0
  122. package/dist/build/schemas/fontWeightValue.d.ts +2 -0
  123. package/dist/build/schemas/fontWeightValue.js +6 -0
  124. package/dist/build/schemas/numberToken.d.ts +71 -0
  125. package/dist/build/schemas/numberToken.js +27 -0
  126. package/dist/build/schemas/referenceValue.d.ts +2 -0
  127. package/dist/build/schemas/referenceValue.js +5 -0
  128. package/dist/build/schemas/scopes.d.ts +5 -0
  129. package/dist/build/schemas/scopes.js +29 -0
  130. package/dist/build/schemas/shadowToken.d.ts +164 -0
  131. package/dist/build/schemas/shadowToken.js +46 -0
  132. package/dist/build/schemas/stringToken.d.ts +18 -0
  133. package/dist/build/schemas/stringToken.js +10 -0
  134. package/dist/build/schemas/tokenName.d.ts +2 -0
  135. package/dist/build/schemas/tokenName.js +5 -0
  136. package/dist/build/schemas/tokenType.d.ts +3 -0
  137. package/dist/build/schemas/tokenType.js +2 -0
  138. package/dist/build/schemas/typographyToken.d.ts +59 -0
  139. package/dist/build/schemas/typographyToken.js +18 -0
  140. package/dist/build/schemas/validTokenType.d.ts +5 -0
  141. package/dist/build/schemas/validTokenType.js +31 -0
  142. package/dist/build/schemas/viewportRangeToken.d.ts +18 -0
  143. package/dist/build/schemas/viewportRangeToken.js +10 -0
  144. package/dist/build/transformers/borderToCss.d.ts +8 -0
  145. package/dist/build/transformers/borderToCss.js +38 -0
  146. package/dist/build/transformers/colorToHex.d.ts +8 -0
  147. package/dist/build/transformers/colorToHex.js +24 -0
  148. package/dist/build/transformers/colorToHexMix.d.ts +8 -0
  149. package/dist/build/transformers/colorToHexMix.js +20 -0
  150. package/dist/build/transformers/colorToRgbAlpha.d.ts +8 -0
  151. package/dist/build/transformers/colorToRgbAlpha.js +20 -0
  152. package/dist/build/transformers/colorToRgbaFloat.d.ts +8 -0
  153. package/dist/build/transformers/colorToRgbaFloat.js +46 -0
  154. package/dist/build/transformers/cubicBezierToCss.d.ts +8 -0
  155. package/dist/build/transformers/cubicBezierToCss.js +23 -0
  156. package/dist/build/transformers/dimensionToPixelUnitless.d.ts +8 -0
  157. package/dist/build/transformers/dimensionToPixelUnitless.js +49 -0
  158. package/dist/build/transformers/dimensionToRem.d.ts +8 -0
  159. package/dist/build/transformers/dimensionToRem.js +46 -0
  160. package/dist/build/transformers/dimensionToRemPxArray.d.ts +8 -0
  161. package/dist/build/transformers/dimensionToRemPxArray.js +46 -0
  162. package/dist/build/transformers/durationToCss.d.ts +8 -0
  163. package/dist/build/transformers/durationToCss.js +29 -0
  164. package/dist/build/transformers/figmaAttributes.d.ts +8 -0
  165. package/dist/build/transformers/figmaAttributes.js +55 -0
  166. package/dist/build/transformers/floatToPixel.d.ts +15 -0
  167. package/dist/build/transformers/floatToPixel.js +39 -0
  168. package/dist/build/transformers/fontFamilyToCss.d.ts +14 -0
  169. package/dist/build/transformers/fontFamilyToCss.js +37 -0
  170. package/dist/build/transformers/fontFamilyToFigma.d.ts +14 -0
  171. package/dist/build/transformers/fontFamilyToFigma.js +44 -0
  172. package/dist/build/transformers/fontWeightToNumber.d.ts +9 -0
  173. package/dist/build/transformers/fontWeightToNumber.js +50 -0
  174. package/dist/build/transformers/index.d.ts +25 -0
  175. package/dist/build/transformers/index.js +25 -0
  176. package/dist/build/transformers/jsonDeprecated.d.ts +8 -0
  177. package/dist/build/transformers/jsonDeprecated.js +14 -0
  178. package/dist/build/transformers/namePathToCamelCase.d.ts +8 -0
  179. package/dist/build/transformers/namePathToCamelCase.js +12 -0
  180. package/dist/build/transformers/namePathToDotNotation.d.ts +8 -0
  181. package/dist/build/transformers/namePathToDotNotation.js +31 -0
  182. package/dist/build/transformers/namePathToFigma.d.ts +9 -0
  183. package/dist/build/transformers/namePathToFigma.js +21 -0
  184. package/dist/build/transformers/namePathToKebabCase.d.ts +8 -0
  185. package/dist/build/transformers/namePathToKebabCase.js +16 -0
  186. package/dist/build/transformers/namePathToPascalCase.d.ts +8 -0
  187. package/dist/build/transformers/namePathToPascalCase.js +12 -0
  188. package/dist/build/transformers/namePathToSlashNotation.d.ts +8 -0
  189. package/dist/build/transformers/namePathToSlashNotation.js +16 -0
  190. package/dist/build/transformers/shadowToCss.d.ts +8 -0
  191. package/dist/build/transformers/shadowToCss.js +34 -0
  192. package/dist/build/transformers/typographyToCss.d.ts +8 -0
  193. package/dist/build/transformers/typographyToCss.js +27 -0
  194. package/dist/build/transformers/utilities/alpha.d.ts +9 -0
  195. package/dist/build/transformers/utilities/alpha.js +16 -0
  196. package/dist/build/transformers/utilities/checkRequiredTokenProperties.d.ts +7 -0
  197. package/dist/build/transformers/utilities/checkRequiredTokenProperties.js +13 -0
  198. package/dist/build/transformers/utilities/getTokenValue.d.ts +2 -0
  199. package/dist/build/transformers/utilities/getTokenValue.js +16 -0
  200. package/dist/build/transformers/utilities/hasSpaceInString.d.ts +1 -0
  201. package/dist/build/transformers/utilities/hasSpaceInString.js +6 -0
  202. package/dist/build/transformers/utilities/hexToRgbaFloat.d.ts +2 -0
  203. package/dist/build/transformers/utilities/hexToRgbaFloat.js +29 -0
  204. package/dist/build/transformers/utilities/invalidTokenError.d.ts +7 -0
  205. package/dist/build/transformers/utilities/invalidTokenError.js +25 -0
  206. package/dist/build/transformers/utilities/isRgbaFloat.d.ts +7 -0
  207. package/dist/build/transformers/utilities/isRgbaFloat.js +20 -0
  208. package/dist/build/transformers/utilities/mix.d.ts +5 -0
  209. package/dist/build/transformers/utilities/mix.js +38 -0
  210. package/dist/build/transformers/utilities/rgbaFloatToHex.d.ts +6 -0
  211. package/dist/build/transformers/utilities/rgbaFloatToHex.js +11 -0
  212. package/dist/build/types/border.d.ts +5 -0
  213. package/dist/build/types/borderTokenValue.d.ts +10 -0
  214. package/dist/build/types/colorHex.d.ts +4 -0
  215. package/dist/build/types/platformInitializer.d.ts +11 -0
  216. package/dist/build/types/shadow.d.ts +5 -0
  217. package/dist/build/types/shadowTokenValue.d.ts +14 -0
  218. package/dist/build/types/sizeEm.d.ts +4 -0
  219. package/dist/build/types/sizePx.d.ts +4 -0
  220. package/dist/build/types/sizeRem.d.ts +4 -0
  221. package/dist/build/types/styleDictionaryConfigGenerator.d.ts +16 -0
  222. package/dist/build/types/tokenBuildInput.d.ts +10 -0
  223. package/dist/build/types/typographyTokenValue.d.ts +12 -0
  224. package/dist/build/types/w3cTransformedToken.d.ts +8 -0
  225. package/dist/build/utilities/copyFromDir.d.ts +8 -0
  226. package/dist/build/utilities/copyFromDir.js +31 -0
  227. package/dist/build/utilities/filterStringArray.d.ts +1 -0
  228. package/dist/build/utilities/filterStringArray.js +13 -0
  229. package/dist/build/utilities/getFlag.d.ts +8 -0
  230. package/dist/build/utilities/getFlag.js +12 -0
  231. package/dist/build/utilities/index.d.ts +9 -0
  232. package/dist/build/utilities/index.js +9 -0
  233. package/dist/build/utilities/joinFriendly.d.ts +1 -0
  234. package/dist/build/utilities/joinFriendly.js +1 -0
  235. package/dist/build/utilities/lowerCaseFirstCharacter.d.ts +8 -0
  236. package/dist/build/utilities/lowerCaseFirstCharacter.js +10 -0
  237. package/dist/build/utilities/schemaErrorMessage.d.ts +1 -0
  238. package/dist/build/utilities/schemaErrorMessage.js +1 -0
  239. package/dist/build/utilities/toCamelCase.d.ts +1 -0
  240. package/dist/build/utilities/toCamelCase.js +16 -0
  241. package/dist/build/utilities/toPascalCase.d.ts +1 -0
  242. package/dist/build/utilities/toPascalCase.js +13 -0
  243. package/dist/build/utilities/treeWalker.d.ts +8 -0
  244. package/dist/build/utilities/treeWalker.js +23 -0
  245. package/dist/build/utilities/upperCaseFirstCharacter.d.ts +8 -0
  246. package/dist/build/utilities/upperCaseFirstCharacter.js +10 -0
  247. package/dist/css/base/motion/motion.css +17 -0
  248. package/dist/css/functional/motion/motion.css +4 -3
  249. package/dist/css/functional/themes/dark-colorblind.css +58 -38
  250. package/dist/css/functional/themes/dark-dimmed.css +44 -24
  251. package/dist/css/functional/themes/dark-high-contrast.css +42 -22
  252. package/dist/css/functional/themes/dark-tritanopia.css +44 -24
  253. package/dist/css/functional/themes/dark.css +42 -22
  254. package/dist/css/functional/themes/light-colorblind.css +60 -40
  255. package/dist/css/functional/themes/light-high-contrast.css +44 -24
  256. package/dist/css/functional/themes/light-tritanopia.css +42 -22
  257. package/dist/css/functional/themes/light.css +42 -22
  258. package/dist/css/functional/typography/typography.css +43 -43
  259. package/dist/css/primitives.css +64 -46
  260. package/dist/docs/base/motion/motion.json +205 -0
  261. package/dist/docs/functional/motion/motion.json +18 -3
  262. package/dist/docs/functional/themes/dark-colorblind.json +350 -1114
  263. package/dist/docs/functional/themes/dark-dimmed.json +364 -1152
  264. package/dist/docs/functional/themes/dark-high-contrast.json +312 -922
  265. package/dist/docs/functional/themes/dark-tritanopia.json +344 -1138
  266. package/dist/docs/functional/themes/dark.json +346 -1206
  267. package/dist/docs/functional/themes/light-colorblind.json +366 -1140
  268. package/dist/docs/functional/themes/light-high-contrast.json +335 -949
  269. package/dist/docs/functional/themes/light-tritanopia.json +311 -1135
  270. package/dist/docs/functional/themes/light.json +336 -1202
  271. package/dist/fallbacks/base/motion/motion.json +17 -0
  272. package/dist/fallbacks/functional/motion/motion.json +1 -0
  273. package/dist/figma/dimension/dimension.json +518 -518
  274. package/dist/figma/figma.json +15 -23
  275. package/dist/figma/scales/dark-dimmed.json +3536 -656
  276. package/dist/figma/scales/dark-high-constrast.json +3535 -655
  277. package/dist/figma/scales/dark.json +3371 -491
  278. package/dist/figma/scales/light-high-constrast.json +3533 -653
  279. package/dist/figma/scales/light.json +3370 -490
  280. package/dist/figma/shadows/dark-colorblind.json +285 -285
  281. package/dist/figma/shadows/dark-dimmed.json +285 -285
  282. package/dist/figma/shadows/dark-high-contrast.json +285 -285
  283. package/dist/figma/shadows/dark-tritanopia.json +285 -285
  284. package/dist/figma/shadows/dark.json +285 -285
  285. package/dist/figma/shadows/light-colorblind.json +254 -254
  286. package/dist/figma/shadows/light-high-contrast.json +254 -254
  287. package/dist/figma/shadows/light-tritanopia.json +254 -254
  288. package/dist/figma/shadows/light.json +254 -254
  289. package/dist/figma/themes/dark-colorblind.json +5197 -5068
  290. package/dist/figma/themes/dark-dimmed.json +5526 -5351
  291. package/dist/figma/themes/dark-high-contrast.json +4361 -4251
  292. package/dist/figma/themes/dark-tritanopia.json +5315 -5187
  293. package/dist/figma/themes/dark.json +5740 -5581
  294. package/dist/figma/themes/light-colorblind.json +5104 -4929
  295. package/dist/figma/themes/light-high-contrast.json +4462 -4319
  296. package/dist/figma/themes/light-tritanopia.json +5176 -5050
  297. package/dist/figma/themes/light.json +5657 -5500
  298. package/dist/figma/typography/typography.json +162 -162
  299. package/dist/internalCss/dark-colorblind.css +58 -38
  300. package/dist/internalCss/dark-dimmed.css +44 -24
  301. package/dist/internalCss/dark-high-contrast.css +42 -22
  302. package/dist/internalCss/dark-tritanopia.css +44 -24
  303. package/dist/internalCss/dark.css +42 -22
  304. package/dist/internalCss/light-colorblind.css +60 -40
  305. package/dist/internalCss/light-high-contrast.css +44 -24
  306. package/dist/internalCss/light-tritanopia.css +42 -22
  307. package/dist/internalCss/light.css +42 -22
  308. package/dist/styleLint/base/motion/motion.json +205 -0
  309. package/dist/styleLint/functional/motion/motion.json +18 -3
  310. package/dist/styleLint/functional/themes/dark-colorblind.json +350 -1114
  311. package/dist/styleLint/functional/themes/dark-dimmed.json +364 -1152
  312. package/dist/styleLint/functional/themes/dark-high-contrast.json +311 -921
  313. package/dist/styleLint/functional/themes/dark-tritanopia.json +344 -1138
  314. package/dist/styleLint/functional/themes/dark.json +346 -1206
  315. package/dist/styleLint/functional/themes/light-colorblind.json +366 -1140
  316. package/dist/styleLint/functional/themes/light-high-contrast.json +335 -949
  317. package/dist/styleLint/functional/themes/light-tritanopia.json +311 -1135
  318. package/dist/styleLint/functional/themes/light.json +336 -1202
  319. package/package.json +30 -36
  320. package/src/tokens/base/motion/easing.json5 +26 -0
  321. package/src/tokens/base/motion/timing.json5 +50 -0
  322. package/src/tokens/functional/color/dark/app-dark.json5 +236 -121
  323. package/src/tokens/functional/color/dark/data-vis-dark.json5 +40 -40
  324. package/src/tokens/functional/color/dark/display-dark.json5 +95 -95
  325. package/src/tokens/functional/color/dark/overrides/dark.dimmed.json5 +1 -9
  326. package/src/tokens/functional/color/dark/overrides/dark.high-contrast.json5 +40 -27
  327. package/src/tokens/functional/color/dark/overrides/dark.protanopia-deuteranopia.json5 +56 -30
  328. package/src/tokens/functional/color/dark/overrides/dark.tritanopia.json5 +37 -14
  329. package/src/tokens/functional/color/dark/patterns-dark.json +3963 -0
  330. package/src/tokens/functional/color/dark/patterns-dark.json5 +126 -277
  331. package/src/tokens/functional/color/dark/primitives-dark.json5 +78 -78
  332. package/src/tokens/functional/color/dark/syntax-dark.json5 +47 -47
  333. package/src/tokens/functional/color/light/app-light.json5 +179 -118
  334. package/src/tokens/functional/color/light/data-vis-light.json5 +40 -40
  335. package/src/tokens/functional/color/light/display-light.json5 +0 -95
  336. package/src/tokens/functional/color/light/overrides/light.high-contrast.json5 +25 -27
  337. package/src/tokens/functional/color/light/overrides/light.protanopia-deuteranopia.json5 +58 -33
  338. package/src/tokens/functional/color/light/overrides/light.tritanopia.json5 +59 -10
  339. package/src/tokens/functional/color/light/patterns-light.json5 +126 -276
  340. package/src/tokens/functional/color/light/primitives-light.json5 +0 -78
  341. package/src/tokens/functional/color/light/syntax-light.json5 +0 -47
  342. package/src/tokens/functional/motion/loading.json5 +1 -1
  343. package/src/tokens/functional/motion/patterns.json5 +9 -2
  344. package/src/tokens/functional/shadow/dark.json5 +0 -14
  345. package/src/tokens/functional/shadow/light.json5 +0 -13
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description replaces tokens value with `hex8` color using the tokens `alpha` property to specify the value used for alpha
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `color` with an `alpha` property
6
+ * @transformer returns `hex8` string
7
+ */
8
+ export declare const colorToHexMix: Transform;
@@ -0,0 +1,20 @@
1
+ import { toHex } from 'color2k';
2
+ import { isColorWithMix } from '../filters/index.js';
3
+ import { getTokenValue } from './utilities/getTokenValue.js';
4
+ import mix from './utilities/mix.js';
5
+ /**
6
+ * @description replaces tokens value with `hex8` color using the tokens `alpha` property to specify the value used for alpha
7
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
8
+ * @matcher matches all tokens of $type `color` with an `alpha` property
9
+ * @transformer returns `hex8` string
10
+ */
11
+ export const colorToHexMix = {
12
+ name: 'color/hexMix',
13
+ type: 'value',
14
+ transitive: true,
15
+ filter: isColorWithMix,
16
+ transform: (token) => {
17
+ var _a, _b;
18
+ return toHex(mix(getTokenValue(token), ((_a = token.mix) === null || _a === void 0 ? void 0 : _a.color) || getTokenValue(token), ((_b = token.mix) === null || _b === void 0 ? void 0 : _b.weight) || 0));
19
+ },
20
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description replaces tokens value with `rgba` color using the tokens `alpha` property to specify the value used for alpha
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `color` with an `alpha` property
6
+ * @transformer returns `rgba` string
7
+ */
8
+ export declare const colorToRgbAlpha: Transform;
@@ -0,0 +1,20 @@
1
+ import { isColorWithAlpha } from '../filters/index.js';
2
+ import { alpha } from './utilities/alpha.js';
3
+ import { getTokenValue } from './utilities/getTokenValue.js';
4
+ /**
5
+ * @description replaces tokens value with `rgba` color using the tokens `alpha` property to specify the value used for alpha
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 `color` with an `alpha` property
8
+ * @transformer returns `rgba` string
9
+ */
10
+ export const colorToRgbAlpha = {
11
+ name: 'color/rgbAlpha',
12
+ type: 'value',
13
+ transitive: true,
14
+ filter: isColorWithAlpha,
15
+ transform: (token) => {
16
+ if (token.alpha === null)
17
+ return getTokenValue(token);
18
+ return alpha(getTokenValue(token), token.alpha, token);
19
+ },
20
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description converts color tokens rgba float with values from 0 - 1
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `color`
6
+ * @transformer returns a `rgb` float object
7
+ */
8
+ export declare const colorToRgbaFloat: Transform;
@@ -0,0 +1,46 @@
1
+ import { toHex } from 'color2k';
2
+ import { isColor } from '../filters/index.js';
3
+ import { getTokenValue } from './utilities/getTokenValue.js';
4
+ import { rgbaFloatToHex } from './utilities/rgbaFloatToHex.js';
5
+ import mix from './utilities/mix.js';
6
+ import { hexToRgbaFloat } from './utilities/hexToRgbaFloat.js';
7
+ import { isRgbaFloat } from './utilities/isRgbaFloat.js';
8
+ const toRgbaFloat = (token, alpha = undefined) => {
9
+ var _a;
10
+ let tokenValue = getTokenValue(token);
11
+ let tokenMixColor = (_a = token.mix) === null || _a === void 0 ? void 0 : _a.color;
12
+ // get hex value from color string
13
+ if (isRgbaFloat(tokenValue)) {
14
+ tokenValue = rgbaFloatToHex(tokenValue, false);
15
+ }
16
+ if (tokenMixColor && isRgbaFloat(tokenMixColor)) {
17
+ tokenMixColor = rgbaFloatToHex(tokenMixColor, false);
18
+ }
19
+ let hex = toHex(tokenValue);
20
+ // mix color with mix color and weight
21
+ if (token.mix && token.mix.color && token.mix.weight) {
22
+ hex = toHex(mix(tokenValue, tokenMixColor, token.mix.weight));
23
+ }
24
+ // return color as RgbaFloat
25
+ return hexToRgbaFloat(hex, alpha);
26
+ };
27
+ /**
28
+ * @description converts color tokens rgba float with values from 0 - 1
29
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
30
+ * @matcher matches all tokens of $type `color`
31
+ * @transformer returns a `rgb` float object
32
+ */
33
+ export const colorToRgbaFloat = {
34
+ name: 'color/rgbaFloat',
35
+ type: 'value',
36
+ transitive: true,
37
+ filter: isColor,
38
+ transform: (token) => {
39
+ const value = getTokenValue(token);
40
+ // skip if value is already rgb float
41
+ if (isRgbaFloat(value) && !('mix' in token) && !('alpha' in token))
42
+ return value;
43
+ // convert hex or rgb values to rgba float
44
+ return toRgbaFloat(token, token.alpha);
45
+ },
46
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description converts cubicBezeir tokens array value to a css cubic-bezier
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `duration`
6
+ * @transformer returns a css cubic-bezier function
7
+ */
8
+ export declare const cubicBezierToCss: Transform;
@@ -0,0 +1,23 @@
1
+ import { isCubicBezier } from '../filters/isCubicBezier.js';
2
+ /**
3
+ * @description converts cubicBezeir tokens array value to a css cubic-bezier
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `duration`
6
+ * @transformer returns a css cubic-bezier function
7
+ */
8
+ export const cubicBezierToCss = {
9
+ name: 'cubicBezeir/css',
10
+ type: 'value',
11
+ transitive: true,
12
+ filter: isCubicBezier,
13
+ transform: (token, _config) => {
14
+ var _a;
15
+ const value = (_a = token.$value) !== null && _a !== void 0 ? _a : token.value;
16
+ // throw value of more or less than 4 items in array
17
+ if (value.length !== 4 || value.some((item) => typeof item !== 'number')) {
18
+ throw new Error(`Invalid cubicBezier token ${token.path.join('.')}, must be an array with 4 numbers, but got this instead: ${JSON.stringify(value)}`);
19
+ }
20
+ // return value
21
+ return `cubic-bezier(${value.join(',')})`;
22
+ },
23
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description converts dimension tokens value to pixel value without unit, ignores `em` as they are relative to the font size of the parent element
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `dimension`
6
+ * @transformer returns a float number
7
+ */
8
+ export declare const dimensionToPixelUnitless: Transform;
@@ -0,0 +1,49 @@
1
+ import { isDimension } from '../filters/index.js';
2
+ /**
3
+ * @description base font size from options or 16
4
+ * @param options
5
+ * @returns number
6
+ */
7
+ const getBasePxFontSize = (options) => (options && options.basePxFontSize) || 16;
8
+ /**
9
+ * @description checks if token value has a specific unit
10
+ * @param value token value
11
+ * @param unit unit string like px or value
12
+ * @returns boolean
13
+ */
14
+ const hasUnit = (value, unit) => {
15
+ if (typeof value === 'number') {
16
+ return false;
17
+ }
18
+ return value.indexOf(unit) > -1;
19
+ };
20
+ /**
21
+ * @description converts dimension tokens value to pixel value without unit, ignores `em` as they are relative to the font size of the parent element
22
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
23
+ * @matcher matches all tokens of $type `dimension`
24
+ * @transformer returns a float number
25
+ */
26
+ export const dimensionToPixelUnitless = {
27
+ name: 'dimension/pixelUnitless',
28
+ type: 'value',
29
+ transitive: true,
30
+ filter: isDimension,
31
+ transform: (token, config, options) => {
32
+ const valueProp = options.usesDtcg ? '$value' : 'value';
33
+ const baseFont = getBasePxFontSize(config);
34
+ const floatVal = parseFloat(token[valueProp]);
35
+ if (isNaN(floatVal)) {
36
+ throw new Error(`Invalid dimension token: '${token.path.join('.')}: ${token[valueProp]}' is not valid and cannot be transform to 'float' \n`);
37
+ }
38
+ if (floatVal === 0) {
39
+ return 0;
40
+ }
41
+ if (hasUnit(token[valueProp], 'rem')) {
42
+ return floatVal * baseFont;
43
+ }
44
+ if (hasUnit(token[valueProp], 'px')) {
45
+ return floatVal;
46
+ }
47
+ return token[valueProp];
48
+ },
49
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description converts dimension tokens value to `rem`, ignores `em` as they are relative to the font size of the parent element
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `dimension`
6
+ * @transformer returns a `rem` string
7
+ */
8
+ export declare const dimensionToRem: Transform;
@@ -0,0 +1,46 @@
1
+ import { isDimension } from '../filters/index.js';
2
+ /**
3
+ * @description base font size from options or 16
4
+ * @param options
5
+ * @returns number
6
+ */
7
+ const getBasePxFontSize = (options) => (options && options.basePxFontSize) || 16;
8
+ /**
9
+ * @description checks if token value has a specific unit
10
+ * @param value token value
11
+ * @param unit unit string like px or value
12
+ * @returns boolean
13
+ */
14
+ const hasUnit = (value, unit) => {
15
+ if (typeof value === 'number') {
16
+ return false;
17
+ }
18
+ return value.indexOf(unit) > -1;
19
+ };
20
+ /**
21
+ * @description converts dimension tokens value to `rem`, ignores `em` as they are relative to the font size of the parent element
22
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
23
+ * @matcher matches all tokens of $type `dimension`
24
+ * @transformer returns a `rem` string
25
+ */
26
+ export const dimensionToRem = {
27
+ name: 'dimension/rem',
28
+ type: 'value',
29
+ transitive: true,
30
+ filter: isDimension,
31
+ transform: (token, config, options) => {
32
+ const valueProp = options.usesDtcg ? '$value' : 'value';
33
+ const baseFont = getBasePxFontSize(config);
34
+ const floatVal = parseFloat(token[valueProp]);
35
+ if (isNaN(floatVal)) {
36
+ throw new Error(`Invalid dimension token: '${token.name}: ${token[valueProp]}' is not valid and cannot be transform to 'rem' \n`);
37
+ }
38
+ if (floatVal === 0) {
39
+ return '0';
40
+ }
41
+ if (hasUnit(token[valueProp], 'rem') || hasUnit(token[valueProp], 'em')) {
42
+ return token[valueProp];
43
+ }
44
+ return `${floatVal / baseFont}rem`;
45
+ },
46
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description converts dimension tokens value to `rem`, ignores `em` as they are relative to the font size of the parent element
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `dimension`
6
+ * @transformer returns an array with the `rem` and `pixel` string
7
+ */
8
+ export declare const dimensionToRemPxArray: Transform;
@@ -0,0 +1,46 @@
1
+ import { isDimension } from '../filters/index.js';
2
+ /**
3
+ * @description base font size from options or 16
4
+ * @param options
5
+ * @returns number
6
+ */
7
+ const getBasePxFontSize = (options) => (options && options.basePxFontSize) || 16;
8
+ /**
9
+ * @description checks if token value has a specific unit
10
+ * @param value token value
11
+ * @param unit unit string like px or value
12
+ * @returns boolean
13
+ */
14
+ const hasUnit = (value, unit) => {
15
+ if (typeof value === 'number') {
16
+ return false;
17
+ }
18
+ return value.indexOf(unit) > -1;
19
+ };
20
+ /**
21
+ * @description converts dimension tokens value to `rem`, ignores `em` as they are relative to the font size of the parent element
22
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
23
+ * @matcher matches all tokens of $type `dimension`
24
+ * @transformer returns an array with the `rem` and `pixel` string
25
+ */
26
+ export const dimensionToRemPxArray = {
27
+ name: 'dimension/remPxArray',
28
+ type: 'value',
29
+ transitive: true,
30
+ filter: isDimension,
31
+ transform: (token, config, options) => {
32
+ const valueProp = options.usesDtcg ? '$value' : 'value';
33
+ const baseFont = getBasePxFontSize(config);
34
+ const floatVal = parseFloat(token[valueProp]);
35
+ if (isNaN(floatVal)) {
36
+ throw new Error(`Invalid dimension token: '${token.name}: ${token[valueProp]}' is not valid and cannot be transform to 'rem' \n`);
37
+ }
38
+ if (floatVal === 0) {
39
+ return ['0', '0'];
40
+ }
41
+ if (hasUnit(token[valueProp], 'rem') || hasUnit(token[valueProp], 'em')) {
42
+ return [token.value, `${floatVal * baseFont}px`];
43
+ }
44
+ return [`${floatVal / baseFont}rem`, `${floatVal}px`];
45
+ },
46
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description converts duration tokens string value to number with `ms` unit
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `duration`
6
+ * @transformer returns a css duration
7
+ */
8
+ export declare const durationToCss: Transform;
@@ -0,0 +1,29 @@
1
+ import { isDuration } from '../filters/index.js';
2
+ /**
3
+ * @description converts duration tokens string value to number with `ms` unit
4
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens of $type `duration`
6
+ * @transformer returns a css duration
7
+ */
8
+ export const durationToCss = {
9
+ name: 'duration/css',
10
+ type: 'value',
11
+ transitive: true,
12
+ filter: isDuration,
13
+ transform: (token, _config, options) => {
14
+ const valueProp = options.usesDtcg ? '$value' : 'value';
15
+ // throw an error if token value is not a string or does not end with `ms`
16
+ if (typeof token[valueProp] !== `string` || !(token[valueProp].endsWith(`ms`) || token[valueProp].endsWith(`s`))) {
17
+ throw new Error(`duration token value must be a string with an "ms" || "s" unit, invalid token: ${token.name} with value: ${token[valueProp]}`);
18
+ }
19
+ // get value
20
+ let value = parseInt(token[valueProp].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
+ };
@@ -0,0 +1,8 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * @description retrieves figma attributes from token and adds them to attributes
4
+ * @type attribute transformer — [StyleDictionary.AttributeTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
5
+ * @matcher matches all tokens
6
+ * @transformer returns ab object of figma attributes
7
+ */
8
+ export declare const figmaAttributes: Transform;
@@ -0,0 +1,55 @@
1
+ const figmaScopes = {
2
+ all: ['ALL_SCOPES'],
3
+ radius: ['CORNER_RADIUS'],
4
+ size: ['WIDTH_HEIGHT'],
5
+ gap: ['GAP'],
6
+ bgColor: ['FRAME_FILL', 'SHAPE_FILL'],
7
+ fgColor: ['TEXT_FILL', 'SHAPE_FILL'],
8
+ effectColor: ['EFFECT_COLOR'],
9
+ effectFloat: ['EFFECT_FLOAT'],
10
+ borderColor: ['STROKE_COLOR'],
11
+ borderWidth: ['STROKE_FLOAT'],
12
+ opacity: ['OPACITY'],
13
+ fontFamily: ['FONT_FAMILY'],
14
+ fontStyle: ['FONT_STYLE'],
15
+ fontWeight: ['FONT_WEIGHT'],
16
+ fontSize: ['FONT_SIZE'],
17
+ lineHeight: ['LINE_HEIGHT'],
18
+ letterSpacing: ['LETTER_SPACING'],
19
+ paragraphSpacing: ['PARAGRAPH_SPACING'],
20
+ paragraphIndent: ['PARAGRAPH_INDENT'],
21
+ };
22
+ const getScopes = (scopes) => {
23
+ if (typeof scopes === 'string')
24
+ scopes = [scopes];
25
+ if (Array.isArray(scopes))
26
+ return scopes
27
+ .map(scope => {
28
+ if (scope in figmaScopes)
29
+ return figmaScopes[scope];
30
+ throw new Error(`Invalid scope: ${scope}`);
31
+ })
32
+ .flat();
33
+ return ['ALL_SCOPES'];
34
+ };
35
+ /**
36
+ * @description retrieves figma attributes from token and adds them to attributes
37
+ * @type attribute transformer — [StyleDictionary.AttributeTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
38
+ * @matcher matches all tokens
39
+ * @transformer returns ab object of figma attributes
40
+ */
41
+ export const figmaAttributes = {
42
+ name: 'figma/attributes',
43
+ type: `attribute`,
44
+ transform: (token, platform = {}) => {
45
+ var _a, _b;
46
+ const { modeOverride, collection, scopes, group, codeSyntax } = ((_a = token.$extensions) === null || _a === void 0 ? void 0 : _a['org.primer.figma']) || {};
47
+ return {
48
+ mode: ((_b = platform.options) === null || _b === void 0 ? void 0 : _b.theme) || modeOverride || 'default',
49
+ collection,
50
+ group: group || collection,
51
+ scopes: getScopes(scopes),
52
+ codeSyntax,
53
+ };
54
+ },
55
+ };
@@ -0,0 +1,15 @@
1
+ import type { Transform, TransformedToken } from 'style-dictionary/types';
2
+ /**
3
+ * 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']
4
+ * @param value
5
+ * @returns string
6
+ */
7
+ export declare const convertFloatToPixel: (token: TransformedToken, unitless?: boolean) => any;
8
+ /**
9
+ * @description converts a float value to a pixel value based on the provided fontSize on the tokersn extension
10
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
11
+ * @matcher matches all tokens of $type `isNumber`
12
+ * @transformer returns a pixel string
13
+ */
14
+ export declare const floatToPixel: Transform;
15
+ export declare const floatToPixelUnitless: Transform;
@@ -0,0 +1,39 @@
1
+ import { isNumber } from '../filters/index.js';
2
+ /**
3
+ * 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']
4
+ * @param value
5
+ * @returns string
6
+ */
7
+ export const convertFloatToPixel = (token, unitless = false) => {
8
+ var _a, _b, _c, _d, _e, _f;
9
+ // short circut if value is not a number
10
+ if (typeof token.value !== 'number' ||
11
+ !((_b = (_a = token.$extensions) === null || _a === void 0 ? void 0 : _a['org.primer.data']) === null || _b === void 0 ? void 0 : _b.fontSize) ||
12
+ typeof ((_d = (_c = token.$extensions) === null || _c === void 0 ? void 0 : _c['org.primer.data']) === null || _d === void 0 ? void 0 : _d.fontSize) !== 'number') {
13
+ return token.value;
14
+ }
15
+ // convert value
16
+ const convertedValue = ((_f = (_e = token.$extensions) === null || _e === void 0 ? void 0 : _e['org.primer.data']) === null || _f === void 0 ? void 0 : _f.fontSize) * token.value;
17
+ // return converted value
18
+ return convertedValue === 0 ? 0 : unitless ? Math.round(convertedValue) : `${Math.round(convertedValue)}px`;
19
+ };
20
+ /**
21
+ * @description converts a float value to a pixel value based on the provided fontSize on the tokersn extension
22
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
23
+ * @matcher matches all tokens of $type `isNumber`
24
+ * @transformer returns a pixel string
25
+ */
26
+ export const floatToPixel = {
27
+ name: 'float/pixel',
28
+ type: 'value',
29
+ transitive: true,
30
+ filter: isNumber,
31
+ transform: (token) => convertFloatToPixel(token),
32
+ };
33
+ export const floatToPixelUnitless = {
34
+ name: 'float/pixelUnitless',
35
+ type: 'value',
36
+ transitive: true,
37
+ filter: isNumber,
38
+ transform: (token) => convertFloatToPixel(token, true),
39
+ };
@@ -0,0 +1,14 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ /**
3
+ * takes a value and returns it if its a string or concats strings in an array quoting strings with spaces
4
+ * @param value
5
+ * @returns string
6
+ */
7
+ export declare const parseFontFamily: (value: unknown) => string;
8
+ /**
9
+ * @description converts fontFamily tokens value to string
10
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
11
+ * @matcher matches all tokens of $type `fontFamily`
12
+ * @transformer returns a string
13
+ */
14
+ export declare const fontFamilyToCss: Transform;
@@ -0,0 +1,37 @@
1
+ import { isFontFamily } from '../filters/index.js';
2
+ import { getTokenValue } from './utilities/getTokenValue.js';
3
+ import { hasSpaceInString } from './utilities/hasSpaceInString.js';
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 = (value) => {
10
+ if (typeof value === 'string') {
11
+ return value;
12
+ }
13
+ if (Array.isArray(value)) {
14
+ return value
15
+ .map((string) => {
16
+ if (typeof string !== 'string') {
17
+ throw new Error(`Invalid value in array ${string}, must be a string`);
18
+ }
19
+ return hasSpaceInString(string) ? `'${string}'` : string;
20
+ })
21
+ .join(', ');
22
+ }
23
+ throw new Error(`Invalid value ${value}, should be a string or array of strings`);
24
+ };
25
+ /**
26
+ * @description converts fontFamily tokens value to string
27
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
28
+ * @matcher matches all tokens of $type `fontFamily`
29
+ * @transformer returns a string
30
+ */
31
+ export const fontFamilyToCss = {
32
+ name: 'fontFamily/css',
33
+ type: 'value',
34
+ transitive: true,
35
+ filter: isFontFamily,
36
+ transform: (token) => parseFontFamily(getTokenValue(token)),
37
+ };
@@ -0,0 +1,14 @@
1
+ import type { Config, Transform, TransformedToken } from 'style-dictionary/types';
2
+ /**
3
+ * takes a value and returns it if its a string or concats strings in an array quoting strings with spaces
4
+ * @param value
5
+ * @returns string
6
+ */
7
+ export declare const parseFontFamily: (token: TransformedToken, fontFamilies: Record<string, string> | undefined, options: Config) => string;
8
+ /**
9
+ * @description converts fontFamily tokens value to string
10
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
11
+ * @matcher matches all tokens of $type `fontFamily`
12
+ * @transformer returns a string
13
+ */
14
+ export declare const fontFamilyToFigma: Transform;
@@ -0,0 +1,44 @@
1
+ import { isFontFamily } from '../filters/index.js';
2
+ import { hasSpaceInString } from './utilities/hasSpaceInString.js';
3
+ /**
4
+ * takes a value and returns it if its a string or concats strings in an array quoting strings with spaces
5
+ * @param value
6
+ * @returns string
7
+ */
8
+ export const parseFontFamily = (token, fontFamilies = {}, options) => {
9
+ const valueProp = options.usesDtcg ? '$value' : 'value';
10
+ // return value from fontFamilies
11
+ if (token.name in fontFamilies) {
12
+ return fontFamilies[token.name];
13
+ }
14
+ // return string
15
+ if (typeof token[valueProp] === 'string') {
16
+ return token[valueProp];
17
+ }
18
+ // return stringified array
19
+ if (Array.isArray(token[valueProp])) {
20
+ return token[valueProp]
21
+ .map((string) => {
22
+ if (typeof string !== 'string') {
23
+ throw new Error(`Invalid value in array ${string}, must be a string`);
24
+ }
25
+ return hasSpaceInString(string) ? `'${string}'` : string;
26
+ })
27
+ .join(', ');
28
+ }
29
+ // invalid value
30
+ throw new Error(`Invalid value ${token[valueProp]}, should be a string or array of strings`);
31
+ };
32
+ /**
33
+ * @description converts fontFamily tokens value to string
34
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
35
+ * @matcher matches all tokens of $type `fontFamily`
36
+ * @transformer returns a string
37
+ */
38
+ export const fontFamilyToFigma = {
39
+ name: 'fontFamily/figma',
40
+ type: 'value',
41
+ transitive: true,
42
+ filter: isFontFamily,
43
+ transform: (token, platform, options) => { var _a; return parseFontFamily(token, (_a = platform.options) === null || _a === void 0 ? void 0 : _a.fontFamilies, options); },
44
+ };
@@ -0,0 +1,9 @@
1
+ import type { Transform } from 'style-dictionary/types';
2
+ export declare const parseFontWeight: (value: unknown) => number;
3
+ /**
4
+ * @description converts fontWeight tokens value to numeric value
5
+ * @type value transformer — [StyleDictionary.ValueTransform](https://github.com/amzn/style-dictionary/blob/main/types/Transform.d.ts)
6
+ * @matcher matches all tokens of $type `fontWeight`
7
+ * @transformer returns a number
8
+ */
9
+ export declare const fontWeightToNumber: Transform;