@primer/primitives 7.16.0 → 7.17.0-rc.132f02a7

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 (360) hide show
  1. package/dist/css/functional/themes/dark-colorblind.css +14 -14
  2. package/dist/css/functional/themes/dark-tritanopia.css +14 -14
  3. package/dist/css/functional/themes/dark.css +14 -14
  4. package/dist/docs/functional/themes/dark-colorblind.json +7 -7
  5. package/dist/docs/functional/themes/dark-tritanopia.json +7 -7
  6. package/dist/docs/functional/themes/dark.json +7 -7
  7. package/dist/figma/scales/dark.json +5 -5
  8. package/dist/figma/themes/dark-colorblind.json +20 -20
  9. package/dist/figma/themes/dark-tritanopia.json +20 -20
  10. package/dist/figma/themes/dark.json +20 -20
  11. package/dist/internalCss/dark-colorblind.css +18 -18
  12. package/dist/internalCss/dark-tritanopia.css +18 -18
  13. package/dist/internalCss/dark.css +18 -18
  14. package/{tokens-next-private/docs → dist/styleLint}/base/size/size.json +17 -17
  15. package/{tokens-next-private/docs → dist/styleLint}/functional/size/border.json +6 -6
  16. package/{tokens-next-private/docs → dist/styleLint}/functional/size/breakpoints.json +6 -6
  17. package/{tokens-next-private/docs → dist/styleLint}/functional/size/size-coarse.json +3 -3
  18. package/{tokens-next-private/docs → dist/styleLint}/functional/size/size-fine.json +3 -3
  19. package/{tokens-next-private/docs → dist/styleLint}/functional/size/size.json +72 -72
  20. package/{tokens-next-private/docs → dist/styleLint}/functional/size/viewport.json +4 -4
  21. package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-colorblind.json +7 -7
  22. package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-tritanopia.json +7 -7
  23. package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark.json +7 -7
  24. package/{tokens-next-private/docs → dist/styleLint}/functional/typography/typography.json +23 -23
  25. package/package.json +12 -11
  26. package/src/PrimerStyleDictionary.ts +226 -0
  27. package/src/filters/index.ts +12 -0
  28. package/src/filters/isBorder.ts +10 -0
  29. package/src/filters/isColor.ts +10 -0
  30. package/src/filters/isColorWithAlpha.ts +11 -0
  31. package/src/filters/isColorWithMix.ts +33 -0
  32. package/src/filters/isDeprecated.ts +10 -0
  33. package/src/filters/isDimension.ts +10 -0
  34. package/src/filters/isDuration.ts +10 -0
  35. package/src/filters/isFontFamily.ts +10 -0
  36. package/src/filters/isFontWeight.ts +10 -0
  37. package/src/filters/isFromFile.ts +12 -0
  38. package/src/filters/isShadow.ts +10 -0
  39. package/src/filters/isSource.ts +10 -0
  40. package/src/filters/isTypography.ts +10 -0
  41. package/src/formats/cssCustomMedia.ts +24 -0
  42. package/src/formats/cssThemed.ts +35 -0
  43. package/src/formats/cssVariables.ts +25 -0
  44. package/src/formats/cssWrapMediaQuery.ts +29 -0
  45. package/src/formats/index.ts +11 -0
  46. package/src/formats/javascriptCommonJs.ts +21 -0
  47. package/src/formats/javascriptEsm.ts +21 -0
  48. package/src/formats/jsonFigma.ts +133 -0
  49. package/src/formats/jsonNestedPrefixed.ts +23 -0
  50. package/src/formats/jsonOneDimensional.ts +18 -0
  51. package/src/formats/jsonPostCssFallback.ts +16 -0
  52. package/src/formats/typescriptExportDefinition.ts +170 -0
  53. package/src/formats/utilities/jsonToFlat.ts +10 -0
  54. package/src/formats/utilities/jsonToNestedValue.ts +20 -0
  55. package/src/formats/utilities/prefixTokens.ts +17 -0
  56. package/src/parsers/index.ts +1 -0
  57. package/src/parsers/w3cJsonParser.ts +25 -0
  58. package/src/platforms/css.ts +93 -0
  59. package/src/platforms/deprecatedJson.ts +16 -0
  60. package/src/platforms/docJson.ts +34 -0
  61. package/src/platforms/fallbacks.ts +34 -0
  62. package/src/platforms/figma.ts +48 -0
  63. package/src/platforms/index.ts +10 -0
  64. package/src/platforms/javascript.ts +30 -0
  65. package/src/platforms/json.ts +32 -0
  66. package/src/platforms/styleLint.ts +34 -0
  67. package/src/platforms/typeDefinitions.ts +30 -0
  68. package/src/platforms/typescript.ts +30 -0
  69. package/src/schemas/alphaValue.ts +12 -0
  70. package/src/schemas/baseToken.ts +7 -0
  71. package/src/schemas/borderToken.ts +19 -0
  72. package/src/schemas/collections.ts +49 -0
  73. package/src/schemas/colorHexValue.ts +18 -0
  74. package/src/schemas/colorToken.ts +50 -0
  75. package/src/schemas/designToken.ts +38 -0
  76. package/src/schemas/dimensionToken.ts +22 -0
  77. package/src/schemas/dimensionValue.ts +16 -0
  78. package/src/schemas/durationToken.ts +12 -0
  79. package/src/schemas/durationValue.ts +9 -0
  80. package/src/schemas/fontFamilyToken.ts +21 -0
  81. package/src/schemas/fontWeightToken.ts +22 -0
  82. package/src/schemas/fontWeightValue.ts +14 -0
  83. package/src/schemas/numberToken.ts +11 -0
  84. package/src/schemas/referenceValue.ts +12 -0
  85. package/src/schemas/scopes.ts +16 -0
  86. package/src/schemas/shadowToken.ts +45 -0
  87. package/src/schemas/stringToken.ts +11 -0
  88. package/src/schemas/tokenName.ts +12 -0
  89. package/src/schemas/tokenType.ts +4 -0
  90. package/src/schemas/typographyToken.ts +20 -0
  91. package/src/schemas/validTokenType.ts +44 -0
  92. package/src/schemas/viewportRangeToken.ts +11 -0
  93. package/src/test-utilities/getMockDictionary.ts +22 -0
  94. package/src/test-utilities/getMockFormatterArguments.ts +21 -0
  95. package/src/test-utilities/getMockParserInput.ts +72 -0
  96. package/src/test-utilities/getMockToken.ts +25 -0
  97. package/src/test-utilities/index.ts +4 -0
  98. package/src/tokens/base/color/dark/dark.dimmed.json5 +1326 -0
  99. package/src/tokens/base/color/dark/dark.high-contrast.json5 +856 -0
  100. package/src/tokens/base/color/dark/dark.json5 +866 -0
  101. package/src/tokens/base/color/dark/display-dark.json5 +1774 -0
  102. package/src/tokens/base/color/light/display-light.json5 +1774 -0
  103. package/src/tokens/base/color/light/light.high-contrast.json5 +847 -0
  104. package/src/tokens/base/color/light/light.json5 +866 -0
  105. package/src/tokens/base/size/size.json +176 -0
  106. package/src/tokens/base/typography/typography.json +24 -0
  107. package/{tokens-next-private/fallbacks → src/tokens/fallback}/color-fallbacks.json +1 -1
  108. package/src/tokens/functional/border/dark.json5 +12 -0
  109. package/src/tokens/functional/border/light.json5 +12 -0
  110. package/src/tokens/functional/color/dark/app-dark.json5 +554 -0
  111. package/src/tokens/functional/color/dark/data-vis-dark.json5 +144 -0
  112. package/src/tokens/functional/color/dark/display-dark.json5 +1060 -0
  113. package/src/tokens/functional/color/dark/overrides/dark.dimmed.json5 +57 -0
  114. package/src/tokens/functional/color/dark/overrides/dark.high-contrast.json5 +390 -0
  115. package/src/tokens/functional/color/dark/overrides/dark.protanopia-deuteranopia.json5 +314 -0
  116. package/src/tokens/functional/color/dark/overrides/dark.tritanopia.json5 +229 -0
  117. package/src/tokens/functional/color/dark/patterns-dark.json5 +3073 -0
  118. package/src/tokens/functional/color/dark/primitives-dark.json5 +1206 -0
  119. package/src/tokens/functional/color/dark/syntax-dark.json5 +559 -0
  120. package/src/tokens/functional/color/light/app-light.json5 +551 -0
  121. package/src/tokens/functional/color/light/data-vis-light.json5 +144 -0
  122. package/src/tokens/functional/color/light/display-light.json5 +1060 -0
  123. package/src/tokens/functional/color/light/overrides/light.high-contrast.json5 +440 -0
  124. package/src/tokens/functional/color/light/overrides/light.protanopia-deuteranopia.json5 +340 -0
  125. package/src/tokens/functional/color/light/overrides/light.tritanopia.json5 +249 -0
  126. package/src/tokens/functional/color/light/patterns-light.json5 +3070 -0
  127. package/src/tokens/functional/color/light/primitives-light.json5 +1196 -0
  128. package/src/tokens/functional/color/light/syntax-light.json5 +559 -0
  129. package/src/tokens/functional/motion/loading.json5 +17 -0
  130. package/src/tokens/functional/motion/patterns.json5 +28 -0
  131. package/src/tokens/functional/shadow/dark.json5 +383 -0
  132. package/src/tokens/functional/shadow/light.json5 +376 -0
  133. package/src/tokens/functional/size/border.json +98 -0
  134. package/src/tokens/functional/size/breakpoints.json +64 -0
  135. package/src/tokens/functional/size/size-coarse.json +28 -0
  136. package/src/tokens/functional/size/size-fine.json +28 -0
  137. package/src/tokens/functional/size/size.json +802 -0
  138. package/src/tokens/functional/size/viewport.json +28 -0
  139. package/src/tokens/functional/typography/typography.json +279 -0
  140. package/src/transformers/borderToCss.ts +38 -0
  141. package/src/transformers/colorToHex.ts +16 -0
  142. package/src/transformers/colorToHexAlpha.ts +23 -0
  143. package/src/transformers/colorToHexMix.ts +19 -0
  144. package/src/transformers/colorToRgbAlpha.ts +19 -0
  145. package/src/transformers/colorToRgbaFloat.ts +45 -0
  146. package/src/transformers/dimensionToPixelUnitless.ts +60 -0
  147. package/src/transformers/dimensionToRem.ts +56 -0
  148. package/src/transformers/dimensionToRemPxArray.ts +60 -0
  149. package/src/transformers/durationToCss.ts +29 -0
  150. package/src/transformers/figmaAttributes.ts +55 -0
  151. package/src/transformers/fontFamilyToCss.ts +38 -0
  152. package/src/transformers/fontWeightToNumber.ts +53 -0
  153. package/src/transformers/index.ts +21 -0
  154. package/src/transformers/jsonDeprecated.ts +15 -0
  155. package/src/transformers/namePathToCamelCase.ts +14 -0
  156. package/src/transformers/namePathToDotNotation.ts +34 -0
  157. package/src/transformers/namePathToFigma.ts +28 -0
  158. package/src/transformers/namePathToKebabCase.ts +19 -0
  159. package/src/transformers/namePathToSlashNotation.ts +19 -0
  160. package/src/transformers/shadowToCss.ts +37 -0
  161. package/src/transformers/typographyToCss.ts +31 -0
  162. package/src/transformers/utilities/alpha.ts +23 -0
  163. package/src/transformers/utilities/checkRequiredTokenProperties.ts +16 -0
  164. package/src/transformers/utilities/getTokenValue.ts +18 -0
  165. package/src/transformers/utilities/hexToRgbaFloat.ts +31 -0
  166. package/src/transformers/utilities/invalidTokenError.ts +34 -0
  167. package/src/transformers/utilities/isRgbaFloat.ts +29 -0
  168. package/src/transformers/utilities/mix.ts +46 -0
  169. package/src/transformers/utilities/rgbaFloatToHex.ts +15 -0
  170. package/src/types/Border.d.ts +5 -0
  171. package/src/types/BorderTokenValue.d.ts +10 -0
  172. package/src/types/ColorHex.d.ts +4 -0
  173. package/src/types/PlatformInitializer.d.ts +11 -0
  174. package/src/types/Shadow.d.ts +5 -0
  175. package/src/types/ShadowTokenValue.d.ts +14 -0
  176. package/src/types/SizeEm.d.ts +4 -0
  177. package/src/types/SizePx.d.ts +4 -0
  178. package/src/types/SizeRem.d.ts +4 -0
  179. package/src/types/StyleDictionaryConfigGenerator.d.ts +15 -0
  180. package/src/types/TokenBuildInput.d.ts +8 -0
  181. package/src/types/TypographyTokenValue.d.ts +12 -0
  182. package/src/types/w3cTransformedToken.d.ts +8 -0
  183. package/src/utilities/copyFromDir.ts +21 -0
  184. package/src/utilities/getFlag.ts +12 -0
  185. package/src/utilities/index.ts +3 -0
  186. package/src/utilities/joinFriendly.ts +2 -0
  187. package/src/utilities/schemaErrorMessage.ts +2 -0
  188. package/src/utilities/toCamelCase.ts +29 -0
  189. package/src/utilities/treeWalker.ts +27 -0
  190. package/src/utilities/upperCaseFirstCharacter.ts +10 -0
  191. package/src/utils-v1.ts +36 -0
  192. package/tokens-v2-private/css/tokens/base/size/size.css +1 -1
  193. package/tokens-v2-private/css/tokens/base/typography/typography.css +1 -1
  194. package/tokens-v2-private/css/tokens/functional/size/border.css +1 -1
  195. package/tokens-v2-private/css/tokens/functional/size/breakpoints.css +1 -1
  196. package/tokens-v2-private/css/tokens/functional/size/size-coarse.css +1 -1
  197. package/tokens-v2-private/css/tokens/functional/size/size-fine.css +1 -1
  198. package/tokens-v2-private/css/tokens/functional/size/size.css +1 -1
  199. package/tokens-v2-private/css/tokens/functional/typography/typography.css +1 -1
  200. package/tokens-v2-private/js/module/tokens/base/size/size.js +1 -1
  201. package/tokens-v2-private/js/module/tokens/base/typography/typography.js +1 -1
  202. package/tokens-v2-private/js/module/tokens/functional/size/border.js +1 -1
  203. package/tokens-v2-private/js/module/tokens/functional/size/breakpoints.js +1 -1
  204. package/tokens-v2-private/js/module/tokens/functional/size/size-coarse.js +1 -1
  205. package/tokens-v2-private/js/module/tokens/functional/size/size-fine.js +1 -1
  206. package/tokens-v2-private/js/module/tokens/functional/size/size.js +1 -1
  207. package/tokens-v2-private/js/module/tokens/functional/size/viewport.js +1 -1
  208. package/tokens-v2-private/js/module/tokens/functional/typography/typography.js +1 -1
  209. package/tokens-v2-private/js/tokens/base/size/size.js +1 -1
  210. package/tokens-v2-private/js/tokens/base/typography/typography.js +1 -1
  211. package/tokens-v2-private/js/tokens/functional/size/border.js +1 -1
  212. package/tokens-v2-private/js/tokens/functional/size/breakpoints.js +1 -1
  213. package/tokens-v2-private/js/tokens/functional/size/size-coarse.js +1 -1
  214. package/tokens-v2-private/js/tokens/functional/size/size-fine.js +1 -1
  215. package/tokens-v2-private/js/tokens/functional/size/size.js +1 -1
  216. package/tokens-v2-private/js/tokens/functional/size/viewport.js +1 -1
  217. package/tokens-v2-private/js/tokens/functional/typography/typography.js +1 -1
  218. package/tokens-v2-private/scss/tokens/base/size/size.scss +1 -1
  219. package/tokens-v2-private/scss/tokens/base/typography/typography.scss +1 -1
  220. package/tokens-v2-private/scss/tokens/functional/size/border.scss +1 -1
  221. package/tokens-v2-private/scss/tokens/functional/size/breakpoints.scss +1 -1
  222. package/tokens-v2-private/scss/tokens/functional/size/size-coarse.scss +1 -1
  223. package/tokens-v2-private/scss/tokens/functional/size/size-fine.scss +1 -1
  224. package/tokens-v2-private/scss/tokens/functional/size/size.scss +1 -1
  225. package/tokens-v2-private/scss/tokens/functional/size/viewport.scss +1 -1
  226. package/tokens-v2-private/scss/tokens/functional/typography/typography.scss +1 -1
  227. package/tokens-v2-private/ts/tokens/base/size/size.d.ts +1 -1
  228. package/tokens-v2-private/ts/tokens/base/size/size.js +1 -1
  229. package/tokens-v2-private/ts/tokens/base/typography/typography.d.ts +1 -1
  230. package/tokens-v2-private/ts/tokens/base/typography/typography.js +1 -1
  231. package/tokens-v2-private/ts/tokens/functional/size/border.d.ts +1 -1
  232. package/tokens-v2-private/ts/tokens/functional/size/border.js +1 -1
  233. package/tokens-v2-private/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  234. package/tokens-v2-private/ts/tokens/functional/size/breakpoints.js +1 -1
  235. package/tokens-v2-private/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  236. package/tokens-v2-private/ts/tokens/functional/size/size-coarse.js +1 -1
  237. package/tokens-v2-private/ts/tokens/functional/size/size-fine.d.ts +1 -1
  238. package/tokens-v2-private/ts/tokens/functional/size/size-fine.js +1 -1
  239. package/tokens-v2-private/ts/tokens/functional/size/size.d.ts +1 -1
  240. package/tokens-v2-private/ts/tokens/functional/size/size.js +1 -1
  241. package/tokens-v2-private/ts/tokens/functional/size/viewport.d.ts +1 -1
  242. package/tokens-v2-private/ts/tokens/functional/size/viewport.js +1 -1
  243. package/tokens-v2-private/ts/tokens/functional/typography/typography.d.ts +1 -1
  244. package/tokens-v2-private/ts/tokens/functional/typography/typography.js +1 -1
  245. package/dist/deprecated/colors.json +0 -7
  246. package/dist/js/colors/dark.d.ts +0 -516
  247. package/dist/js/colors/dark.js +0 -616
  248. package/dist/js/colors/dark_colorblind.d.ts +0 -516
  249. package/dist/js/colors/dark_colorblind.js +0 -616
  250. package/dist/js/colors/dark_dimmed.d.ts +0 -516
  251. package/dist/js/colors/dark_dimmed.js +0 -616
  252. package/dist/js/colors/dark_high_contrast.d.ts +0 -516
  253. package/dist/js/colors/dark_high_contrast.js +0 -616
  254. package/dist/js/colors/dark_tritanopia.d.ts +0 -516
  255. package/dist/js/colors/dark_tritanopia.js +0 -616
  256. package/dist/js/colors/index.d.ts +0 -4638
  257. package/dist/js/colors/index.js +0 -15
  258. package/dist/js/colors/light.d.ts +0 -516
  259. package/dist/js/colors/light.js +0 -616
  260. package/dist/js/colors/light_colorblind.d.ts +0 -516
  261. package/dist/js/colors/light_colorblind.js +0 -616
  262. package/dist/js/colors/light_high_contrast.d.ts +0 -516
  263. package/dist/js/colors/light_high_contrast.js +0 -616
  264. package/dist/js/colors/light_tritanopia.d.ts +0 -516
  265. package/dist/js/colors/light_tritanopia.js +0 -616
  266. package/dist/js/index.d.ts +0 -4655
  267. package/dist/js/index.js +0 -9
  268. package/dist/js/spacing/index.d.ts +0 -6
  269. package/dist/js/spacing/index.js +0 -7
  270. package/dist/js/spacing/normal.d.ts +0 -4
  271. package/dist/js/spacing/normal.js +0 -13
  272. package/dist/js/typography/index.d.ts +0 -11
  273. package/dist/js/typography/index.js +0 -7
  274. package/dist/js/typography/normal.d.ts +0 -9
  275. package/dist/js/typography/normal.js +0 -19
  276. package/dist/json/colors/dark.json +0 -614
  277. package/dist/json/colors/dark_colorblind.json +0 -614
  278. package/dist/json/colors/dark_dimmed.json +0 -614
  279. package/dist/json/colors/dark_high_contrast.json +0 -614
  280. package/dist/json/colors/dark_tritanopia.json +0 -614
  281. package/dist/json/colors/light.json +0 -614
  282. package/dist/json/colors/light_colorblind.json +0 -614
  283. package/dist/json/colors/light_high_contrast.json +0 -614
  284. package/dist/json/colors/light_tritanopia.json +0 -614
  285. package/dist/json/spacing/normal.json +0 -11
  286. package/dist/json/typography/normal.json +0 -17
  287. package/dist/removed/colors.json +0 -432
  288. package/dist/scss/colors/_dark.scss +0 -452
  289. package/dist/scss/colors/_dark_colorblind.scss +0 -452
  290. package/dist/scss/colors/_dark_dimmed.scss +0 -452
  291. package/dist/scss/colors/_dark_high_contrast.scss +0 -452
  292. package/dist/scss/colors/_dark_tritanopia.scss +0 -452
  293. package/dist/scss/colors/_light.scss +0 -452
  294. package/dist/scss/colors/_light_colorblind.scss +0 -452
  295. package/dist/scss/colors/_light_high_contrast.scss +0 -452
  296. package/dist/scss/colors/_light_tritanopia.scss +0 -452
  297. package/dist/scss/spacing/_normal.scss +0 -11
  298. package/dist/scss/typography/_normal.scss +0 -15
  299. package/dist/ts/colors/dark.ts +0 -614
  300. package/dist/ts/colors/dark_colorblind.ts +0 -614
  301. package/dist/ts/colors/dark_dimmed.ts +0 -614
  302. package/dist/ts/colors/dark_high_contrast.ts +0 -614
  303. package/dist/ts/colors/dark_tritanopia.ts +0 -614
  304. package/dist/ts/colors/index.ts +0 -10
  305. package/dist/ts/colors/light.ts +0 -614
  306. package/dist/ts/colors/light_colorblind.ts +0 -614
  307. package/dist/ts/colors/light_high_contrast.ts +0 -614
  308. package/dist/ts/colors/light_tritanopia.ts +0 -614
  309. package/dist/ts/index.ts +0 -4
  310. package/dist/ts/spacing/index.ts +0 -2
  311. package/dist/ts/spacing/normal.ts +0 -11
  312. package/dist/ts/typography/index.ts +0 -2
  313. package/dist/ts/typography/normal.ts +0 -17
  314. package/tokens-next-private/css/base/size/size.css +0 -19
  315. package/tokens-next-private/css/base/typography/typography.css +0 -6
  316. package/tokens-next-private/css/functional/motion/motion.css +0 -5
  317. package/tokens-next-private/css/functional/size/border.css +0 -14
  318. package/tokens-next-private/css/functional/size/breakpoints.css +0 -8
  319. package/tokens-next-private/css/functional/size/size-coarse.css +0 -7
  320. package/tokens-next-private/css/functional/size/size-fine.css +0 -7
  321. package/tokens-next-private/css/functional/size/size.css +0 -74
  322. package/tokens-next-private/css/functional/size/viewport.css +0 -6
  323. package/tokens-next-private/css/functional/themes/dark-colorblind.css +0 -1078
  324. package/tokens-next-private/css/functional/themes/dark-dimmed.css +0 -1078
  325. package/tokens-next-private/css/functional/themes/dark-high-contrast.css +0 -1078
  326. package/tokens-next-private/css/functional/themes/dark-tritanopia.css +0 -1078
  327. package/tokens-next-private/css/functional/themes/dark.css +0 -1078
  328. package/tokens-next-private/css/functional/themes/light-colorblind.css +0 -1078
  329. package/tokens-next-private/css/functional/themes/light-high-contrast.css +0 -1078
  330. package/tokens-next-private/css/functional/themes/light-tritanopia.css +0 -1078
  331. package/tokens-next-private/css/functional/themes/light.css +0 -1078
  332. package/tokens-next-private/css/functional/typography/typography.css +0 -47
  333. package/tokens-next-private/fallbacks/base/size/size.json +0 -19
  334. package/tokens-next-private/fallbacks/base/typography/typography.json +0 -6
  335. package/tokens-next-private/fallbacks/functional/motion/motion.json +0 -5
  336. package/tokens-next-private/fallbacks/functional/size/border.json +0 -14
  337. package/tokens-next-private/fallbacks/functional/size/breakpoints.json +0 -8
  338. package/tokens-next-private/fallbacks/functional/size/size-coarse.json +0 -5
  339. package/tokens-next-private/fallbacks/functional/size/size-fine.json +0 -5
  340. package/tokens-next-private/fallbacks/functional/size/size.json +0 -74
  341. package/tokens-next-private/fallbacks/functional/size/viewport.json +0 -8
  342. package/tokens-next-private/fallbacks/functional/typography/typography.json +0 -47
  343. package/tokens-next-private/internalCss/dark-colorblind.css +0 -1648
  344. package/tokens-next-private/internalCss/dark-dimmed.css +0 -1648
  345. package/tokens-next-private/internalCss/dark-high-contrast.css +0 -1648
  346. package/tokens-next-private/internalCss/dark-tritanopia.css +0 -1648
  347. package/tokens-next-private/internalCss/dark.css +0 -1648
  348. package/tokens-next-private/internalCss/light-colorblind.css +0 -1648
  349. package/tokens-next-private/internalCss/light-high-contrast.css +0 -1648
  350. package/tokens-next-private/internalCss/light-tritanopia.css +0 -1648
  351. package/tokens-next-private/internalCss/light.css +0 -1648
  352. /package/{tokens-next-private/docs → dist/styleLint}/base/typography/typography.json +0 -0
  353. /package/{tokens-next-private/docs → dist/styleLint}/functional/motion/motion.json +0 -0
  354. /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-dimmed.json +0 -0
  355. /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-high-contrast.json +0 -0
  356. /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light-colorblind.json +0 -0
  357. /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light-high-contrast.json +0 -0
  358. /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light-tritanopia.json +0 -0
  359. /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light.json +0 -0
  360. /package/{tokens-next-private → src/tokens}/removed/color.json +0 -0
@@ -0,0 +1,10 @@
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'
@@ -0,0 +1,30 @@
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
+ })
@@ -0,0 +1,32 @@
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
+ })
@@ -0,0 +1,34 @@
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
+ })
@@ -0,0 +1,30 @@
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
+ })
@@ -0,0 +1,30 @@
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
+ })
@@ -0,0 +1,12 @@
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
+ )
@@ -0,0 +1,7 @@
1
+ import {z} from 'zod'
2
+
3
+ export const baseToken = z
4
+ .object({
5
+ $description: z.string().optional(),
6
+ })
7
+ .strict()
@@ -0,0 +1,19 @@
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()
@@ -0,0 +1,49 @@
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
+ }
@@ -0,0 +1,18 @@
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
+ )
@@ -0,0 +1,50 @@
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']).optional(),
46
+ }),
47
+ })
48
+ .optional(),
49
+ })
50
+ .strict()
@@ -0,0 +1,38 @@
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(() => {
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
+ )
@@ -0,0 +1,22 @@
1
+ import {z} from 'zod'
2
+ import {baseToken} from './baseToken'
3
+ import {referenceValue} from './referenceValue'
4
+ import {collection} from './collections'
5
+ import {scopes} from './scopes'
6
+ import {dimensionValue} from './dimensionValue'
7
+ import {tokenType} from './tokenType'
8
+
9
+ export const dimensionToken = baseToken
10
+ .extend({
11
+ $value: z.union([dimensionValue, referenceValue]),
12
+ $type: tokenType('dimension'),
13
+ $extensions: z
14
+ .object({
15
+ 'org.primer.figma': z.object({
16
+ collection: collection(['base/size', 'functional/size', 'pattern/size', 'typography']),
17
+ scopes: scopes(['all', 'size', 'gap', 'radius', 'borderColor']),
18
+ }),
19
+ })
20
+ .optional(),
21
+ })
22
+ .strict()
@@ -0,0 +1,16 @@
1
+ import {z} from 'zod'
2
+ import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
+
4
+ export const dimensionValue = z.union([
5
+ z.string().refine(
6
+ dim => /(^-?[0-9]+(px|rem)$|^-?[0-9]+\.?[0-9]*em$)/.test(dim),
7
+ val => ({
8
+ message: schemaErrorMessage(
9
+ `Invalid dimension: "${val}"`,
10
+ `Dimension must be a string with a unit (px, rem or em) or 0`,
11
+ ),
12
+ }),
13
+ ),
14
+ z.literal('0'),
15
+ z.literal(0),
16
+ ])
@@ -0,0 +1,12 @@
1
+ import {z} from 'zod'
2
+ import {baseToken} from './baseToken'
3
+ import {referenceValue} from './referenceValue'
4
+ import {durationValue} from './durationValue'
5
+ import {tokenType} from './tokenType'
6
+
7
+ export const durationToken = baseToken
8
+ .extend({
9
+ $value: z.union([durationValue, referenceValue]),
10
+ $type: tokenType('duration'),
11
+ })
12
+ .strict()
@@ -0,0 +1,9 @@
1
+ import {z} from 'zod'
2
+ import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
+
4
+ export const durationValue = z.string().refine(
5
+ duration => /(^[0-9]+ms$)/.test(duration),
6
+ val => ({
7
+ message: schemaErrorMessage(`Invalid duration: "${val}"`, `A duration must be a string with an "ms"`),
8
+ }),
9
+ )
@@ -0,0 +1,21 @@
1
+ import {z} from 'zod'
2
+ import {referenceValue} from './referenceValue'
3
+ import {baseToken} from './baseToken'
4
+ import {tokenType} from './tokenType'
5
+ import {collection} from './collections'
6
+ import {scopes} from './scopes'
7
+
8
+ export const fontFamilyToken = baseToken
9
+ .extend({
10
+ $value: z.union([z.string(), referenceValue]),
11
+ $type: tokenType('fontFamily'),
12
+ $extensions: z
13
+ .object({
14
+ 'org.primer.figma': z.object({
15
+ collection: collection(['base/typography', 'typography']).optional(),
16
+ scopes: scopes(['all']).optional(),
17
+ }),
18
+ })
19
+ .optional(),
20
+ })
21
+ .strict()
@@ -0,0 +1,22 @@
1
+ import {z} from 'zod'
2
+ import {fontWeightValue} from './fontWeightValue'
3
+ import {referenceValue} from './referenceValue'
4
+ import {baseToken} from './baseToken'
5
+ import {tokenType} from './tokenType'
6
+ import {collection} from './collections'
7
+ import {scopes} from './scopes'
8
+
9
+ export const fontWeightToken = baseToken
10
+ .extend({
11
+ $type: tokenType('fontWeight'),
12
+ $value: z.union([fontWeightValue, referenceValue]),
13
+ $extensions: z
14
+ .object({
15
+ 'org.primer.figma': z.object({
16
+ collection: collection(['base/typography', 'typography']).optional(),
17
+ scopes: scopes(['all']).optional(),
18
+ }),
19
+ })
20
+ .optional(),
21
+ })
22
+ .strict()
@@ -0,0 +1,14 @@
1
+ import {z} from 'zod'
2
+ import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
+
4
+ const allowed = [100, 200, 300, 400, 500, 600, 700, 800, 900, 950]
5
+
6
+ export const fontWeightValue = z.number().refine(
7
+ value => allowed.includes(value),
8
+ value => ({
9
+ message: schemaErrorMessage(
10
+ `Invalid font weight value: "${value}"`,
11
+ `Font weight must be one of ${allowed.join(', ')}`,
12
+ ),
13
+ }),
14
+ )
@@ -0,0 +1,11 @@
1
+ import {z} from 'zod'
2
+ import {baseToken} from './baseToken'
3
+ import {referenceValue} from './referenceValue'
4
+ import {tokenType} from './tokenType'
5
+
6
+ export const numberToken = baseToken
7
+ .extend({
8
+ $value: z.union([z.number(), referenceValue]),
9
+ $type: tokenType('number'),
10
+ })
11
+ .strict()
@@ -0,0 +1,12 @@
1
+ import {z} from 'zod'
2
+ import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
+
4
+ export const referenceValue = z.string().refine(
5
+ ref => /^{\w+(\.\w+)*(\.\w+|\.@)}$/.test(ref),
6
+ ref => ({
7
+ message: schemaErrorMessage(
8
+ `Invalid reference: "${ref}"`,
9
+ 'Reference must be a string in the format "{path.to.token}".',
10
+ ),
11
+ }),
12
+ )
@@ -0,0 +1,16 @@
1
+ import {z} from 'zod'
2
+ import {joinFriendly} from '../utilities/joinFriendly'
3
+ import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
4
+
5
+ export type ValidScope = 'all' | 'bgColor' | 'fgColor' | 'borderColor' | 'size' | 'gap' | 'radius' | 'effectColor'
6
+ const validScopes: ValidScope[] = ['all', 'bgColor', 'fgColor', 'borderColor', 'size', 'gap', 'radius', 'effectColor']
7
+
8
+ export const scopes = (scopeSubset?: ValidScope[]) => {
9
+ const scopeArray = scopeSubset ?? validScopes
10
+ return z.array(z.string()).refine(
11
+ value => value.every(item => scopeArray.includes(item as ValidScope)),
12
+ value => ({
13
+ message: schemaErrorMessage(`Invalid scope: "${value}"`, `Valid scopes are: ${joinFriendly(scopeArray)}`),
14
+ }),
15
+ )
16
+ }
@@ -0,0 +1,45 @@
1
+ import {z} from 'zod'
2
+ import {baseToken} from './baseToken'
3
+ import {referenceValue} from './referenceValue'
4
+ import {colorHexValue} from './colorHexValue'
5
+ import {alphaValue} from './alphaValue'
6
+ import {dimensionValue} from './dimensionValue'
7
+ import {tokenType} from './tokenType'
8
+ import {collection, mode} from './collections'
9
+
10
+ export const shadowValue = z
11
+ .object({
12
+ color: z.union([colorHexValue, referenceValue]),
13
+ alpha: z.union([alphaValue, referenceValue]),
14
+ offsetX: z.union([dimensionValue, referenceValue]),
15
+ offsetY: z.union([dimensionValue, referenceValue]),
16
+ blur: z.union([dimensionValue, referenceValue]),
17
+ spread: z.union([dimensionValue, referenceValue]),
18
+ inset: z.boolean().optional(),
19
+ })
20
+ .strict()
21
+
22
+ export const shadowToken = baseToken
23
+ .extend({
24
+ $value: z.union([shadowValue, z.array(shadowValue), referenceValue]),
25
+ $type: tokenType('shadow'),
26
+ $extensions: z
27
+ .object({
28
+ 'org.primer.figma': z.object({
29
+ collection: collection(['mode']).optional(),
30
+ mode: mode([
31
+ 'light',
32
+ 'dark',
33
+ 'dark dimmed',
34
+ 'light high contrast',
35
+ 'dark high contrast',
36
+ 'light colorblind',
37
+ 'dark colorblind',
38
+ 'light tritanopia',
39
+ 'dark tritanopia',
40
+ ]).optional(),
41
+ }),
42
+ })
43
+ .optional(),
44
+ })
45
+ .strict()
@@ -0,0 +1,11 @@
1
+ import {z} from 'zod'
2
+ import {baseToken} from './baseToken'
3
+ import {referenceValue} from './referenceValue'
4
+ import {tokenType} from './tokenType'
5
+
6
+ export const stringToken = baseToken
7
+ .extend({
8
+ $value: z.union([z.string(), referenceValue]),
9
+ $type: tokenType('string'),
10
+ })
11
+ .strict()
@@ -0,0 +1,12 @@
1
+ import {z} from 'zod'
2
+ import {schemaErrorMessage} from '../utilities/schemaErrorMessage'
3
+
4
+ export const tokenName = z.string().refine(
5
+ name => /(^[a-z0-9][A-Za-z0-9-]*$|^@$)/.test(name),
6
+ name => ({
7
+ message: schemaErrorMessage(
8
+ `Invalid token name: "${name}"`,
9
+ 'Token name must be kebab-case or camelCase, and start with a lowercase letter or number and consist only of letters, numbers, and hyphens.',
10
+ ),
11
+ }),
12
+ )
@@ -0,0 +1,4 @@
1
+ import {z} from 'zod'
2
+ import type {TokenType} from './validTokenType'
3
+
4
+ export const tokenType = ($type: TokenType) => z.literal($type)
@@ -0,0 +1,20 @@
1
+ import {z} from 'zod'
2
+ import {referenceValue} from './referenceValue'
3
+ import {dimensionValue} from './dimensionValue'
4
+ import {baseToken} from './baseToken'
5
+ import {fontWeightValue} from './fontWeightValue'
6
+ import {tokenType} from './tokenType'
7
+
8
+ export const typographyValue = z.object({
9
+ fontSize: z.union([dimensionValue, referenceValue]),
10
+ lineHeight: z.union([dimensionValue, referenceValue]).optional(),
11
+ fontWeight: z.union([fontWeightValue, referenceValue]),
12
+ fontFamily: z.union([z.string().min(1), referenceValue]),
13
+ })
14
+
15
+ export const typographyToken = baseToken
16
+ .extend({
17
+ $value: z.union([typographyValue, referenceValue]),
18
+ $type: tokenType('typography'),
19
+ })
20
+ .strict()