@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,226 @@
|
|
|
1
|
+
import StyleDictionary from 'style-dictionary'
|
|
2
|
+
import {w3cJsonParser} from './parsers'
|
|
3
|
+
import {
|
|
4
|
+
borderToCss,
|
|
5
|
+
colorToHexAlpha,
|
|
6
|
+
colorToRgbAlpha,
|
|
7
|
+
colorToHex,
|
|
8
|
+
colorToHexMix,
|
|
9
|
+
colorToRgbaFloat,
|
|
10
|
+
dimensionToRem,
|
|
11
|
+
dimensionToPixelUnitless,
|
|
12
|
+
durationToCss,
|
|
13
|
+
figmaAttributes,
|
|
14
|
+
fontFamilyToCss,
|
|
15
|
+
fontWeightToNumber,
|
|
16
|
+
jsonDeprecated,
|
|
17
|
+
namePathToDotNotation,
|
|
18
|
+
namePathToCamelCase,
|
|
19
|
+
namePathToKebabCase,
|
|
20
|
+
namePathToSlashNotation,
|
|
21
|
+
namePathToFigma,
|
|
22
|
+
shadowToCss,
|
|
23
|
+
typographyToCss,
|
|
24
|
+
dimensionToRemPxArray,
|
|
25
|
+
} from './transformers'
|
|
26
|
+
import {
|
|
27
|
+
javascriptCommonJs,
|
|
28
|
+
javascriptEsm,
|
|
29
|
+
typescriptExportDefinition,
|
|
30
|
+
jsonNestedPrefixed,
|
|
31
|
+
cssThemed,
|
|
32
|
+
cssCustomMedia,
|
|
33
|
+
jsonOneDimensional,
|
|
34
|
+
jsonPostCssFallback,
|
|
35
|
+
cssWrapMediaQuery,
|
|
36
|
+
cssVariables,
|
|
37
|
+
jsonFigma,
|
|
38
|
+
} from './formats'
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Parsers
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
StyleDictionary.registerParser(w3cJsonParser)
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Formats
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
StyleDictionary.registerFormat({
|
|
51
|
+
name: 'css/themed',
|
|
52
|
+
formatter: cssThemed,
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
StyleDictionary.registerFormat({
|
|
56
|
+
name: 'css/customMedia',
|
|
57
|
+
formatter: cssCustomMedia,
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
StyleDictionary.registerFormat({
|
|
61
|
+
name: 'css/wrapMediaQuery',
|
|
62
|
+
formatter: cssWrapMediaQuery,
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
StyleDictionary.registerFormat({
|
|
66
|
+
name: 'css/variables',
|
|
67
|
+
formatter: cssVariables,
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
StyleDictionary.registerFormat({
|
|
71
|
+
name: 'javascript/esm',
|
|
72
|
+
formatter: javascriptEsm,
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
StyleDictionary.registerFormat({
|
|
76
|
+
name: 'javascript/commonJs',
|
|
77
|
+
formatter: javascriptCommonJs,
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
StyleDictionary.registerFormat({
|
|
81
|
+
name: 'typescript/export-definition',
|
|
82
|
+
formatter: typescriptExportDefinition,
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
StyleDictionary.registerFormat({
|
|
86
|
+
name: 'json/nested-prefixed',
|
|
87
|
+
formatter: jsonNestedPrefixed,
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
StyleDictionary.registerFormat({
|
|
91
|
+
name: 'json/one-dimensional',
|
|
92
|
+
formatter: jsonOneDimensional,
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
StyleDictionary.registerFormat({
|
|
96
|
+
name: 'json/postCss-fallback',
|
|
97
|
+
formatter: jsonPostCssFallback,
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
StyleDictionary.registerFormat({
|
|
101
|
+
name: 'json/figma',
|
|
102
|
+
formatter: jsonFigma,
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Transformers
|
|
107
|
+
*
|
|
108
|
+
*/
|
|
109
|
+
StyleDictionary.registerTransform({
|
|
110
|
+
name: 'color/rgbAlpha',
|
|
111
|
+
...colorToRgbAlpha,
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
StyleDictionary.registerTransform({
|
|
115
|
+
name: 'color/rgbaFloat',
|
|
116
|
+
...colorToRgbaFloat,
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
StyleDictionary.registerTransform({
|
|
120
|
+
name: 'color/hexAlpha',
|
|
121
|
+
...colorToHexAlpha,
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
StyleDictionary.registerTransform({
|
|
125
|
+
name: 'color/hexMix',
|
|
126
|
+
...colorToHexMix,
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
StyleDictionary.registerTransform({
|
|
130
|
+
name: 'color/hex',
|
|
131
|
+
...colorToHex,
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
StyleDictionary.registerTransform({
|
|
135
|
+
name: 'dimension/rem',
|
|
136
|
+
...dimensionToRem,
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
StyleDictionary.registerTransform({
|
|
140
|
+
name: 'dimension/remPxArray',
|
|
141
|
+
...dimensionToRemPxArray,
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
StyleDictionary.registerTransform({
|
|
145
|
+
name: 'dimension/pixelUnitless',
|
|
146
|
+
...dimensionToPixelUnitless,
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
StyleDictionary.registerTransform({
|
|
150
|
+
name: 'duration/css',
|
|
151
|
+
...durationToCss,
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
StyleDictionary.registerTransform({
|
|
155
|
+
name: 'figma/attributes',
|
|
156
|
+
...figmaAttributes,
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
StyleDictionary.registerTransform({
|
|
160
|
+
name: 'json/deprecated',
|
|
161
|
+
...jsonDeprecated,
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
StyleDictionary.registerTransform({
|
|
165
|
+
name: 'name/pathToCamelCase',
|
|
166
|
+
...namePathToCamelCase,
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
StyleDictionary.registerTransform({
|
|
170
|
+
name: 'name/pathToDotNotation',
|
|
171
|
+
...namePathToDotNotation,
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
StyleDictionary.registerTransform({
|
|
175
|
+
name: 'name/pathToFigma',
|
|
176
|
+
...namePathToFigma,
|
|
177
|
+
})
|
|
178
|
+
|
|
179
|
+
StyleDictionary.registerTransform({
|
|
180
|
+
name: 'name/pathToCamelCase',
|
|
181
|
+
...namePathToCamelCase,
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
StyleDictionary.registerTransform({
|
|
185
|
+
name: 'name/pathToKebabCase',
|
|
186
|
+
...namePathToKebabCase,
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
StyleDictionary.registerTransform({
|
|
190
|
+
name: 'name/pathToSlashNotation',
|
|
191
|
+
...namePathToSlashNotation,
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
StyleDictionary.registerTransform({
|
|
195
|
+
name: 'shadow/css',
|
|
196
|
+
...shadowToCss,
|
|
197
|
+
})
|
|
198
|
+
|
|
199
|
+
StyleDictionary.registerTransform({
|
|
200
|
+
name: 'border/css',
|
|
201
|
+
...borderToCss,
|
|
202
|
+
})
|
|
203
|
+
|
|
204
|
+
StyleDictionary.registerTransform({
|
|
205
|
+
name: 'typography/css',
|
|
206
|
+
...typographyToCss,
|
|
207
|
+
})
|
|
208
|
+
|
|
209
|
+
StyleDictionary.registerTransform({
|
|
210
|
+
name: 'fontWeight/number',
|
|
211
|
+
...fontWeightToNumber,
|
|
212
|
+
})
|
|
213
|
+
|
|
214
|
+
StyleDictionary.registerTransform({
|
|
215
|
+
name: 'fontFamily/css',
|
|
216
|
+
...fontFamilyToCss,
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @name {@link PrimerStyleDictionary}
|
|
221
|
+
* @description Returns style dictionary object with primer preset that includes parsers, formats and transformers
|
|
222
|
+
* @parsers [w3cJsonParser](https://github.com/primer/primitives/blob/main/config//parsers/w3c-json-parser.ts)
|
|
223
|
+
* @formats [javascript/esm](https://github.com/primer/primitives/blob/main/config/formats/javascript-esm.ts), [javascript/commonJs](https://github.com/primer/primitives/blob/main/config/formats/javascript-commonJs.ts), [typescript/export-definition](https://github.com/primer/primitives/blob/main/config/formats/typescript-export-defition.ts)
|
|
224
|
+
* @transformers [color/rgbAlpha](https://github.com/primer/primitives/blob/main/config/tranformers/color-to-rgb-alpha.ts), [color/hexAlpha](https://github.com/primer/primitives/blob/main/config/tranformers/color-to-hex-alpha.ts), [color/hex](https://github.com/primer/primitives/blob/main/config/tranformers/color-to-hex6.ts), [json/deprecated](https://github.com/primer/primitives/blob/main/config/tranformers/json-deprecated.ts), [name/pathToDotNotation](https://github.com/primer/primitives/blob/main/config/tranformers/name-path-to-dot-notation.ts)
|
|
225
|
+
*/
|
|
226
|
+
export const PrimerStyleDictionary: StyleDictionary.Core = StyleDictionary
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export {isBorder} from './isBorder'
|
|
2
|
+
export {isColor} from './isColor'
|
|
3
|
+
export {isColorWithAlpha} from './isColorWithAlpha'
|
|
4
|
+
export {isColorWithMix} from './isColorWithMix'
|
|
5
|
+
export {isDimension} from './isDimension'
|
|
6
|
+
export {isDeprecated} from './isDeprecated'
|
|
7
|
+
export {isFromFile} from './isFromFile'
|
|
8
|
+
export {isFontFamily} from './isFontFamily'
|
|
9
|
+
export {isFontWeight} from './isFontWeight'
|
|
10
|
+
export {isShadow} from './isShadow'
|
|
11
|
+
export {isSource} from './isSource'
|
|
12
|
+
export {isTypography} from './isTypography'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `border`
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isBorder = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'border'
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `color`
|
|
5
|
+
* @param token [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isColor = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'color'
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
import {isColor} from './isColor'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @description Checks if token is color with an alpha value
|
|
6
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
7
|
+
* @returns boolean
|
|
8
|
+
*/
|
|
9
|
+
export const isColorWithAlpha = (token: StyleDictionary.TransformedToken): boolean => {
|
|
10
|
+
return isColor(token) && token.alpha !== undefined && typeof token.alpha === 'number'
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
import {isColor} from './isColor'
|
|
3
|
+
|
|
4
|
+
const throwError = (token: StyleDictionary.TransformedToken) => {
|
|
5
|
+
throw new Error(
|
|
6
|
+
`Invalid mix property on token: ${token.name}. "mix.color": ${token.mix.color}, "mix.weight": ${
|
|
7
|
+
typeof token.mix.weight === 'string' ? `"${token.mix.weight}" (string)` : token.mix.weight
|
|
8
|
+
} must be a number between 0 and 1. In file: "${token.filePath}".`,
|
|
9
|
+
)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @description Checks if token is color and has a mix property
|
|
14
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
15
|
+
* @returns boolean
|
|
16
|
+
*/
|
|
17
|
+
export const isColorWithMix = (token: StyleDictionary.TransformedToken): boolean => {
|
|
18
|
+
// no color or no mix property
|
|
19
|
+
if (!isColor(token) || token.mix === undefined || token.mix === null) {
|
|
20
|
+
return false
|
|
21
|
+
}
|
|
22
|
+
// invalid mix property
|
|
23
|
+
if (
|
|
24
|
+
typeof token.mix.color !== 'string' ||
|
|
25
|
+
typeof token.mix.weight !== 'number' ||
|
|
26
|
+
token.mix.weight < 0 ||
|
|
27
|
+
token.mix.weight > 1
|
|
28
|
+
) {
|
|
29
|
+
throwError(token)
|
|
30
|
+
}
|
|
31
|
+
// valid mix property
|
|
32
|
+
return true
|
|
33
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token has a valid `deprecated` property
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isDeprecated = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.deprecated === true || typeof token.deprecated === 'string'
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `dimension`
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isDimension = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'dimension'
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `duration`
|
|
5
|
+
* @param token [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isDuration = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'duration'
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `isFontFamily`
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isFontFamily = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'fontFamily'
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `fontWeight`
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isFontWeight = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'fontWeight'
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token comes from a specific file
|
|
5
|
+
* @param token [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @param files - array of file paths
|
|
7
|
+
* @returns boolean
|
|
8
|
+
*/
|
|
9
|
+
export const isFromFile = (token: StyleDictionary.TransformedToken, files: string[]): boolean => {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
11
|
+
return files?.includes(token.filePath) === true
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `shadow`
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isShadow = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'shadow'
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is source token
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isSource = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.isSource === true
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type StyleDictionary from 'style-dictionary'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Checks if token is of $type `typography`
|
|
5
|
+
* @param arguments [StyleDictionary.TransformedToken](https://github.com/amzn/style-dictionary/blob/main/types/TransformedToken.d.ts)
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export const isTypography = (token: StyleDictionary.TransformedToken): boolean => {
|
|
9
|
+
return token.$type === 'typography'
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import StyleDictionary from 'style-dictionary'
|
|
2
|
+
import type {FormatterArguments} from 'style-dictionary/types/Format'
|
|
3
|
+
import {format} from 'prettier'
|
|
4
|
+
const {fileHeader} = StyleDictionary.formatHelpers
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @description Converts `StyleDictionary.dictionary.tokens` to css with @custom-media
|
|
8
|
+
* @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
|
|
9
|
+
* @returns formatted `string`
|
|
10
|
+
*/
|
|
11
|
+
export const cssCustomMedia: StyleDictionary.Formatter = ({
|
|
12
|
+
dictionary,
|
|
13
|
+
options: _options,
|
|
14
|
+
file,
|
|
15
|
+
}: FormatterArguments) => {
|
|
16
|
+
// add file header
|
|
17
|
+
const output = [fileHeader({file})]
|
|
18
|
+
// add single theme css
|
|
19
|
+
dictionary.allTokens.map(({name, value}) => {
|
|
20
|
+
output.push(`@custom-media --${name} ${value};`)
|
|
21
|
+
})
|
|
22
|
+
// return prettified
|
|
23
|
+
return format(output.join('\n'), {parser: 'css', printWidth: 500})
|
|
24
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import StyleDictionary from 'style-dictionary'
|
|
2
|
+
import type {FormatterArguments} from 'style-dictionary/types/Format'
|
|
3
|
+
import {format} from 'prettier'
|
|
4
|
+
import type {LineFormatting} from 'style-dictionary/types/FormatHelpers'
|
|
5
|
+
const {fileHeader, formattedVariables} = StyleDictionary.formatHelpers
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @description Converts `StyleDictionary.dictionary.tokens` to css with prefers dark and light section
|
|
9
|
+
* @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
|
|
10
|
+
* @param arguments.options outputReferences `boolean`, selector `string`, selectorLight `string`, selectorDark `string`
|
|
11
|
+
* @returns formatted `string`
|
|
12
|
+
*/
|
|
13
|
+
export const cssThemed: StyleDictionary.Formatter = ({dictionary, options = {}, file}: FormatterArguments) => {
|
|
14
|
+
const {selector, selectorLight, selectorDark} = options
|
|
15
|
+
const {outputReferences, descriptions} = options
|
|
16
|
+
const formatting: LineFormatting = {
|
|
17
|
+
commentStyle: descriptions ? 'long' : 'none',
|
|
18
|
+
}
|
|
19
|
+
// add file header
|
|
20
|
+
const output = [fileHeader({file})]
|
|
21
|
+
// add single theme css
|
|
22
|
+
output.push(`${selector || ':root'}${selectorLight ? `, ${selectorLight}` : ''}{
|
|
23
|
+
${formattedVariables({format: 'css', dictionary, outputReferences, formatting})}
|
|
24
|
+
}`)
|
|
25
|
+
// add auto dark theme css
|
|
26
|
+
if (selectorDark) {
|
|
27
|
+
output.push(`@media (prefers-color-scheme: dark) {
|
|
28
|
+
${selectorDark} {
|
|
29
|
+
${formattedVariables({format: 'css', dictionary, outputReferences, formatting})}
|
|
30
|
+
}
|
|
31
|
+
}`)
|
|
32
|
+
}
|
|
33
|
+
// return prettified
|
|
34
|
+
return format(output.join('\n'), {parser: 'css', printWidth: 500})
|
|
35
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import StyleDictionary from 'style-dictionary'
|
|
2
|
+
import type {FormatterArguments} from 'style-dictionary/types/Format'
|
|
3
|
+
import type {LineFormatting} from 'style-dictionary/types/FormatHelpers'
|
|
4
|
+
const {fileHeader, formattedVariables} = StyleDictionary.formatHelpers
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @description Converts `StyleDictionary.dictionary.tokens` to css with prefers dark and light section
|
|
8
|
+
* @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
|
|
9
|
+
* @param arguments.options outputReferences `boolean`, selector `string`, selectorLight `string`, selectorDark `string`
|
|
10
|
+
* @returns formatted `string`
|
|
11
|
+
*/
|
|
12
|
+
export const cssVariables: StyleDictionary.Formatter = ({dictionary, options = {}, file}: FormatterArguments) => {
|
|
13
|
+
const selector = options.selector ? options.selector : `:root`
|
|
14
|
+
const {outputReferences, descriptions} = options
|
|
15
|
+
const formatting: LineFormatting = {
|
|
16
|
+
commentStyle: descriptions ? 'long' : 'none',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return `${fileHeader({file})}${selector} {\n${formattedVariables({
|
|
20
|
+
format: 'css',
|
|
21
|
+
dictionary,
|
|
22
|
+
outputReferences,
|
|
23
|
+
formatting,
|
|
24
|
+
})}\n}\n`
|
|
25
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import StyleDictionary from 'style-dictionary'
|
|
2
|
+
import type {FormatterArguments} from 'style-dictionary/types/Format'
|
|
3
|
+
import {format} from 'prettier'
|
|
4
|
+
import type {LineFormatting} from 'style-dictionary/types/FormatHelpers'
|
|
5
|
+
const {fileHeader, formattedVariables} = StyleDictionary.formatHelpers
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @description Converts `StyleDictionary.dictionary.tokens` to css with @custom-media
|
|
9
|
+
* @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
|
|
10
|
+
* @returns formatted `string`
|
|
11
|
+
*/
|
|
12
|
+
export const cssWrapMediaQuery: StyleDictionary.Formatter = ({dictionary, options, file}: FormatterArguments) => {
|
|
13
|
+
const {outputReferences, descriptions} = options
|
|
14
|
+
const formatting: LineFormatting = {
|
|
15
|
+
commentStyle: descriptions ? 'long' : 'none',
|
|
16
|
+
}
|
|
17
|
+
// get specific media query or use screen
|
|
18
|
+
const mediaQuery = options.mediaQuery?.[file.destination] || 'screen'
|
|
19
|
+
// add file header
|
|
20
|
+
const output = [fileHeader({file})]
|
|
21
|
+
// add meadia query
|
|
22
|
+
output.push(`@media ${mediaQuery} {\n:root {`)
|
|
23
|
+
// add tokens
|
|
24
|
+
output.push(formattedVariables({format: 'css', dictionary, outputReferences, formatting}))
|
|
25
|
+
// close media query
|
|
26
|
+
output.push(`}\n}`)
|
|
27
|
+
// return prettified
|
|
28
|
+
return format(output.join('\n'), {parser: 'css', printWidth: 500})
|
|
29
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export {cssThemed} from './cssThemed'
|
|
2
|
+
export {cssCustomMedia} from './cssCustomMedia'
|
|
3
|
+
export {cssWrapMediaQuery} from './cssWrapMediaQuery'
|
|
4
|
+
export {cssVariables} from './cssVariables'
|
|
5
|
+
export {jsonFigma} from './jsonFigma'
|
|
6
|
+
export {javascriptCommonJs} from './javascriptCommonJs'
|
|
7
|
+
export {javascriptEsm} from './javascriptEsm'
|
|
8
|
+
export {jsonNestedPrefixed} from './jsonNestedPrefixed'
|
|
9
|
+
export {jsonOneDimensional} from './jsonOneDimensional'
|
|
10
|
+
export {jsonPostCssFallback} from './jsonPostCssFallback'
|
|
11
|
+
export {typescriptExportDefinition} from './typescriptExportDefinition'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {format} from 'prettier'
|
|
2
|
+
import {jsonToNestedValue} from './utilities/jsonToNestedValue'
|
|
3
|
+
import {prefixTokens} from './utilities/prefixTokens'
|
|
4
|
+
import StyleDictionary from 'style-dictionary'
|
|
5
|
+
import type {FormatterArguments} from 'style-dictionary/types/Format'
|
|
6
|
+
|
|
7
|
+
const {fileHeader} = StyleDictionary.formatHelpers
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @description Converts `StyleDictionary.dictionary.tokens` to javascript commonJS module
|
|
11
|
+
* @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
|
|
12
|
+
* @returns formatted `string`
|
|
13
|
+
*/
|
|
14
|
+
export const javascriptCommonJs: StyleDictionary.Formatter = ({dictionary, file, platform}: FormatterArguments) => {
|
|
15
|
+
// add prefix if defined
|
|
16
|
+
const tokens = prefixTokens(dictionary.tokens, platform)
|
|
17
|
+
// add file header and convert output
|
|
18
|
+
const output = `${fileHeader({file})}exports.default = ${JSON.stringify(jsonToNestedValue(tokens), null, 2)}\n`
|
|
19
|
+
// return prettified
|
|
20
|
+
return format(output, {parser: 'typescript', printWidth: 500})
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import StyleDictionary from 'style-dictionary'
|
|
2
|
+
import {format} from 'prettier'
|
|
3
|
+
import {jsonToNestedValue} from './utilities/jsonToNestedValue'
|
|
4
|
+
import {prefixTokens} from './utilities/prefixTokens'
|
|
5
|
+
import type {FormatterArguments} from 'style-dictionary/types/Format'
|
|
6
|
+
|
|
7
|
+
const {fileHeader} = StyleDictionary.formatHelpers
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @description Converts `StyleDictionary.dictionary.tokens` to javascript esm (javascript export statement)
|
|
11
|
+
* @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts)
|
|
12
|
+
* @returns formatted `string`
|
|
13
|
+
*/
|
|
14
|
+
export const javascriptEsm: StyleDictionary.Formatter = ({dictionary, file, platform}: FormatterArguments) => {
|
|
15
|
+
// add prefix if defined
|
|
16
|
+
const tokens = prefixTokens(dictionary.tokens, platform)
|
|
17
|
+
// add file header and convert output
|
|
18
|
+
const output = `${fileHeader({file})}export default \n${JSON.stringify(jsonToNestedValue(tokens), null, 2)}\n`
|
|
19
|
+
// return prettified
|
|
20
|
+
return format(output, {parser: 'typescript', printWidth: 500})
|
|
21
|
+
}
|