@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.
- package/dist/css/functional/themes/dark-colorblind.css +14 -14
- package/dist/css/functional/themes/dark-tritanopia.css +14 -14
- package/dist/css/functional/themes/dark.css +14 -14
- package/dist/docs/functional/themes/dark-colorblind.json +7 -7
- package/dist/docs/functional/themes/dark-tritanopia.json +7 -7
- package/dist/docs/functional/themes/dark.json +7 -7
- package/dist/figma/scales/dark.json +5 -5
- package/dist/figma/themes/dark-colorblind.json +20 -20
- package/dist/figma/themes/dark-tritanopia.json +20 -20
- package/dist/figma/themes/dark.json +20 -20
- package/dist/internalCss/dark-colorblind.css +18 -18
- package/dist/internalCss/dark-tritanopia.css +18 -18
- package/dist/internalCss/dark.css +18 -18
- package/{tokens-next-private/docs → dist/styleLint}/base/size/size.json +17 -17
- package/{tokens-next-private/docs → dist/styleLint}/functional/size/border.json +6 -6
- package/{tokens-next-private/docs → dist/styleLint}/functional/size/breakpoints.json +6 -6
- package/{tokens-next-private/docs → dist/styleLint}/functional/size/size-coarse.json +3 -3
- package/{tokens-next-private/docs → dist/styleLint}/functional/size/size-fine.json +3 -3
- package/{tokens-next-private/docs → dist/styleLint}/functional/size/size.json +72 -72
- package/{tokens-next-private/docs → dist/styleLint}/functional/size/viewport.json +4 -4
- package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-colorblind.json +7 -7
- package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-tritanopia.json +7 -7
- package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark.json +7 -7
- package/{tokens-next-private/docs → dist/styleLint}/functional/typography/typography.json +23 -23
- package/package.json +12 -11
- package/src/PrimerStyleDictionary.ts +226 -0
- package/src/filters/index.ts +12 -0
- package/src/filters/isBorder.ts +10 -0
- package/src/filters/isColor.ts +10 -0
- package/src/filters/isColorWithAlpha.ts +11 -0
- package/src/filters/isColorWithMix.ts +33 -0
- package/src/filters/isDeprecated.ts +10 -0
- package/src/filters/isDimension.ts +10 -0
- package/src/filters/isDuration.ts +10 -0
- package/src/filters/isFontFamily.ts +10 -0
- package/src/filters/isFontWeight.ts +10 -0
- package/src/filters/isFromFile.ts +12 -0
- package/src/filters/isShadow.ts +10 -0
- package/src/filters/isSource.ts +10 -0
- package/src/filters/isTypography.ts +10 -0
- package/src/formats/cssCustomMedia.ts +24 -0
- package/src/formats/cssThemed.ts +35 -0
- package/src/formats/cssVariables.ts +25 -0
- package/src/formats/cssWrapMediaQuery.ts +29 -0
- package/src/formats/index.ts +11 -0
- package/src/formats/javascriptCommonJs.ts +21 -0
- package/src/formats/javascriptEsm.ts +21 -0
- package/src/formats/jsonFigma.ts +133 -0
- package/src/formats/jsonNestedPrefixed.ts +23 -0
- package/src/formats/jsonOneDimensional.ts +18 -0
- package/src/formats/jsonPostCssFallback.ts +16 -0
- package/src/formats/typescriptExportDefinition.ts +170 -0
- package/src/formats/utilities/jsonToFlat.ts +10 -0
- package/src/formats/utilities/jsonToNestedValue.ts +20 -0
- package/src/formats/utilities/prefixTokens.ts +17 -0
- package/src/parsers/index.ts +1 -0
- package/src/parsers/w3cJsonParser.ts +25 -0
- package/src/platforms/css.ts +93 -0
- package/src/platforms/deprecatedJson.ts +16 -0
- package/src/platforms/docJson.ts +34 -0
- package/src/platforms/fallbacks.ts +34 -0
- package/src/platforms/figma.ts +48 -0
- package/src/platforms/index.ts +10 -0
- package/src/platforms/javascript.ts +30 -0
- package/src/platforms/json.ts +32 -0
- package/src/platforms/styleLint.ts +34 -0
- package/src/platforms/typeDefinitions.ts +30 -0
- package/src/platforms/typescript.ts +30 -0
- package/src/schemas/alphaValue.ts +12 -0
- package/src/schemas/baseToken.ts +7 -0
- package/src/schemas/borderToken.ts +19 -0
- package/src/schemas/collections.ts +49 -0
- package/src/schemas/colorHexValue.ts +18 -0
- package/src/schemas/colorToken.ts +50 -0
- package/src/schemas/designToken.ts +38 -0
- package/src/schemas/dimensionToken.ts +22 -0
- package/src/schemas/dimensionValue.ts +16 -0
- package/src/schemas/durationToken.ts +12 -0
- package/src/schemas/durationValue.ts +9 -0
- package/src/schemas/fontFamilyToken.ts +21 -0
- package/src/schemas/fontWeightToken.ts +22 -0
- package/src/schemas/fontWeightValue.ts +14 -0
- package/src/schemas/numberToken.ts +11 -0
- package/src/schemas/referenceValue.ts +12 -0
- package/src/schemas/scopes.ts +16 -0
- package/src/schemas/shadowToken.ts +45 -0
- package/src/schemas/stringToken.ts +11 -0
- package/src/schemas/tokenName.ts +12 -0
- package/src/schemas/tokenType.ts +4 -0
- package/src/schemas/typographyToken.ts +20 -0
- package/src/schemas/validTokenType.ts +44 -0
- package/src/schemas/viewportRangeToken.ts +11 -0
- package/src/test-utilities/getMockDictionary.ts +22 -0
- package/src/test-utilities/getMockFormatterArguments.ts +21 -0
- package/src/test-utilities/getMockParserInput.ts +72 -0
- package/src/test-utilities/getMockToken.ts +25 -0
- package/src/test-utilities/index.ts +4 -0
- package/src/tokens/base/color/dark/dark.dimmed.json5 +1326 -0
- package/src/tokens/base/color/dark/dark.high-contrast.json5 +856 -0
- package/src/tokens/base/color/dark/dark.json5 +866 -0
- package/src/tokens/base/color/dark/display-dark.json5 +1774 -0
- package/src/tokens/base/color/light/display-light.json5 +1774 -0
- package/src/tokens/base/color/light/light.high-contrast.json5 +847 -0
- package/src/tokens/base/color/light/light.json5 +866 -0
- package/src/tokens/base/size/size.json +176 -0
- package/src/tokens/base/typography/typography.json +24 -0
- package/{tokens-next-private/fallbacks → src/tokens/fallback}/color-fallbacks.json +1 -1
- package/src/tokens/functional/border/dark.json5 +12 -0
- package/src/tokens/functional/border/light.json5 +12 -0
- package/src/tokens/functional/color/dark/app-dark.json5 +554 -0
- package/src/tokens/functional/color/dark/data-vis-dark.json5 +144 -0
- package/src/tokens/functional/color/dark/display-dark.json5 +1060 -0
- package/src/tokens/functional/color/dark/overrides/dark.dimmed.json5 +57 -0
- package/src/tokens/functional/color/dark/overrides/dark.high-contrast.json5 +390 -0
- package/src/tokens/functional/color/dark/overrides/dark.protanopia-deuteranopia.json5 +314 -0
- package/src/tokens/functional/color/dark/overrides/dark.tritanopia.json5 +229 -0
- package/src/tokens/functional/color/dark/patterns-dark.json5 +3073 -0
- package/src/tokens/functional/color/dark/primitives-dark.json5 +1206 -0
- package/src/tokens/functional/color/dark/syntax-dark.json5 +559 -0
- package/src/tokens/functional/color/light/app-light.json5 +551 -0
- package/src/tokens/functional/color/light/data-vis-light.json5 +144 -0
- package/src/tokens/functional/color/light/display-light.json5 +1060 -0
- package/src/tokens/functional/color/light/overrides/light.high-contrast.json5 +440 -0
- package/src/tokens/functional/color/light/overrides/light.protanopia-deuteranopia.json5 +340 -0
- package/src/tokens/functional/color/light/overrides/light.tritanopia.json5 +249 -0
- package/src/tokens/functional/color/light/patterns-light.json5 +3070 -0
- package/src/tokens/functional/color/light/primitives-light.json5 +1196 -0
- package/src/tokens/functional/color/light/syntax-light.json5 +559 -0
- package/src/tokens/functional/motion/loading.json5 +17 -0
- package/src/tokens/functional/motion/patterns.json5 +28 -0
- package/src/tokens/functional/shadow/dark.json5 +383 -0
- package/src/tokens/functional/shadow/light.json5 +376 -0
- package/src/tokens/functional/size/border.json +98 -0
- package/src/tokens/functional/size/breakpoints.json +64 -0
- package/src/tokens/functional/size/size-coarse.json +28 -0
- package/src/tokens/functional/size/size-fine.json +28 -0
- package/src/tokens/functional/size/size.json +802 -0
- package/src/tokens/functional/size/viewport.json +28 -0
- package/src/tokens/functional/typography/typography.json +279 -0
- package/src/transformers/borderToCss.ts +38 -0
- package/src/transformers/colorToHex.ts +16 -0
- package/src/transformers/colorToHexAlpha.ts +23 -0
- package/src/transformers/colorToHexMix.ts +19 -0
- package/src/transformers/colorToRgbAlpha.ts +19 -0
- package/src/transformers/colorToRgbaFloat.ts +45 -0
- package/src/transformers/dimensionToPixelUnitless.ts +60 -0
- package/src/transformers/dimensionToRem.ts +56 -0
- package/src/transformers/dimensionToRemPxArray.ts +60 -0
- package/src/transformers/durationToCss.ts +29 -0
- package/src/transformers/figmaAttributes.ts +55 -0
- package/src/transformers/fontFamilyToCss.ts +38 -0
- package/src/transformers/fontWeightToNumber.ts +53 -0
- package/src/transformers/index.ts +21 -0
- package/src/transformers/jsonDeprecated.ts +15 -0
- package/src/transformers/namePathToCamelCase.ts +14 -0
- package/src/transformers/namePathToDotNotation.ts +34 -0
- package/src/transformers/namePathToFigma.ts +28 -0
- package/src/transformers/namePathToKebabCase.ts +19 -0
- package/src/transformers/namePathToSlashNotation.ts +19 -0
- package/src/transformers/shadowToCss.ts +37 -0
- package/src/transformers/typographyToCss.ts +31 -0
- package/src/transformers/utilities/alpha.ts +23 -0
- package/src/transformers/utilities/checkRequiredTokenProperties.ts +16 -0
- package/src/transformers/utilities/getTokenValue.ts +18 -0
- package/src/transformers/utilities/hexToRgbaFloat.ts +31 -0
- package/src/transformers/utilities/invalidTokenError.ts +34 -0
- package/src/transformers/utilities/isRgbaFloat.ts +29 -0
- package/src/transformers/utilities/mix.ts +46 -0
- package/src/transformers/utilities/rgbaFloatToHex.ts +15 -0
- package/src/types/Border.d.ts +5 -0
- package/src/types/BorderTokenValue.d.ts +10 -0
- package/src/types/ColorHex.d.ts +4 -0
- package/src/types/PlatformInitializer.d.ts +11 -0
- package/src/types/Shadow.d.ts +5 -0
- package/src/types/ShadowTokenValue.d.ts +14 -0
- package/src/types/SizeEm.d.ts +4 -0
- package/src/types/SizePx.d.ts +4 -0
- package/src/types/SizeRem.d.ts +4 -0
- package/src/types/StyleDictionaryConfigGenerator.d.ts +15 -0
- package/src/types/TokenBuildInput.d.ts +8 -0
- package/src/types/TypographyTokenValue.d.ts +12 -0
- package/src/types/w3cTransformedToken.d.ts +8 -0
- package/src/utilities/copyFromDir.ts +21 -0
- package/src/utilities/getFlag.ts +12 -0
- package/src/utilities/index.ts +3 -0
- package/src/utilities/joinFriendly.ts +2 -0
- package/src/utilities/schemaErrorMessage.ts +2 -0
- package/src/utilities/toCamelCase.ts +29 -0
- package/src/utilities/treeWalker.ts +27 -0
- package/src/utilities/upperCaseFirstCharacter.ts +10 -0
- package/src/utils-v1.ts +36 -0
- package/tokens-v2-private/css/tokens/base/size/size.css +1 -1
- package/tokens-v2-private/css/tokens/base/typography/typography.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/border.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/breakpoints.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/size-coarse.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/size-fine.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/size.css +1 -1
- package/tokens-v2-private/css/tokens/functional/typography/typography.css +1 -1
- package/tokens-v2-private/js/module/tokens/base/size/size.js +1 -1
- package/tokens-v2-private/js/module/tokens/base/typography/typography.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/border.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/breakpoints.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/size-coarse.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/size-fine.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/size.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/viewport.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/typography/typography.js +1 -1
- package/tokens-v2-private/js/tokens/base/size/size.js +1 -1
- package/tokens-v2-private/js/tokens/base/typography/typography.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/border.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/breakpoints.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/size-coarse.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/size-fine.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/size.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/viewport.js +1 -1
- package/tokens-v2-private/js/tokens/functional/typography/typography.js +1 -1
- package/tokens-v2-private/scss/tokens/base/size/size.scss +1 -1
- package/tokens-v2-private/scss/tokens/base/typography/typography.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/border.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/breakpoints.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/size-coarse.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/size-fine.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/size.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/viewport.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/typography/typography.scss +1 -1
- package/tokens-v2-private/ts/tokens/base/size/size.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/base/size/size.js +1 -1
- package/tokens-v2-private/ts/tokens/base/typography/typography.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/base/typography/typography.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/border.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/border.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/breakpoints.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/breakpoints.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-coarse.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-coarse.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-fine.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-fine.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/viewport.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/viewport.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/typography/typography.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/typography/typography.js +1 -1
- package/dist/deprecated/colors.json +0 -7
- package/dist/js/colors/dark.d.ts +0 -516
- package/dist/js/colors/dark.js +0 -616
- package/dist/js/colors/dark_colorblind.d.ts +0 -516
- package/dist/js/colors/dark_colorblind.js +0 -616
- package/dist/js/colors/dark_dimmed.d.ts +0 -516
- package/dist/js/colors/dark_dimmed.js +0 -616
- package/dist/js/colors/dark_high_contrast.d.ts +0 -516
- package/dist/js/colors/dark_high_contrast.js +0 -616
- package/dist/js/colors/dark_tritanopia.d.ts +0 -516
- package/dist/js/colors/dark_tritanopia.js +0 -616
- package/dist/js/colors/index.d.ts +0 -4638
- package/dist/js/colors/index.js +0 -15
- package/dist/js/colors/light.d.ts +0 -516
- package/dist/js/colors/light.js +0 -616
- package/dist/js/colors/light_colorblind.d.ts +0 -516
- package/dist/js/colors/light_colorblind.js +0 -616
- package/dist/js/colors/light_high_contrast.d.ts +0 -516
- package/dist/js/colors/light_high_contrast.js +0 -616
- package/dist/js/colors/light_tritanopia.d.ts +0 -516
- package/dist/js/colors/light_tritanopia.js +0 -616
- package/dist/js/index.d.ts +0 -4655
- package/dist/js/index.js +0 -9
- package/dist/js/spacing/index.d.ts +0 -6
- package/dist/js/spacing/index.js +0 -7
- package/dist/js/spacing/normal.d.ts +0 -4
- package/dist/js/spacing/normal.js +0 -13
- package/dist/js/typography/index.d.ts +0 -11
- package/dist/js/typography/index.js +0 -7
- package/dist/js/typography/normal.d.ts +0 -9
- package/dist/js/typography/normal.js +0 -19
- package/dist/json/colors/dark.json +0 -614
- package/dist/json/colors/dark_colorblind.json +0 -614
- package/dist/json/colors/dark_dimmed.json +0 -614
- package/dist/json/colors/dark_high_contrast.json +0 -614
- package/dist/json/colors/dark_tritanopia.json +0 -614
- package/dist/json/colors/light.json +0 -614
- package/dist/json/colors/light_colorblind.json +0 -614
- package/dist/json/colors/light_high_contrast.json +0 -614
- package/dist/json/colors/light_tritanopia.json +0 -614
- package/dist/json/spacing/normal.json +0 -11
- package/dist/json/typography/normal.json +0 -17
- package/dist/removed/colors.json +0 -432
- package/dist/scss/colors/_dark.scss +0 -452
- package/dist/scss/colors/_dark_colorblind.scss +0 -452
- package/dist/scss/colors/_dark_dimmed.scss +0 -452
- package/dist/scss/colors/_dark_high_contrast.scss +0 -452
- package/dist/scss/colors/_dark_tritanopia.scss +0 -452
- package/dist/scss/colors/_light.scss +0 -452
- package/dist/scss/colors/_light_colorblind.scss +0 -452
- package/dist/scss/colors/_light_high_contrast.scss +0 -452
- package/dist/scss/colors/_light_tritanopia.scss +0 -452
- package/dist/scss/spacing/_normal.scss +0 -11
- package/dist/scss/typography/_normal.scss +0 -15
- package/dist/ts/colors/dark.ts +0 -614
- package/dist/ts/colors/dark_colorblind.ts +0 -614
- package/dist/ts/colors/dark_dimmed.ts +0 -614
- package/dist/ts/colors/dark_high_contrast.ts +0 -614
- package/dist/ts/colors/dark_tritanopia.ts +0 -614
- package/dist/ts/colors/index.ts +0 -10
- package/dist/ts/colors/light.ts +0 -614
- package/dist/ts/colors/light_colorblind.ts +0 -614
- package/dist/ts/colors/light_high_contrast.ts +0 -614
- package/dist/ts/colors/light_tritanopia.ts +0 -614
- package/dist/ts/index.ts +0 -4
- package/dist/ts/spacing/index.ts +0 -2
- package/dist/ts/spacing/normal.ts +0 -11
- package/dist/ts/typography/index.ts +0 -2
- package/dist/ts/typography/normal.ts +0 -17
- package/tokens-next-private/css/base/size/size.css +0 -19
- package/tokens-next-private/css/base/typography/typography.css +0 -6
- package/tokens-next-private/css/functional/motion/motion.css +0 -5
- package/tokens-next-private/css/functional/size/border.css +0 -14
- package/tokens-next-private/css/functional/size/breakpoints.css +0 -8
- package/tokens-next-private/css/functional/size/size-coarse.css +0 -7
- package/tokens-next-private/css/functional/size/size-fine.css +0 -7
- package/tokens-next-private/css/functional/size/size.css +0 -74
- package/tokens-next-private/css/functional/size/viewport.css +0 -6
- package/tokens-next-private/css/functional/themes/dark-colorblind.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark-dimmed.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark-high-contrast.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark-tritanopia.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark.css +0 -1078
- package/tokens-next-private/css/functional/themes/light-colorblind.css +0 -1078
- package/tokens-next-private/css/functional/themes/light-high-contrast.css +0 -1078
- package/tokens-next-private/css/functional/themes/light-tritanopia.css +0 -1078
- package/tokens-next-private/css/functional/themes/light.css +0 -1078
- package/tokens-next-private/css/functional/typography/typography.css +0 -47
- package/tokens-next-private/fallbacks/base/size/size.json +0 -19
- package/tokens-next-private/fallbacks/base/typography/typography.json +0 -6
- package/tokens-next-private/fallbacks/functional/motion/motion.json +0 -5
- package/tokens-next-private/fallbacks/functional/size/border.json +0 -14
- package/tokens-next-private/fallbacks/functional/size/breakpoints.json +0 -8
- package/tokens-next-private/fallbacks/functional/size/size-coarse.json +0 -5
- package/tokens-next-private/fallbacks/functional/size/size-fine.json +0 -5
- package/tokens-next-private/fallbacks/functional/size/size.json +0 -74
- package/tokens-next-private/fallbacks/functional/size/viewport.json +0 -8
- package/tokens-next-private/fallbacks/functional/typography/typography.json +0 -47
- package/tokens-next-private/internalCss/dark-colorblind.css +0 -1648
- package/tokens-next-private/internalCss/dark-dimmed.css +0 -1648
- package/tokens-next-private/internalCss/dark-high-contrast.css +0 -1648
- package/tokens-next-private/internalCss/dark-tritanopia.css +0 -1648
- package/tokens-next-private/internalCss/dark.css +0 -1648
- package/tokens-next-private/internalCss/light-colorblind.css +0 -1648
- package/tokens-next-private/internalCss/light-high-contrast.css +0 -1648
- package/tokens-next-private/internalCss/light-tritanopia.css +0 -1648
- package/tokens-next-private/internalCss/light.css +0 -1648
- /package/{tokens-next-private/docs → dist/styleLint}/base/typography/typography.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/motion/motion.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-dimmed.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/dark-high-contrast.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light-colorblind.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light-high-contrast.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light-tritanopia.json +0 -0
- /package/{tokens-next-private/docs → dist/styleLint}/functional/themes/light.json +0 -0
- /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,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,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()
|