@primer/primitives 9.0.3 → 9.1.0-rc.56a8ee48

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 (335) hide show
  1. package/dist/build/PrimerStyleDictionary.d.ts +9 -0
  2. package/dist/build/PrimerStyleDictionary.js +93 -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 +84 -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 +25 -0
  164. package/dist/build/transformers/index.js +53 -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/dist/css/functional/motion/motion.css +3 -3
  222. package/dist/css/functional/size/border.css +2 -2
  223. package/dist/css/functional/typography/typography.css +11 -11
  224. package/dist/css/primitives.css +16 -16
  225. package/package.json +6 -8
  226. package/src/PrimerStyleDictionary.ts +0 -232
  227. package/src/filters/index.ts +0 -13
  228. package/src/filters/isColorWithAlpha.ts +0 -11
  229. package/src/filters/isColorWithMix.ts +0 -33
  230. package/src/filters/isFromFile.ts +0 -12
  231. package/src/formats/cssAdvanced.ts +0 -99
  232. package/src/formats/cssCustomMedia.ts +0 -24
  233. package/src/formats/index.ts +0 -9
  234. package/src/formats/javascriptCommonJs.ts +0 -21
  235. package/src/formats/javascriptEsm.ts +0 -21
  236. package/src/formats/jsonFigma.ts +0 -134
  237. package/src/formats/jsonNestedPrefixed.ts +0 -23
  238. package/src/formats/jsonOneDimensional.ts +0 -18
  239. package/src/formats/jsonPostCssFallback.ts +0 -16
  240. package/src/formats/typescriptExportDefinition.ts +0 -170
  241. package/src/formats/utilities/jsonToNestedValue.ts +0 -20
  242. package/src/formats/utilities/prefixTokens.ts +0 -17
  243. package/src/parsers/index.ts +0 -1
  244. package/src/parsers/w3cJsonParser.ts +0 -25
  245. package/src/platforms/css.ts +0 -101
  246. package/src/platforms/deprecatedJson.ts +0 -16
  247. package/src/platforms/docJson.ts +0 -34
  248. package/src/platforms/fallbacks.ts +0 -34
  249. package/src/platforms/figma.ts +0 -58
  250. package/src/platforms/index.ts +0 -10
  251. package/src/platforms/javascript.ts +0 -30
  252. package/src/platforms/json.ts +0 -32
  253. package/src/platforms/styleLint.ts +0 -34
  254. package/src/platforms/typeDefinitions.ts +0 -30
  255. package/src/platforms/typescript.ts +0 -30
  256. package/src/schemas/alphaValue.ts +0 -12
  257. package/src/schemas/baseToken.ts +0 -8
  258. package/src/schemas/borderToken.ts +0 -19
  259. package/src/schemas/collections.ts +0 -49
  260. package/src/schemas/colorHexValue.ts +0 -18
  261. package/src/schemas/colorToken.ts +0 -50
  262. package/src/schemas/designToken.ts +0 -38
  263. package/src/schemas/dimensionToken.ts +0 -34
  264. package/src/schemas/dimensionValue.ts +0 -16
  265. package/src/schemas/durationToken.ts +0 -12
  266. package/src/schemas/durationValue.ts +0 -9
  267. package/src/schemas/fontFamilyToken.ts +0 -21
  268. package/src/schemas/fontWeightToken.ts +0 -22
  269. package/src/schemas/fontWeightValue.ts +0 -14
  270. package/src/schemas/numberToken.ts +0 -28
  271. package/src/schemas/referenceValue.ts +0 -12
  272. package/src/schemas/scopes.ts +0 -40
  273. package/src/schemas/shadowToken.ts +0 -45
  274. package/src/schemas/stringToken.ts +0 -11
  275. package/src/schemas/tokenName.ts +0 -12
  276. package/src/schemas/tokenType.ts +0 -4
  277. package/src/schemas/typographyToken.ts +0 -20
  278. package/src/schemas/validTokenType.ts +0 -44
  279. package/src/schemas/viewportRangeToken.ts +0 -11
  280. package/src/test-utilities/getMockDictionary.ts +0 -22
  281. package/src/test-utilities/getMockFormatterArguments.ts +0 -21
  282. package/src/test-utilities/getMockParserInput.ts +0 -72
  283. package/src/test-utilities/getMockToken.ts +0 -25
  284. package/src/test-utilities/index.ts +0 -4
  285. package/src/transformers/borderToCss.ts +0 -38
  286. package/src/transformers/colorToHex.ts +0 -16
  287. package/src/transformers/colorToHexAlpha.ts +0 -23
  288. package/src/transformers/colorToHexMix.ts +0 -19
  289. package/src/transformers/colorToRgbAlpha.ts +0 -19
  290. package/src/transformers/colorToRgbaFloat.ts +0 -45
  291. package/src/transformers/dimensionToPixelUnitless.ts +0 -60
  292. package/src/transformers/dimensionToRem.ts +0 -56
  293. package/src/transformers/dimensionToRemPxArray.ts +0 -60
  294. package/src/transformers/durationToCss.ts +0 -29
  295. package/src/transformers/figmaAttributes.ts +0 -79
  296. package/src/transformers/floatToPixel.ts +0 -40
  297. package/src/transformers/fontFamilyToCss.ts +0 -37
  298. package/src/transformers/fontFamilyToFigma.ts +0 -47
  299. package/src/transformers/fontWeightToNumber.ts +0 -53
  300. package/src/transformers/index.ts +0 -24
  301. package/src/transformers/jsonDeprecated.ts +0 -15
  302. package/src/transformers/namePathToDotNotation.ts +0 -34
  303. package/src/transformers/namePathToFigma.ts +0 -28
  304. package/src/transformers/namePathToKebabCase.ts +0 -19
  305. package/src/transformers/namePathToSlashNotation.ts +0 -19
  306. package/src/transformers/shadowToCss.ts +0 -37
  307. package/src/transformers/typographyToCss.ts +0 -31
  308. package/src/transformers/utilities/alpha.ts +0 -23
  309. package/src/transformers/utilities/checkRequiredTokenProperties.ts +0 -16
  310. package/src/transformers/utilities/getTokenValue.ts +0 -18
  311. package/src/transformers/utilities/hasSpaceInString.ts +0 -6
  312. package/src/transformers/utilities/hexToRgbaFloat.ts +0 -31
  313. package/src/transformers/utilities/invalidTokenError.ts +0 -34
  314. package/src/transformers/utilities/isRgbaFloat.ts +0 -29
  315. package/src/transformers/utilities/mix.ts +0 -46
  316. package/src/transformers/utilities/rgbaFloatToHex.ts +0 -15
  317. package/src/types/Border.d.ts +0 -5
  318. package/src/types/BorderTokenValue.d.ts +0 -10
  319. package/src/types/ColorHex.d.ts +0 -4
  320. package/src/types/PlatformInitializer.d.ts +0 -11
  321. package/src/types/Shadow.d.ts +0 -5
  322. package/src/types/ShadowTokenValue.d.ts +0 -14
  323. package/src/types/SizeEm.d.ts +0 -4
  324. package/src/types/SizePx.d.ts +0 -4
  325. package/src/types/SizeRem.d.ts +0 -4
  326. package/src/types/StyleDictionaryConfigGenerator.d.ts +0 -15
  327. package/src/types/TokenBuildInput.d.ts +0 -8
  328. package/src/types/TypographyTokenValue.d.ts +0 -12
  329. package/src/types/w3cTransformedToken.d.ts +0 -8
  330. package/src/utilities/copyFromDir.ts +0 -21
  331. package/src/utilities/index.ts +0 -3
  332. package/src/utilities/joinFriendly.ts +0 -2
  333. package/src/utilities/schemaErrorMessage.ts +0 -2
  334. package/src/utilities/toCamelCase.ts +0 -29
  335. package/src/utilities/treeWalker.ts +0 -27
@@ -1,25 +0,0 @@
1
- import {parse as json5Parse} from 'json5'
2
- import type StyleDictionary from 'style-dictionary'
3
-
4
- /**
5
- * @description Parses a valid [json5](https://json5.org) file and replaces `$value` with `value` and `$description` with `comment` to make a w3c standard file compatible with style dictionary
6
- * @pattern supported file extensions `.json` or `.json5`
7
- */
8
- export const w3cJsonParser: StyleDictionary.Parser = {
9
- pattern: /\.json5?$/,
10
- parse: ({filePath, contents}: {filePath: string; contents: string}) => {
11
- // replace $value with value so that style dictionary recognizes it
12
- try {
13
- contents = contents
14
- .replace(/["|']?\$value["|']?:/g, '"value":')
15
- // convert $description to comment
16
- .replace(/["|']?\$?description["|']?:/g, '"comment":')
17
- .replace(/["|']?\$?type["|']?:/g, '"$type":')
18
- .replace(/["|']?\$?extensions["|']?:/g, '"$extensions":')
19
- //
20
- return json5Parse(contents)
21
- } catch (e) {
22
- throw new Error(`Invalid json5 file "${filePath}".`)
23
- }
24
- },
25
- }
@@ -1,101 +0,0 @@
1
- import {isFromFile, isSource} from '../filters'
2
- import type StyleDictionary from 'style-dictionary'
3
- import type {PlatformInitializer} from '../types/PlatformInitializer'
4
- import type {TransformedToken} from 'style-dictionary'
5
-
6
- const getCssSelectors = (outputFile: string) => {
7
- // check for dark in the beginning of the output filename
8
- const lastSlash = outputFile.lastIndexOf('/')
9
- const outputBasename = outputFile.substring(lastSlash + 1, outputFile.indexOf('.'))
10
- const themeName = outputBasename.replace(/-/g, '_')
11
- const mode = outputBasename.substring(0, 4) === 'dark' ? 'dark' : 'light'
12
-
13
- return [
14
- {
15
- selector: `[data-color-mode="${mode}"][data-${mode}-theme="${themeName}"], [data-color-mode="${mode}"][data-${mode}-theme="${themeName}"] ::backdrop, [data-color-mode="auto"][data-light-theme="${themeName}"], [data-color-mode="auto"][data-light-theme="${themeName}"] ::backdrop`,
16
- },
17
- {
18
- query: '@media (prefers-color-scheme: dark)',
19
- selector: `[data-color-mode="auto"][data-dark-theme="${themeName}"], [data-color-mode="auto"][data-dark-theme="${themeName}"] ::backdrop`,
20
- },
21
- ]
22
- }
23
-
24
- export const css: PlatformInitializer = (outputFile, prefix, buildPath, options): StyleDictionary.Platform => {
25
- return {
26
- prefix,
27
- buildPath,
28
- transforms: [
29
- 'name/pathToKebabCase',
30
- 'color/hex',
31
- 'color/hexAlpha',
32
- 'color/hexMix',
33
- 'dimension/rem',
34
- 'duration/css',
35
- 'shadow/css',
36
- 'border/css',
37
- 'typography/css',
38
- 'fontFamily/css',
39
- 'fontWeight/number',
40
- ],
41
- options: {
42
- basePxFontSize: 16,
43
- },
44
- files: [
45
- {
46
- destination: `${outputFile}`,
47
- format: `css/advanced`,
48
- filter: token => isSource(token) && options?.themed === true,
49
- options: {
50
- showFileHeader: false,
51
- outputReferences: false,
52
- descriptions: false,
53
- queries: getCssSelectors(outputFile),
54
- ...options?.options,
55
- },
56
- },
57
- {
58
- destination: `${outputFile}`,
59
- format: `css/advanced`,
60
- filter: token => isSource(token) && options?.themed !== true,
61
- options: {
62
- showFileHeader: false,
63
- descriptions: false,
64
- ...options?.options,
65
- },
66
- },
67
- {
68
- destination: `${outputFile}`,
69
- format: `css/customMedia`,
70
- filter: token => isSource(token) && options?.themed !== true && token.$type === 'custom-viewportRange',
71
- options: {
72
- showFileHeader: false,
73
- },
74
- },
75
- {
76
- destination: `${outputFile}`,
77
- format: `css/advanced`,
78
- filter: token =>
79
- isSource(token) &&
80
- isFromFile(token, [
81
- 'src/tokens/functional/size/size-coarse.json',
82
- 'src/tokens/functional/size/size-fine.json',
83
- ]),
84
- options: {
85
- descriptions: false,
86
- showFileHeader: false,
87
- queries: [
88
- {
89
- query: '@media (pointer: fine)',
90
- matcher: (token: TransformedToken) => token.filePath.includes('size-fine'),
91
- },
92
- {
93
- query: '@media (pointer: coarse)',
94
- matcher: (token: TransformedToken) => token.filePath.includes('size-coarse'),
95
- },
96
- ],
97
- },
98
- },
99
- ],
100
- }
101
- }
@@ -1,16 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isDeprecated} from '../filters'
4
-
5
- export const deprecatedJson: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: ['name/pathToDotNotation', 'json/deprecated'],
9
- files: [
10
- {
11
- destination: outputFile,
12
- format: `json/flat`,
13
- filter: isDeprecated,
14
- },
15
- ],
16
- })
@@ -1,34 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- export const docJson: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: [
9
- 'name/pathToKebabCase',
10
- 'color/hex',
11
- 'color/hexMix',
12
- 'color/hexAlpha',
13
- 'dimension/rem',
14
- 'shadow/css',
15
- 'border/css',
16
- 'typography/css',
17
- 'fontFamily/css',
18
- 'fontWeight/number',
19
- ],
20
- options: {
21
- basePxFontSize: 16,
22
- },
23
- files: [
24
- {
25
- destination: outputFile,
26
- format: `json/one-dimensional`,
27
- filter: isSource,
28
- options: {
29
- outputReferences: false,
30
- outputVerbose: true,
31
- },
32
- },
33
- ],
34
- })
@@ -1,34 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- export const fallbacks: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: [
9
- 'name/pathToKebabCase',
10
- 'color/hex',
11
- 'color/hexMix',
12
- 'color/hexAlpha',
13
- 'dimension/rem',
14
- 'shadow/css',
15
- 'border/css',
16
- 'typography/css',
17
- 'fontFamily/css',
18
- 'fontWeight/number',
19
- ],
20
- options: {
21
- basePxFontSize: 16,
22
- },
23
- files: [
24
- {
25
- destination: outputFile,
26
- format: `json/postCss-fallback`,
27
- filter: isSource,
28
- options: {
29
- outputReferences: false,
30
- outputVerbose: true,
31
- },
32
- },
33
- ],
34
- })
@@ -1,58 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- const validFigmaToken = (token: StyleDictionary.TransformedToken) => {
6
- const validTypes = ['color', 'dimension', 'shadow', 'fontWeight', 'fontFamily', 'number']
7
- // is a siource token, not an included one
8
- if (!isSource(token)) return false
9
-
10
- if (`${token.value}`.substring(token.value.length - 2) === 'em') return false
11
- // has a collection attribute
12
- if (
13
- !('$extensions' in token) ||
14
- !('org.primer.figma' in token.$extensions) ||
15
- !('collection' in token.$extensions['org.primer.figma'])
16
- )
17
- return false
18
- // is a color or dimension type
19
- return validTypes.includes(token.$type)
20
- }
21
-
22
- export const figma: PlatformInitializer = (outputFile, prefix, buildPath, options): StyleDictionary.Platform => ({
23
- prefix,
24
- buildPath,
25
- transforms: [
26
- 'color/rgbaFloat',
27
- 'name/pathToFigma',
28
- // 'name/pathToSlashNotation',
29
- 'figma/attributes',
30
- 'fontFamily/figma',
31
- 'float/pixelUnitless',
32
- 'dimension/pixelUnitless',
33
- // 'border/figma',
34
- // 'typography/figma',
35
- 'fontWeight/number',
36
- ],
37
- options: {
38
- basePxFontSize: 16,
39
- fontFamilies: {
40
- 'fontStack/system': 'SF Pro Text',
41
- 'fontStack/sansSerif': 'SF Pro Text',
42
- 'fontStack/sansSerifDisplay': 'SF Pro Display',
43
- 'fontStack/monospace': 'SF Mono',
44
- },
45
- ...options,
46
- },
47
- files: [
48
- {
49
- destination: outputFile,
50
- filter: validFigmaToken,
51
- format: `json/figma`,
52
- options: {
53
- outputReferences: true,
54
- mode: options?.mode,
55
- },
56
- },
57
- ],
58
- })
@@ -1,10 +0,0 @@
1
- export {css} from './css'
2
- export {deprecatedJson} from './deprecatedJson'
3
- export {docJson} from './docJson'
4
- export {fallbacks} from './fallbacks'
5
- export {figma} from './figma'
6
- export {javascript} from './javascript'
7
- export {json} from './json'
8
- export {styleLint} from './styleLint'
9
- export {typeDefinitions} from './typeDefinitions'
10
- export {typescript} from './typescript'
@@ -1,30 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- export const javascript: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: [
9
- 'color/hex',
10
- 'color/hexMix',
11
- 'color/hexAlpha',
12
- 'dimension/rem',
13
- 'shadow/css',
14
- 'border/css',
15
- 'typography/css',
16
- 'fontFamily/css',
17
- 'fontWeight/number',
18
- ],
19
- options: {
20
- showFileHeader: false,
21
- basePxFontSize: 16,
22
- },
23
- files: [
24
- {
25
- format: 'javascript/commonJs',
26
- destination: outputFile,
27
- filter: isSource,
28
- },
29
- ],
30
- })
@@ -1,32 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- export const json: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: [
9
- 'color/hex',
10
- 'color/hexMix',
11
- 'color/hexAlpha',
12
- 'dimension/rem',
13
- 'shadow/css',
14
- 'border/css',
15
- 'typography/css',
16
- 'fontFamily/css',
17
- 'fontWeight/number',
18
- ],
19
- options: {
20
- basePxFontSize: 16,
21
- },
22
- files: [
23
- {
24
- destination: outputFile,
25
- filter: isSource,
26
- format: `json/nested-prefixed`,
27
- options: {
28
- outputReferences: false,
29
- },
30
- },
31
- ],
32
- })
@@ -1,34 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- export const styleLint: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: [
9
- 'name/pathToKebabCase',
10
- 'color/hex',
11
- 'color/hexMix',
12
- 'color/hexAlpha',
13
- 'dimension/remPxArray',
14
- 'shadow/css',
15
- 'border/css',
16
- 'typography/css',
17
- 'fontFamily/css',
18
- 'fontWeight/number',
19
- ],
20
- options: {
21
- basePxFontSize: 16,
22
- },
23
- files: [
24
- {
25
- destination: outputFile,
26
- format: `json/one-dimensional`,
27
- filter: isSource,
28
- options: {
29
- outputReferences: false,
30
- outputVerbose: true,
31
- },
32
- },
33
- ],
34
- })
@@ -1,30 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
- import {upperCaseFirstCharacter} from '../utilities'
5
-
6
- export const typeDefinitions: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
7
- prefix,
8
- buildPath,
9
- transforms: [
10
- 'color/hex',
11
- 'color/hexAlpha',
12
- 'shadow/css',
13
- 'border/css',
14
- 'dimension/rem',
15
- 'typography/css',
16
- 'fontFamily/css',
17
- 'fontWeight/number',
18
- ],
19
- files: [
20
- {
21
- format: 'typescript/export-definition',
22
- destination: `${upperCaseFirstCharacter(outputFile)}DesignTokens.d.ts`,
23
- filter: isSource,
24
- options: {
25
- tokenTypesPath: './src/types/',
26
- moduleName: `${upperCaseFirstCharacter(outputFile)}DesignTokens`,
27
- },
28
- },
29
- ],
30
- })
@@ -1,30 +0,0 @@
1
- import type StyleDictionary from 'style-dictionary'
2
- import type {PlatformInitializer} from '../types/PlatformInitializer'
3
- import {isSource} from '../filters'
4
-
5
- export const typescript: PlatformInitializer = (outputFile, prefix, buildPath): StyleDictionary.Platform => ({
6
- prefix,
7
- buildPath,
8
- transforms: [
9
- 'color/hex',
10
- 'color/hexMix',
11
- 'color/hexAlpha',
12
- 'dimension/rem',
13
- 'shadow/css',
14
- 'border/css',
15
- 'typography/css',
16
- 'fontFamily/css',
17
- 'fontWeight/number',
18
- ],
19
- options: {
20
- showFileHeader: false,
21
- basePxFontSize: 16,
22
- },
23
- files: [
24
- {
25
- format: 'javascript/esm',
26
- destination: outputFile,
27
- filter: isSource,
28
- },
29
- ],
30
- })
@@ -1,12 +0,0 @@
1
- import {z} from 'zod'
2
- import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
-
4
- export const alphaValue = z.any().refine(
5
- value => typeof value === 'number' && value >= 0 && value <= 1,
6
- value => ({
7
- message: schemaErrorMessage(
8
- `Invalid alpha value: "${value}" (${typeof value})`,
9
- 'Alpha value must be a number between 0 and 1.',
10
- ),
11
- }),
12
- )
@@ -1,8 +0,0 @@
1
- import {z} from 'zod'
2
-
3
- export const baseToken = z
4
- .object({
5
- $description: z.string().optional(),
6
- deprecated: z.union([z.string(), z.boolean()]).optional(),
7
- })
8
- .strict()
@@ -1,19 +0,0 @@
1
- import {z} from 'zod'
2
- import {baseToken} from './baseToken'
3
- import {referenceValue} from './referenceValue'
4
- import {colorHexValue} from './colorHexValue'
5
- import {dimensionValue} from './dimensionValue'
6
- import {tokenType} from './tokenType'
7
-
8
- export const borderValue = z.object({
9
- color: z.union([colorHexValue, referenceValue]),
10
- style: z.enum(['solid', 'dashed', 'dotted', 'double', 'groove', 'ridge', 'outset', 'inset']),
11
- width: z.union([dimensionValue, referenceValue]),
12
- })
13
-
14
- export const borderToken = baseToken
15
- .extend({
16
- $value: z.union([borderValue, referenceValue]),
17
- $type: tokenType('border'),
18
- })
19
- .strict()
@@ -1,49 +0,0 @@
1
- import {z} from 'zod'
2
- import {joinFriendly} from '../utilities/joinFriendly'
3
- import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
4
-
5
- type Collections =
6
- | 'base/color/light'
7
- | 'base/color/light-high-contrast'
8
- | 'base/color/dark'
9
- | 'base/color/dark-dimmed'
10
- | 'base/color/dark-high-contrast'
11
- | 'base/typography'
12
- | 'mode'
13
- | 'pattern/mode'
14
- | 'base/size'
15
- | 'functional/size'
16
- | 'pattern/size'
17
- | 'typography'
18
-
19
- export const collection = (collections: Collections[]) => {
20
- return z.string().refine(
21
- value => collections.includes(value as Collections),
22
- value => ({
23
- message: schemaErrorMessage(
24
- `Invalid collection: "${value}"`,
25
- `Valid collections are ${joinFriendly(collections)}`,
26
- ),
27
- }),
28
- )
29
- }
30
-
31
- type Modes =
32
- | 'light'
33
- | 'dark'
34
- | 'dark dimmed'
35
- | 'light high contrast'
36
- | 'dark high contrast'
37
- | 'light colorblind'
38
- | 'dark colorblind'
39
- | 'light tritanopia'
40
- | 'dark tritanopia'
41
-
42
- export const mode = (modes: Modes[]) => {
43
- return z.string().refine(
44
- value => modes.includes(value as Modes),
45
- value => ({
46
- message: schemaErrorMessage(`Invalid mode: "${value}"`, `Valid modes are ${joinFriendly(modes)}`),
47
- }),
48
- )
49
- }
@@ -1,18 +0,0 @@
1
- import {z} from 'zod'
2
- import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
-
4
- const colorHex3RegEx = '^#[0-9a-f]{3}$'
5
- const colorHex6RegEx = '^#[0-9a-f]{6}$'
6
- const colorHex8RegEx = '^#[0-9a-f]{8}$'
7
-
8
- const colorHexRegex = new RegExp(`(${colorHex3RegEx})|(${colorHex6RegEx})|(${colorHex8RegEx})`, 'i')
9
-
10
- export const colorHexValue = z.string().refine(
11
- color => colorHexRegex.test(color),
12
- color => ({
13
- message: schemaErrorMessage(
14
- `Invalid color: "${color}"`,
15
- 'Color must be a hex string or a reference to a color token.',
16
- ),
17
- }),
18
- )
@@ -1,50 +0,0 @@
1
- import {z} from 'zod'
2
- import {colorHexValue} from './colorHexValue'
3
- import {referenceValue} from './referenceValue'
4
- import {alphaValue} from './alphaValue'
5
- import {baseToken} from './baseToken'
6
- import {collection, mode} from './collections'
7
- import {scopes} from './scopes'
8
- import {tokenType} from './tokenType'
9
-
10
- export const colorToken = baseToken
11
- .extend({
12
- $value: z.union([colorHexValue, referenceValue]),
13
- $type: tokenType('color'),
14
- alpha: alphaValue.optional().nullable(),
15
- mix: z
16
- .object({
17
- color: z.string(),
18
- weight: z.number().min(0).max(1),
19
- })
20
- .nullable()
21
- .optional(),
22
- $extensions: z
23
- .object({
24
- 'org.primer.figma': z.object({
25
- collection: collection([
26
- 'base/color/light',
27
- 'base/color/light-high-contrast',
28
- 'base/color/dark',
29
- 'base/color/dark-dimmed',
30
- 'base/color/dark-high-contrast',
31
- 'mode',
32
- 'pattern/mode',
33
- ]).optional(),
34
- mode: mode([
35
- 'light',
36
- 'dark',
37
- 'dark dimmed',
38
- 'light high contrast',
39
- 'dark high contrast',
40
- 'light colorblind',
41
- 'dark colorblind',
42
- 'light tritanopia',
43
- 'dark tritanopia',
44
- ]).optional(),
45
- scopes: scopes(['all', 'bgColor', 'fgColor', 'borderColor', 'effectColor']).optional(),
46
- }),
47
- })
48
- .optional(),
49
- })
50
- .strict()
@@ -1,38 +0,0 @@
1
- import {z} from 'zod'
2
- import {tokenName} from './tokenName'
3
- import {stringToken} from './stringToken'
4
- import {viewportRangeToken} from './viewportRangeToken'
5
- import {numberToken} from './numberToken'
6
- import {fontWeightToken} from './fontWeightToken'
7
- import {typographyToken} from './typographyToken'
8
- import {borderToken} from './borderToken'
9
- import {dimensionToken} from './dimensionToken'
10
- import {colorToken} from './colorToken'
11
- import {fontFamilyToken} from './fontFamilyToken'
12
- import {shadowToken} from './shadowToken'
13
- import {durationToken} from './durationToken'
14
-
15
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
16
- // @ts-ignore: TODO: fix this
17
- export const designToken = z.record(
18
- tokenName,
19
- z.lazy((): z.ZodTypeAny => {
20
- return z.union([
21
- z.discriminatedUnion('$type', [
22
- colorToken,
23
- dimensionToken,
24
- shadowToken,
25
- borderToken,
26
- fontFamilyToken,
27
- fontWeightToken,
28
- typographyToken,
29
- viewportRangeToken,
30
- numberToken,
31
- durationToken,
32
- stringToken,
33
- ]),
34
- // referenceToken,
35
- designToken,
36
- ])
37
- }),
38
- )