@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,121 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { format } from 'prettier';
11
+ import { transformNamePathToFigma } from '../transformers/namePathToFigma.js';
12
+ import { hexToRgbaFloat } from '../transformers/utilities/hexToRgbaFloat.js';
13
+ import { isRgbaFloat } from '../transformers/utilities/isRgbaFloat.js';
14
+ import { getReferences, sortByReference } from 'style-dictionary/utils';
15
+ const isReference = (string) => /^\{([^\\]*)\}$/g.test(string);
16
+ const getReference = (dictionary, refString, platform) => {
17
+ var _a;
18
+ if (isReference(refString)) {
19
+ // retrieve reference token
20
+ const refToken = getReferences(refString, dictionary.tokens, { unfilteredTokens: dictionary.unfilteredTokens })[0];
21
+ // return full reference
22
+ return [(_a = refToken.attributes) === null || _a === void 0 ? void 0 : _a.collection, transformNamePathToFigma(refToken, platform)].filter(Boolean).join('/');
23
+ }
24
+ };
25
+ const getFigmaType = (type) => {
26
+ const validTypes = {
27
+ color: 'COLOR',
28
+ dimension: 'FLOAT',
29
+ fontWeight: 'FLOAT',
30
+ number: 'FLOAT',
31
+ fontFamily: 'STRING',
32
+ };
33
+ if (type in validTypes)
34
+ return validTypes[type];
35
+ throw new Error(`Invalid type: ${type}`);
36
+ };
37
+ const shadowToVariables = (name, values, token) => {
38
+ // floatValue
39
+ const floatValue = (property) => ({
40
+ name: `${name}/${property}`,
41
+ value: parseInt(values[property].replace('px', '')),
42
+ type: 'FLOAT',
43
+ scopes: ['EFFECT_FLOAT'],
44
+ mode,
45
+ collection,
46
+ group,
47
+ });
48
+ const { attributes } = token;
49
+ const { mode, collection, group } = attributes || {};
50
+ return [
51
+ floatValue('offsetX'),
52
+ floatValue('offsetY'),
53
+ floatValue('blur'),
54
+ floatValue('spread'),
55
+ {
56
+ name: `${name}/color`,
57
+ value: isRgbaFloat(values.color)
58
+ ? Object.assign(Object.assign({}, values.color), (values.alpha ? { a: values.alpha } : {})) : hexToRgbaFloat(values.color, values.alpha),
59
+ type: 'COLOR',
60
+ scopes: ['EFFECT_COLOR'],
61
+ mode,
62
+ collection,
63
+ group,
64
+ },
65
+ ];
66
+ };
67
+ /**
68
+ * @description Converts `StyleDictionary.dictionary.tokens` to javascript esm (javascript export statement)
69
+ * @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
70
+ * @returns formatted `string`
71
+ */
72
+ export const jsonFigma = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dictionary, file: _file, platform }) {
73
+ // array to store tokens in
74
+ const tokens = [];
75
+ const sortedTokens = [...dictionary.allTokens].sort(sortByReference(dictionary.tokens, { unfilteredTokens: dictionary.unfilteredTokens }));
76
+ // loop through tokens sorted by reference
77
+ for (const token of sortedTokens) {
78
+ // deconstruct token
79
+ const { attributes, $value: value, $type, $description: description, original, alpha, mix } = token;
80
+ const { mode, collection, scopes, group, codeSyntax } = attributes || {};
81
+ // early escape if no type is present
82
+ if (!$type)
83
+ return;
84
+ // shadows need to be specifically dealt with
85
+ if ($type === 'shadow') {
86
+ const shadowValues = !Array.isArray(value) ? [value] : value;
87
+ // if only one set of shadow values is present
88
+ if (shadowValues.length === 1) {
89
+ tokens.push(...shadowToVariables(token.name, shadowValues[0], Object.assign(Object.assign({}, token), (platform.mode ? { mode: platform.mode } : {}))));
90
+ }
91
+ else {
92
+ // if multiple shadow sets values are present we need loop through them and add the index to the name
93
+ for (const [index, stepValue] of shadowValues.entries()) {
94
+ tokens.push(...shadowToVariables(`${token.name}/${index + 1}`, stepValue, Object.assign(Object.assign({}, token), (platform.mode ? { mode: platform.mode } : {}))));
95
+ }
96
+ }
97
+ // other tokens just get added to tokens array
98
+ }
99
+ else {
100
+ tokens.push({
101
+ name: token.name,
102
+ value,
103
+ type: getFigmaType($type),
104
+ alpha,
105
+ isMix: mix ? true : undefined,
106
+ description,
107
+ refId: [collection, token.name].filter(Boolean).join('/'),
108
+ reference: getReference(dictionary, original.$value, platform),
109
+ collection,
110
+ mode,
111
+ group,
112
+ scopes,
113
+ codeSyntax,
114
+ });
115
+ }
116
+ }
117
+ // add file header and convert output
118
+ const output = JSON.stringify(tokens, null, 2);
119
+ // return prettified
120
+ return format(output, { parser: 'json', printWidth: 500 });
121
+ });
@@ -0,0 +1,8 @@
1
+ import type { FormatFn } from 'style-dictionary/types';
2
+ /**
3
+ * @description Takes a style dictionary token dictionary and converts it to a nested json string.
4
+ * In contrast to the `json/nested` this formatter does add a prefix if provided
5
+ * @param FormatFnArguments
6
+ * @returns formatted json `string`
7
+ */
8
+ export declare const jsonNestedPrefixed: FormatFn;
@@ -0,0 +1,30 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { format } from 'prettier';
11
+ import { prefixTokens } from './utilities/prefixTokens.js';
12
+ import { jsonToNestedValue } from './utilities/jsonToNestedValue.js';
13
+ /**
14
+ * @description Takes a style dictionary token dictionary and converts it to a nested json string.
15
+ * In contrast to the `json/nested` this formatter does add a prefix if provided
16
+ * @param FormatFnArguments
17
+ * @returns formatted json `string`
18
+ */
19
+ export const jsonNestedPrefixed = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dictionary, file: _file, options, platform }) {
20
+ const { outputVerbose } = options;
21
+ // add prefix if defined
22
+ let tokens = prefixTokens(dictionary.tokens, platform);
23
+ if (!outputVerbose) {
24
+ tokens = jsonToNestedValue(tokens);
25
+ }
26
+ // add file header and convert output
27
+ const output = JSON.stringify(tokens, null, 2);
28
+ // return prettified
29
+ return format(output, { parser: 'json', printWidth: 500 });
30
+ });
@@ -0,0 +1,8 @@
1
+ import type { FormatFn } from 'style-dictionary/types';
2
+ /**
3
+ * @description Takes a style dictionary token dictionary and converts it to a one dimensional json object.
4
+ * @param FormatFnArguments
5
+ * @param options.nameSeparator - separator to use for nested token name
6
+ * @returns formatted json `string`
7
+ */
8
+ export declare const jsonOneDimensional: FormatFn;
@@ -0,0 +1,32 @@
1
+ import { format } from 'prettier';
2
+ import { jsonToFlat } from './utilities/jsonToFlat.js';
3
+ /**
4
+ * @description Takes a style dictionary token dictionary and converts it to a one dimensional json object.
5
+ * @param FormatFnArguments
6
+ * @param options.nameSeparator - separator to use for nested token name
7
+ * @returns formatted json `string`
8
+ */
9
+ export const jsonOneDimensional = ({ dictionary, file: _file, options }) => {
10
+ // option to allow verbose output (object) or just the value
11
+ const { outputVerbose, propertyConversion } = options;
12
+ const tokens = jsonToFlat(dictionary.allTokens, outputVerbose);
13
+ if (propertyConversion === undefined) {
14
+ //
15
+ const output = JSON.stringify(tokens, null, 2);
16
+ // return prettified
17
+ return format(output, { parser: 'json', printWidth: 500 });
18
+ }
19
+ // replace property names
20
+ const convertedTokens = Object.fromEntries(Object.entries(tokens).map(([name, token]) => {
21
+ for (const [from, to] of Object.entries(propertyConversion)) {
22
+ if (from in token) {
23
+ token[to] = token[from];
24
+ delete token[from];
25
+ }
26
+ }
27
+ return [name, token];
28
+ }));
29
+ const output = JSON.stringify(convertedTokens, null, 2);
30
+ // return prettified
31
+ return format(output, { parser: 'json', printWidth: 500 });
32
+ };
@@ -0,0 +1,8 @@
1
+ import type { FormatFn } from 'style-dictionary/types';
2
+ /**
3
+ * @description Takes a style dictionary token dictionary and converts it to a one dimensional json object.
4
+ * @param FormatFnArguments
5
+ * @param options.nameSeparator - separator to use for nested token name
6
+ * @returns formatted json `string`
7
+ */
8
+ export declare const jsonPostCssFallback: FormatFn;
@@ -0,0 +1,14 @@
1
+ import { format } from 'prettier';
2
+ /**
3
+ * @description Takes a style dictionary token dictionary and converts it to a one dimensional json object.
4
+ * @param FormatFnArguments
5
+ * @param options.nameSeparator - separator to use for nested token name
6
+ * @returns formatted json `string`
7
+ */
8
+ export const jsonPostCssFallback = ({ dictionary, file: _file }) => {
9
+ const tokens = Object.fromEntries(dictionary.allTokens.map(token => [`--${token.name}`, token.$value]));
10
+ // add file header and convert output
11
+ const output = JSON.stringify(tokens, null, 2);
12
+ // return prettified
13
+ return format(output, { parser: 'json', printWidth: 500 });
14
+ };
@@ -0,0 +1,7 @@
1
+ import type { FormatFn } from 'style-dictionary/types';
2
+ /**
3
+ * @description Converts `StyleDictionary.dictionary.tokens` to typescript definition
4
+ * @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
5
+ * @returns formatted `string`
6
+ */
7
+ export declare const typescriptExportDefinition: FormatFn;
@@ -0,0 +1,170 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { format } from 'prettier';
11
+ import { readFileSync } from 'fs';
12
+ import { resolve as resolvePath } from 'path';
13
+ import { treeWalker } from '../utilities/treeWalker.js';
14
+ import { prefixTokens } from './utilities/prefixTokens.js';
15
+ import { fileHeader } from 'style-dictionary/utils';
16
+ import { getPropName } from './utilities/getPropName.js';
17
+ import { lowerCaseFirstCharacter } from '../utilities/lowerCaseFirstCharacter.js';
18
+ /**
19
+ * unquoteTypes
20
+ * @description extract types from designTokenTypes (string with type definitions from file) and replace quoted types "Color" with unquoted Color
21
+ * @param output
22
+ * @param designTokenTypes
23
+ * @returns string with unquoted types
24
+ */
25
+ const unquoteTypes = (output, designTokenTypes) => {
26
+ // join types for replacement
27
+ const regex = `"(${['number', 'string', 'any', ...designTokenTypes].join('|')})"`;
28
+ // remove strings
29
+ return output.replace(new RegExp(regex, 'g'), '$1');
30
+ };
31
+ /**
32
+ * getTokenType
33
+ * @description extract content from token files
34
+ * @param path string
35
+ */
36
+ const getTokenType = (tokenTypesPath) => {
37
+ try {
38
+ const designTokenType = readFileSync(resolvePath(tokenTypesPath), { encoding: 'utf-8' });
39
+ return designTokenType;
40
+ }
41
+ catch (error) {
42
+ throw new Error(`Error trying to load design token type from file "${tokenTypesPath}". Error: ${error}`);
43
+ }
44
+ };
45
+ /**
46
+ * @description throws an error stating the token name, type and invalid value
47
+ * @param token w3cTransformedToken
48
+ */
49
+ const invalidTokenValueError = (token, options) => {
50
+ throw new Error(`Invalid token: "${token.name}" with type "${token[getPropName('type', options.usesDtcg)]}" can not have a value of "${token[getPropName('value', options.usesDtcg)]}"`);
51
+ };
52
+ /**
53
+ * convertPropToType
54
+ * @description return take type attribute and return correct typescript type as string
55
+ * @param type
56
+ * @returns
57
+ */
58
+ const convertPropToType = (tree, options) => {
59
+ const valueProp = getPropName('value', options.usesDtcg);
60
+ if (!Object.prototype.hasOwnProperty.call(tree, valueProp)) {
61
+ throw new Error(`Invalid token: ${tree}`);
62
+ }
63
+ switch (tree.$type) {
64
+ case 'color':
65
+ if (typeof tree[valueProp] === 'string' && tree[valueProp][0] === '#') {
66
+ return 'ColorHex';
67
+ }
68
+ return invalidTokenValueError(tree, options);
69
+ case 'dimension':
70
+ if (typeof tree[valueProp] === 'string' && tree[valueProp].substring(tree[valueProp].length - 3) === 'rem')
71
+ return 'SizeRem';
72
+ if (typeof tree[valueProp] === 'string' && tree[valueProp].substring(tree[valueProp].length - 2) === 'em')
73
+ return 'SizeEm';
74
+ if (typeof tree[valueProp] === 'string' && tree[valueProp].substring(tree[valueProp].length - 2) === 'px')
75
+ return 'SizePx';
76
+ return invalidTokenValueError(tree, options);
77
+ case 'shadow':
78
+ return 'Shadow';
79
+ case 'border':
80
+ return 'Border';
81
+ default:
82
+ if (typeof tree[valueProp] === 'number')
83
+ return 'number';
84
+ if (typeof tree[valueProp] === 'string')
85
+ return 'string';
86
+ if (typeof tree[valueProp] === 'boolean')
87
+ return 'boolean';
88
+ return 'any';
89
+ }
90
+ };
91
+ /**
92
+ * a valid token node has a `value` property
93
+ * @param item object
94
+ * @returns boolean
95
+ */
96
+ const validTokenNode = (usesDtcg) => (item) => {
97
+ return typeof item === 'object' && item !== null && getPropName('value', usesDtcg) in item;
98
+ };
99
+ /**
100
+ * returns a set with every used token type
101
+ * @param item object
102
+ * @param validTypes array, all other types will be removed
103
+ * @returns set of all used token types
104
+ */
105
+ const getUsedTokenTypes = (tokens, validTypes, options) => {
106
+ // using a set to assure every value only exists once
107
+ const usedTypes = new Set();
108
+ // adds type to set
109
+ const callback = (tree) => usedTypes.add(convertPropToType(tree, options));
110
+ // tree walker adds to usedTypes
111
+ treeWalker(tokens, callback, validTokenNode(options.usesDtcg));
112
+ // clean up types
113
+ for (const type of usedTypes) {
114
+ if (!validTypes.includes(type)) {
115
+ usedTypes.delete(type);
116
+ }
117
+ }
118
+ return usedTypes;
119
+ };
120
+ /**
121
+ * returns the entire token object structure but instead of token values each token just has a typescript type
122
+ * @param item object
123
+ * @returns object
124
+ */
125
+ const getTokenObjectWithTypes = (tokens, options) => {
126
+ const callback = (tree) => convertPropToType(tree, options);
127
+ // TODO: FIX typescript issues
128
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
129
+ // @ts-ignore
130
+ return treeWalker(tokens, callback, validTokenNode(options.usesDtcg));
131
+ };
132
+ /**
133
+ * getTypeDefinition
134
+ * @description returns type definitions as string
135
+ * @param tokens
136
+ * @param moduleName
137
+ * @param tokenTypesPath
138
+ * @returns string
139
+ */
140
+ const getTypeDefinition = (tokens, options) => {
141
+ // extract options
142
+ const { moduleName = `tokens`, tokenTypesPath = `./src/types/` } = options;
143
+ const usedTypes = getUsedTokenTypes(tokens, ['Shadow', 'ColorHex', 'Border', 'SizeEm', 'SizeRem', 'SizePx'], options);
144
+ const tokenObjectWithTypes = getTokenObjectWithTypes(tokens, options);
145
+ // get token type declaration from file
146
+ const designTokenTypes = [];
147
+ for (const type of usedTypes) {
148
+ // path to type files without trailing slash
149
+ const typePath = tokenTypesPath.replace(new RegExp(/\/$/, 'g'), '');
150
+ designTokenTypes.push(getTokenType(`${typePath}/${lowerCaseFirstCharacter(type)}.d.ts`));
151
+ }
152
+ // build output
153
+ const output = `${designTokenTypes.join('\n')}
154
+ export type ${moduleName} = ${JSON.stringify(tokenObjectWithTypes, null, 2)}`;
155
+ // JSON stringify will quote strings, because this is a type we need it unquoted.
156
+ return unquoteTypes(output, [...usedTypes]);
157
+ };
158
+ /**
159
+ * @description Converts `StyleDictionary.dictionary.tokens` to typescript definition
160
+ * @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
161
+ * @returns formatted `string`
162
+ */
163
+ export const typescriptExportDefinition = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dictionary, file, options = {}, platform, }) {
164
+ // add prefix if defined
165
+ const tokens = prefixTokens(dictionary.tokens, platform);
166
+ // add file header and convert output
167
+ const output = `${yield fileHeader({ file })}\n${getTypeDefinition(tokens, options)}\n`;
168
+ // return prettified
169
+ return format(output, { parser: 'typescript', printWidth: 500 });
170
+ });
@@ -0,0 +1 @@
1
+ export declare const getPropName: (prop: "value" | "type" | "description", usesDtcg?: boolean) => "type" | "value" | "$value" | "$type" | "$description" | "comment";
@@ -0,0 +1,16 @@
1
+ const props = {
2
+ dtcg: {
3
+ value: '$value',
4
+ type: '$type',
5
+ description: '$description',
6
+ },
7
+ legacy: {
8
+ value: 'value',
9
+ type: 'type',
10
+ description: 'comment',
11
+ },
12
+ };
13
+ export const getPropName = (prop, usesDtcg) => {
14
+ const type = usesDtcg ? 'dtcg' : 'legacy';
15
+ return props[type][prop];
16
+ };
@@ -0,0 +1,11 @@
1
+ import type { TransformedToken } from 'style-dictionary/types';
2
+ /**
3
+ * jsonToFlat
4
+ * @description creates a one dimensional json structure with either a single value or an token object as the value
5
+ * @param token StyleDictionary.DesignToken
6
+ * @param returnObject - boolean
7
+ * @returns flat json three
8
+ */
9
+ export declare const jsonToFlat: (tokens: TransformedToken[], returnObject?: boolean) => {
10
+ [k: string]: any;
11
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * jsonToFlat
3
+ * @description creates a one dimensional json structure with either a single value or an token object as the value
4
+ * @param token StyleDictionary.DesignToken
5
+ * @param returnObject - boolean
6
+ * @returns flat json three
7
+ */
8
+ export const jsonToFlat = (tokens, returnObject = false) => Object.fromEntries(tokens.map(token => [token.name, returnObject ? token : token.$value]));
@@ -0,0 +1,8 @@
1
+ import type { DesignToken } from 'style-dictionary/types';
2
+ /**
3
+ * jsonToNestedValue
4
+ * @description creates a nested json tree where every final value is the `.value` prop
5
+ * @param token StyleDictionary.DesignToken
6
+ * @returns nested json three
7
+ */
8
+ export declare const jsonToNestedValue: (token: DesignToken | Record<string, unknown>) => any;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * jsonToNestedValue
3
+ * @description creates a nested json tree where every final value is the `.value` prop
4
+ * @param token StyleDictionary.DesignToken
5
+ * @returns nested json three
6
+ */
7
+ export const jsonToNestedValue = (token) => {
8
+ // is non-object value
9
+ if (typeof token !== 'object')
10
+ return token;
11
+ // is design token
12
+ if ('$value' in token)
13
+ return token.$value;
14
+ if ('value' in token)
15
+ return token.value;
16
+ // is obj
17
+ const nextObj = {};
18
+ for (const [prop, value] of Object.entries(token)) {
19
+ // @ts-expect-error: can't predict type
20
+ nextObj[prop] = jsonToNestedValue(value);
21
+ }
22
+ return nextObj;
23
+ };
@@ -0,0 +1,8 @@
1
+ import type { PlatformConfig, TransformedTokens } from 'style-dictionary/types';
2
+ /**
3
+ * @description extract prefix from platform and add to tokens array if defined
4
+ * @param tokens StyleDictionary.TransformedTokens
5
+ * @param platform StyleDictionary.Platform
6
+ * @return StyleDictionary.TransformedTokens
7
+ */
8
+ export declare const prefixTokens: (tokens: TransformedTokens, platform?: PlatformConfig) => TransformedTokens;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @description extract prefix from platform and add to tokens array if defined
3
+ * @param tokens StyleDictionary.TransformedTokens
4
+ * @param platform StyleDictionary.Platform
5
+ * @return StyleDictionary.TransformedTokens
6
+ */
7
+ export const prefixTokens = (tokens, platform = {}) => {
8
+ const { prefix } = platform;
9
+ if (typeof prefix === 'string') {
10
+ tokens = { [prefix]: tokens };
11
+ }
12
+ return tokens;
13
+ };
@@ -0,0 +1 @@
1
+ export { w3cJsonParser } from './w3cJsonParser.js';
@@ -0,0 +1 @@
1
+ export { w3cJsonParser } from './w3cJsonParser.js';
@@ -0,0 +1,6 @@
1
+ import type { Parser } from 'style-dictionary/types';
2
+ /**
3
+ * @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
4
+ * @pattern supported file extensions `.json` or `.json5`
5
+ */
6
+ export declare const w3cJsonParser: Parser;
@@ -0,0 +1,25 @@
1
+ import JSON5 from 'json5';
2
+ /**
3
+ * @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
4
+ * @pattern supported file extensions `.json` or `.json5`
5
+ */
6
+ export const w3cJsonParser = {
7
+ name: 'w3cJsonParser',
8
+ pattern: /\.json5?$/,
9
+ parser: ({ filePath, contents }) => {
10
+ // replace $value with value so that style dictionary recognizes it
11
+ try {
12
+ contents = contents
13
+ .replace(/["|']?\$value["|']?:/g, '"value":')
14
+ // convert $description to comment
15
+ .replace(/["|']?\$?description["|']?:/g, '"comment":')
16
+ .replace(/["|']?\$?type["|']?:/g, '"$type":')
17
+ .replace(/["|']?\$?extensions["|']?:/g, '"$extensions":');
18
+ //
19
+ return JSON5.parse(contents);
20
+ }
21
+ catch (error) {
22
+ throw new Error(`Invalid json5 file "${filePath}". Error: ${error}`);
23
+ }
24
+ },
25
+ };
@@ -0,0 +1,2 @@
1
+ import type { PlatformInitializer } from '../types/platformInitializer.js';
2
+ export declare const css: PlatformInitializer;
@@ -0,0 +1,100 @@
1
+ import { isFromFile, isSource } from '../filters/index.js';
2
+ const getCssSelectors = (outputFile) => {
3
+ // check for dark in the beginning of the output filename
4
+ const lastSlash = outputFile.lastIndexOf('/');
5
+ const outputBasename = outputFile.substring(lastSlash + 1, outputFile.indexOf('.'));
6
+ const themeName = outputBasename.replace(/-/g, '_');
7
+ const mode = outputBasename.substring(0, 4) === 'dark' ? 'dark' : 'light';
8
+ return [
9
+ {
10
+ 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`,
11
+ },
12
+ {
13
+ query: '@media (prefers-color-scheme: dark)',
14
+ selector: `[data-color-mode="auto"][data-dark-theme="${themeName}"], [data-color-mode="auto"][data-dark-theme="${themeName}"] ::backdrop`,
15
+ },
16
+ ];
17
+ };
18
+ export const css = (outputFile, prefix, buildPath, options) => {
19
+ return {
20
+ prefix,
21
+ buildPath,
22
+ preprocessors: ['themeOverrides'],
23
+ transforms: [
24
+ 'name/pathToKebabCase',
25
+ 'color/hex',
26
+ 'color/hexMix',
27
+ 'cubicBezier/css',
28
+ 'dimension/rem',
29
+ 'duration/css',
30
+ 'shadow/css',
31
+ 'border/css',
32
+ 'typography/css',
33
+ 'fontFamily/css',
34
+ 'fontWeight/number',
35
+ ],
36
+ options: {
37
+ basePxFontSize: 16,
38
+ themeOverrides: {
39
+ theme: options === null || options === void 0 ? void 0 : options.theme,
40
+ },
41
+ },
42
+ files: [
43
+ {
44
+ destination: `${outputFile}`,
45
+ format: `css/advanced`,
46
+ filter: token => isSource(token) &&
47
+ (options === null || options === void 0 ? void 0 : options.themed) === true &&
48
+ token.$type !== 'custom-viewportRange' &&
49
+ !isFromFile(token, [
50
+ 'src/tokens/functional/size/size-coarse.json',
51
+ 'src/tokens/functional/size/size-fine.json',
52
+ ]),
53
+ options: Object.assign({ showFileHeader: false, outputReferences: false, descriptions: false, queries: getCssSelectors(outputFile) }, options === null || options === void 0 ? void 0 : options.options),
54
+ },
55
+ {
56
+ destination: `${outputFile}`,
57
+ format: `css/advanced`,
58
+ filter: token => isSource(token) &&
59
+ (options === null || options === void 0 ? void 0 : options.themed) !== true &&
60
+ token.$type !== 'custom-viewportRange' &&
61
+ !isFromFile(token, [
62
+ 'src/tokens/functional/size/size-coarse.json',
63
+ 'src/tokens/functional/size/size-fine.json',
64
+ ]),
65
+ options: Object.assign({ showFileHeader: false, descriptions: false }, options === null || options === void 0 ? void 0 : options.options),
66
+ },
67
+ {
68
+ destination: `${outputFile}`,
69
+ format: `css/customMedia`,
70
+ filter: token => isSource(token) && (options === null || options === void 0 ? void 0 : 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 => isSource(token) &&
79
+ isFromFile(token, [
80
+ 'src/tokens/functional/size/size-coarse.json',
81
+ 'src/tokens/functional/size/size-fine.json',
82
+ ]),
83
+ options: {
84
+ descriptions: false,
85
+ showFileHeader: false,
86
+ queries: [
87
+ {
88
+ query: '@media (pointer: fine)',
89
+ matcher: (token) => token.filePath.includes('size-fine'),
90
+ },
91
+ {
92
+ query: '@media (pointer: coarse)',
93
+ matcher: (token) => token.filePath.includes('size-coarse'),
94
+ },
95
+ ],
96
+ },
97
+ },
98
+ ],
99
+ };
100
+ };
@@ -0,0 +1,2 @@
1
+ import type { PlatformInitializer } from '../types/platformInitializer.js';
2
+ export declare const deprecatedJson: PlatformInitializer;