@terrazzo/token-tools 0.9.1 → 0.10.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @terrazzo/token-tools
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#507](https://github.com/terrazzoapp/terrazzo/pull/507) [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a) Thanks [@drwpow](https://github.com/drwpow)! - ⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4
8
+
9
+ - [#507](https://github.com/terrazzoapp/terrazzo/pull/507) [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a) Thanks [@drwpow](https://github.com/drwpow)! - ⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to `0 - 100`, rather than `0 - 1`:
10
+
11
+ ```diff
12
+ {
13
+ "colorSpace": "hsl",
14
+ - "components": [270, 0.5, 0.4]
15
+ + "components": [270, 50, 40]
16
+ }
17
+ ```
18
+
19
+ All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
20
+
21
+ ### Patch Changes
22
+
23
+ - [#507](https://github.com/terrazzoapp/terrazzo/pull/507) [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a) Thanks [@drwpow](https://github.com/drwpow)! - Fix a98-rgb colorSpace, accidentally referring to it as "a98"
24
+
3
25
  ## 0.9.1
4
26
 
5
27
  ### Patch Changes
package/dist/css.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BooleanTokenNormalized, BorderTokenNormalized, ColorTokenNormalized, CubicBezierTokenNormalized, DimensionTokenNormalized, DurationTokenNormalized, FontFamilyTokenNormalized, FontWeightTokenNormalized, GradientTokenNormalized, LinkTokenNormalized, NumberTokenNormalized, ShadowTokenNormalized, ShadowValueNormalized, StringTokenNormalized, StrokeStyleTokenNormalized, TokenNormalized, TokenNormalizedSet, TransitionTokenNormalized, TypographyTokenNormalized } from "./types-Ci92nIR9.js";
1
+ import { BooleanTokenNormalized, BorderTokenNormalized, ColorTokenNormalized, CubicBezierTokenNormalized, DimensionTokenNormalized, DurationTokenNormalized, FontFamilyTokenNormalized, FontWeightTokenNormalized, GradientTokenNormalized, LinkTokenNormalized, NumberTokenNormalized, ShadowTokenNormalized, ShadowValueNormalized, StringTokenNormalized, StrokeStyleTokenNormalized, TokenNormalized, TokenNormalizedSet, TransitionTokenNormalized, TypographyTokenNormalized } from "./types-BOWDcBsq.js";
2
2
 
3
3
  //#region src/css/lib.d.ts
4
4
  /** Function that generates a var(…) statement */
package/dist/css.js CHANGED
@@ -1,5 +1,5 @@
1
- import { CSS_TO_CULORI, kebabCase, parseColor, tokenToCulori } from "./string-Cq7Oa0sE.js";
2
- import { displayable, formatCss, formatHex, formatHex8, modeA98, modeHsl, modeHsv, modeHwb, modeLab, modeLab65, modeLch, modeLrgb, modeOklab, modeOklch, modeP3, modeProphoto, modeRec2020, modeRgb, modeXyz50, modeXyz65, toGamut, useMode } from "culori/fn";
1
+ import { CSS_TO_CULORI, kebabCase, parseColor, tokenToCulori } from "./string-BwN3ybNv.js";
2
+ import { displayable, formatCss, formatHex, formatHex8, modeA98, modeHsl, modeHwb, modeLab, modeLab65, modeLch, modeLrgb, modeOkhsv, modeOklab, modeOklch, modeP3, modeProphoto, modeRec2020, modeRgb, modeXyz50, modeXyz65, toGamut, useMode } from "culori/fn";
3
3
  import { displayable as displayable$1 } from "culori";
4
4
 
5
5
  //#region src/css/lib.ts
@@ -62,7 +62,6 @@ function transformColor(token, options) {
62
62
  const converters = {
63
63
  a98: useMode(modeA98),
64
64
  hsl: useMode(modeHsl),
65
- hsv: useMode(modeHsv),
66
65
  hwb: useMode(modeHwb),
67
66
  lab: useMode(modeLab),
68
67
  lab65: useMode(modeLab65),
@@ -70,6 +69,7 @@ const converters = {
70
69
  lrgb: useMode(modeLrgb),
71
70
  oklab: useMode(modeOklab),
72
71
  oklch: useMode(modeOklch),
72
+ okhsv: useMode(modeOkhsv),
73
73
  p3: useMode(modeP3),
74
74
  prophoto: useMode(modeProphoto),
75
75
  rec2020: useMode(modeRec2020),
package/dist/css.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":["token: TokenNormalized","name: string","token: BooleanTokenNormalized","token: ColorTokenNormalized","options: TransformCSSValueOptions","formatColor: (color: Color) => string","converters: Record<keyof typeof CULORI_TO_CSS, (color: Color) => Color>","$value: ColorTokenNormalized['$value']","culoriColor: Color","token: DimensionTokenNormalized","options: TransformCSSValueOptions","token: StrokeStyleTokenNormalized","options: TransformCSSValueOptions","token: BorderTokenNormalized","options: TransformCSSValueOptions","colorKey: string","token: CubicBezierTokenNormalized","options: TransformCSSValueOptions","token: DurationTokenNormalized","options: TransformCSSValueOptions","token: FontFamilyTokenNormalized","options: TransformCSSValueOptions","token: FontWeightTokenNormalized","options: TransformCSSValueOptions","token: GradientTokenNormalized","options: TransformCSSValueOptions","colors: (string | WideGamutColorValue)[]","positions: string[]","i: number","token: LinkTokenNormalized","options: TransformCSSValueOptions","token: NumberTokenNormalized","options: TransformCSSValueOptions","value: ShadowValueNormalized","options: TransformCSSValueOptions & {\n colorValue: string;\n partialAliasOf?: Partial<Record<keyof typeof value, string>>;\n }","token: ShadowTokenNormalized","options: TransformCSSValueOptions","colorKey: string","token: StringTokenNormalized","options: TransformCSSValueOptions","token: TransitionTokenNormalized","options: TransformCSSValueOptions","token: TypographyTokenNormalized","options: TransformCSSValueOptions","output: Record<string, string>","transformedValue: string","token: T","tokenWithModeValue: T"],"sources":["../src/css/lib.ts","../src/css/boolean.ts","../src/css/color.ts","../src/css/dimension.ts","../src/css/stroke-style.ts","../src/css/border.ts","../src/css/cubic-bezier.ts","../src/css/duration.ts","../src/css/font-family.ts","../src/css/font-weight.ts","../src/css/gradient.ts","../src/css/link.ts","../src/css/number.ts","../src/css/shadow.ts","../src/css/string.ts","../src/css/transition.ts","../src/css/typography.ts","../src/css/index.ts"],"sourcesContent":["import type { TokenNormalized } from '../types.js';\n\n/** Function that generates a var(…) statement */\nexport type IDGenerator<T = TokenNormalized> = (token: T) => string;\n\nexport function defaultAliasTransform(token: TokenNormalized) {\n if (!token) {\n throw new Error('Undefined token');\n }\n return `var(${makeCSSVar(token.id)})`;\n}\n\n/** Generate shorthand CSS for select token types */\nexport function generateShorthand({ $type, localID }: { $type: string; localID: string }): string | undefined {\n switch ($type) {\n case 'transition': {\n return ['duration', 'delay', 'timing-function']\n .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))\n .join(' ');\n }\n // note: \"typography\" is not set in shorthand because it can often unset values unintentionally.\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/font\n }\n}\n\nconst CSS_VAR_RE =\n /(?:(\\p{Uppercase_Letter}?[\\p{Lowercase_Letter}\\p{Number}]+|[\\p{Uppercase_Letter}\\p{Number}]+|[\\u{80}-\\u{10FFFF}\\p{Number}]+)|.)/u;\n\nexport interface MakeCSSVarOptions {\n /** Prefix with string */\n prefix?: string;\n /**\n * Wrap with `var(…)`\n * @default false\n */\n wrapVar?: boolean;\n}\n\n/**\n * Generate a valid CSS variable from any string\n * Code by @dfrankland\n */\nexport function makeCSSVar(name: string, { prefix, wrapVar = false }: MakeCSSVarOptions = {}): string {\n if (typeof name !== 'string') {\n throw new Error(`makeCSSVar() Expected string, received ${name}`);\n }\n\n let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');\n if (prefix && !property.startsWith(`${prefix}-`)) {\n property = `${prefix}-${property}`;\n }\n const finalProperty = `--${property}`.toLocaleLowerCase();\n return wrapVar ? `var(${finalProperty})` : finalProperty;\n}\n","import type { BooleanTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert boolean value to CSS string */\nexport function transformBoolean(\n token: BooleanTokenNormalized,\n { tokensSet, transformAlias = defaultAliasTransform }: TransformCSSValueOptions,\n): string {\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value === true ? '1' : '0';\n}\n","import {\n type Color,\n displayable,\n formatCss,\n formatHex,\n formatHex8,\n modeA98,\n modeHsl,\n modeHsv,\n modeHwb,\n modeLab,\n modeLab65,\n modeLch,\n modeLrgb,\n modeOklab,\n modeOklch,\n modeP3,\n modeProphoto,\n modeRec2020,\n modeRgb,\n modeXyz50,\n modeXyz65,\n toGamut,\n useMode,\n} from 'culori/fn';\nimport { CSS_TO_CULORI, type CULORI_TO_CSS, parseColor, tokenToCulori } from '../color.js';\nimport type { ColorTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nexport type WideGamutColorValue = {\n '.': string;\n srgb: string;\n p3: string;\n rec2020: string;\n};\n\n/** Convert color value to CSS string */\nexport function transformColor(\n token: ColorTokenNormalized,\n options: TransformCSSValueOptions,\n): string | WideGamutColorValue {\n const { transformAlias = defaultAliasTransform, tokensSet } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const {\n colorSpace,\n components,\n alpha = 1,\n } = typeof token.$value === 'string' ? parseColor(token.$value) : token.$value;\n const color = tokenToCulori({ colorSpace, components, alpha });\n\n if (!color) {\n throw new Error(`Can’t convert color ${JSON.stringify(token.$value)} to Culori color`);\n }\n\n let formatColor: (color: Color) => string = formatCss;\n if (options.color?.legacyHex) {\n formatColor = color.alpha !== 1 ? formatHex8 : formatHex;\n }\n\n return displayable(color) ? formatColor(color) : downsample({ colorSpace, components, alpha }, color);\n}\n\nconst converters: Record<keyof typeof CULORI_TO_CSS, (color: Color) => Color> = {\n a98: useMode(modeA98),\n hsl: useMode(modeHsl),\n hsv: useMode(modeHsv),\n hwb: useMode(modeHwb),\n lab: useMode(modeLab),\n lab65: useMode(modeLab65),\n lch: useMode(modeLch),\n lrgb: useMode(modeLrgb),\n oklab: useMode(modeOklab),\n oklch: useMode(modeOklch),\n p3: useMode(modeP3),\n prophoto: useMode(modeProphoto),\n rec2020: useMode(modeRec2020),\n rgb: useMode(modeRgb),\n xyz50: useMode(modeXyz50),\n xyz65: useMode(modeXyz65),\n};\n\n/**\n * Downsample color to sRGB/Display P3/Rec2020 colorspaces.\n * Note: because Culori tends to convert to RGB color spaces to ensure the operation,\n * we have to do an additional step of converting back. So we’re not really converting;\n * we’re just preserving the original colorspace.\n */\nfunction downsample($value: ColorTokenNormalized['$value'], culoriColor: Color) {\n if (!($value.colorSpace in CSS_TO_CULORI)) {\n throw new Error(\n `Invalid colorSpace \"${$value.colorSpace}\". Expected one of: ${Object.keys(CSS_TO_CULORI).join(', ')}`,\n );\n }\n const conversionSpace = CSS_TO_CULORI[$value.colorSpace] || 'oklab';\n let gamutSpace = conversionSpace;\n // bugfix. \"lab\" and \"oklab\" have a bug in Culori\n // https://github.com/Evercoder/culori/issues/261\n if (gamutSpace === 'lab' || gamutSpace === 'lab65') {\n gamutSpace = 'lch';\n } else if (gamutSpace === 'oklab') {\n gamutSpace = 'oklch';\n }\n const srgb = converters[conversionSpace](toGamut('rgb', gamutSpace)(culoriColor));\n const p3 = converters[conversionSpace](toGamut('p3', gamutSpace)(culoriColor));\n const rec2020 = converters[conversionSpace](toGamut('rec2020', gamutSpace)(culoriColor));\n return {\n '.': formatCss(culoriColor),\n srgb: formatCss(srgb),\n p3: formatCss(p3),\n rec2020: formatCss(rec2020),\n };\n}\n","import type { DimensionTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert dimension value to CSS */\nexport function transformDimension(token: DimensionTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return token.$value.value === 0 ? '0' : `${token.$value.value}${token.$value.unit}`;\n}\n","import type { StrokeStyleTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert strokeStyle value to CSS */\nexport function transformStrokeStyle(token: StrokeStyleTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return typeof token.$value === 'string' ? token.$value : 'dashed'; // CSS doesn’t have `dash-array`; it’s just \"dashed\"\n}\n","import { displayable } from 'culori';\nimport type {\n BorderTokenNormalized,\n ColorTokenNormalized,\n DimensionTokenNormalized,\n StrokeStyleTokenNormalized,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformStrokeStyle } from './stroke-style.js';\n\n/** Convert border value to multiple CSS values */\nexport function transformBorder(token: BorderTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const width = token.partialAliasOf?.width\n ? transformAlias(tokensSet[token.partialAliasOf.width]!)\n : transformDimension({ $value: token.$value.width } as DimensionTokenNormalized, options);\n const color = token.partialAliasOf?.color\n ? transformAlias(tokensSet[token.partialAliasOf.color]!)\n : transformColor({ $value: token.$value.color } as ColorTokenNormalized, options);\n const style = token.partialAliasOf?.style\n ? transformAlias(tokensSet[token.partialAliasOf.style]!)\n : transformStrokeStyle({ $value: token.$value.style } as StrokeStyleTokenNormalized, options);\n\n const formatBorder = (colorKey: string) =>\n [width, style, typeof color === 'string' ? color : color[colorKey as keyof typeof color]].join(' ');\n\n return typeof color === 'string' || displayable(color.p3)\n ? formatBorder('.')\n : {\n '.': formatBorder('.'),\n srgb: formatBorder('srgb'),\n p3: formatBorder('p3'),\n rec2020: formatBorder('rec2020'),\n };\n}\n","import type { CubicBezierTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert cubicBezier value to CSS */\nexport function transformCubicBezier(token: CubicBezierTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `cubic-bezier(${token.$value\n .map((v, i) => (token.partialAliasOf?.[i] ? transformAlias(tokensSet[token.partialAliasOf[i]]!) : v))\n .join(', ')})`;\n}\n","import type { DurationTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert duration value to CSS */\nexport function transformDuration(token: DurationTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return `${token.$value.value}${token.$value.unit}`;\n}\n","import type { FontFamilyTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nconst FONT_NAME_KEYWORD = /^[a-z-]+$/;\n\nexport function transformFontFamily(token: FontFamilyTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value.map((fontName) => (FONT_NAME_KEYWORD.test(fontName) ? fontName : `\"${fontName}\"`)).join(', ');\n}\n","import type { FontWeightTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert fontWeight value to CSS */\nexport function transformFontWeight(token: FontWeightTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type { ColorTokenNormalized, GradientTokenNormalized } from '../types.js';\nimport { type WideGamutColorValue, transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert gradient value to CSS */\nexport function transformGradient(\n token: GradientTokenNormalized,\n options: TransformCSSValueOptions,\n): string | WideGamutColorValue {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n let isHDR = false;\n\n const colors: (string | WideGamutColorValue)[] = [];\n const positions: string[] = [];\n\n for (let i = 0; i < token.$value.length; i++) {\n const { color, position } = token.$value[i]!;\n const colorValue = token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: color } as ColorTokenNormalized, options);\n if (typeof colorValue !== 'string') {\n isHDR = true;\n }\n colors.push(colorValue);\n positions.push(\n token.partialAliasOf?.[i]?.position\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.position!]!)\n : `${100 * position}%`,\n );\n }\n\n function formatStop(i: number, colorKey = '.') {\n return `${typeof colors[i] === 'string' ? colors[i] : colors[i]![colorKey as keyof (typeof colors)[number]]} ${positions[i]}`;\n }\n\n return !isHDR\n ? token.$value.map((_, i) => formatStop(i, positions[i]!)).join(', ')\n : {\n '.': token.$value.map((_, i) => formatStop(i, '.')).join(', '),\n srgb: token.$value.map((_, i) => formatStop(i, 'srgb')).join(', '),\n p3: token.$value.map((_, i) => formatStop(i, 'p3')).join(', '),\n rec2020: token.$value.map((_, i) => formatStop(i, 'rec2020')).join(', '),\n };\n}\n","import type { LinkTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert link value to CSS */\nexport function transformLink(token: LinkTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `url(\"${token.$value}\")`;\n}\n","import type { NumberTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert number value to CSS */\nexport function transformNumber(token: NumberTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type {\n ColorTokenNormalized,\n DimensionTokenNormalized,\n ShadowTokenNormalized,\n ShadowValueNormalized,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert shadow subvalue to CSS */\nexport function transformShadowLayer(\n value: ShadowValueNormalized,\n options: TransformCSSValueOptions & {\n colorValue: string;\n partialAliasOf?: Partial<Record<keyof typeof value, string>>;\n },\n): string | Record<string, string> {\n const { tokensSet, colorValue, partialAliasOf, transformAlias = defaultAliasTransform } = options;\n const offsetX = partialAliasOf?.offsetX\n ? transformAlias(tokensSet[partialAliasOf.offsetX]!)\n : transformDimension({ $value: value.offsetX } as DimensionTokenNormalized, options);\n const offsetY = partialAliasOf?.offsetY\n ? transformAlias(tokensSet[partialAliasOf.offsetY]!)\n : transformDimension({ $value: value.offsetY } as DimensionTokenNormalized, options);\n const blur = partialAliasOf?.blur\n ? transformAlias(tokensSet[partialAliasOf.blur]!)\n : transformDimension({ $value: value.blur } as DimensionTokenNormalized, options);\n const spread = partialAliasOf?.spread\n ? transformAlias(tokensSet[partialAliasOf.spread]!)\n : transformDimension({ $value: value.spread } as DimensionTokenNormalized, options);\n const inset = value?.inset === true ? 'inset' : undefined;\n\n return [inset, offsetX, offsetY, blur, spread, colorValue].filter(Boolean).join(' ');\n}\n\n/** Convert shadow value to CSS */\nexport function transformShadow(\n token: ShadowTokenNormalized,\n options: TransformCSSValueOptions,\n): string | Record<string, string> {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n const colors = token.$value.map((v, i) =>\n token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: v.color } as ColorTokenNormalized, options),\n );\n const isHDR = colors.some((c) => typeof c === 'object');\n\n const formatShadow = (colorKey: string) =>\n token.$value\n .map((v, i) =>\n transformShadowLayer(v, {\n tokensSet,\n colorValue:\n typeof colors[i] === 'string'\n ? (colors[i] as string)\n : colors[i]![colorKey as keyof (typeof colors)[number]]!,\n partialAliasOf: token.partialAliasOf?.[i],\n transformAlias,\n }),\n )\n .join(', ');\n\n return !isHDR\n ? formatShadow('.')\n : {\n '.': formatShadow('.'),\n srgb: formatShadow('srgb'),\n p3: formatShadow('p3'),\n rec2020: formatShadow('rec2020'),\n };\n}\n","import type { StringTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert string value to CSS */\nexport function transformString(token: StringTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n // this seems like a useless function—because it is—but this is a placeholder\n // that can handle unexpected values in the future should any arise\n return String(token.$value);\n}\n","import type { CubicBezierTokenNormalized, DurationTokenNormalized, TransitionTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDuration } from './duration.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert transition value to shorthand */\nexport function transformTransition(token: TransitionTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const duration = token.partialAliasOf?.duration\n ? transformAlias(tokensSet[token.partialAliasOf.duration]!)\n : transformDuration({ $value: token.$value.duration } as DurationTokenNormalized, options);\n const delay = token.partialAliasOf?.delay\n ? transformAlias(tokensSet[token.partialAliasOf.delay]!)\n : transformDuration({ $value: token.$value.delay } as DurationTokenNormalized, options);\n const timingFunction = token.partialAliasOf?.timingFunction\n ? transformAlias(tokensSet[token.partialAliasOf.timingFunction]!)\n : transformCubicBezier({ $value: token.$value.timingFunction } as CubicBezierTokenNormalized, options);\n\n return `${duration} ${delay} ${timingFunction}`;\n}\n","import { kebabCase } from '../string.js';\nimport type {\n DimensionTokenNormalized,\n FontFamilyTokenNormalized,\n FontWeightTokenNormalized,\n NumberTokenNormalized,\n StringTokenNormalized,\n TokenNormalized,\n TypographyTokenNormalized,\n} from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformNumber } from './number.js';\nimport { transformString } from './string.js';\n\n/** Convert typography value to multiple CSS values */\nexport function transformTypography(token: TypographyTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n const output: Record<string, string> = {};\n for (const [property, subvalue] of Object.entries(token.$value)) {\n let transformedValue: string;\n const aliasedID = token.aliasChain?.[0] ?? token.partialAliasOf?.[property];\n if (aliasedID) {\n const resolvedToken = tokensSet[aliasedID] as TypographyTokenNormalized;\n transformedValue = transformAlias(\n // if resolving against a typography token, inject the property as well\n resolvedToken.$type === 'typography' ? ({ id: `${aliasedID}-${property}` } as TokenNormalized) : resolvedToken,\n );\n } else {\n switch (property) {\n case 'fontFamily': {\n transformedValue = transformFontFamily({ $value: subvalue } as FontFamilyTokenNormalized, options);\n break;\n }\n case 'fontSize':\n case 'letterSpacing': {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n break;\n }\n case 'fontWeight': {\n transformedValue = transformFontWeight({ $value: subvalue } as FontWeightTokenNormalized, options);\n break;\n }\n case 'lineHeight': {\n if (typeof subvalue === 'number') {\n transformedValue = transformNumber({ $value: subvalue } as NumberTokenNormalized, options);\n } else {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n }\n break;\n }\n default: {\n transformedValue = transformString({ $value: subvalue } as StringTokenNormalized, options);\n break;\n }\n }\n }\n output[kebabCase(property)] = transformedValue;\n }\n return output;\n}\n","import type { TokenNormalized } from '../types.js';\nimport { transformBoolean } from './boolean.js';\nimport { transformBorder } from './border.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDimension } from './dimension.js';\nimport { transformDuration } from './duration.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { transformGradient } from './gradient.js';\nimport { transformLink } from './link.js';\nimport { transformNumber } from './number.js';\nimport { transformShadow } from './shadow.js';\nimport { transformString } from './string.js';\nimport { transformStrokeStyle } from './stroke-style.js';\nimport { transformTransition } from './transition.js';\nimport { transformTypography } from './typography.js';\n\nexport * from './boolean.js';\nexport * from './border.js';\nexport * from './color.js';\nexport * from './cubic-bezier.js';\nexport * from './dimension.js';\nexport * from './duration.js';\nexport * from './font-family.js';\nexport * from './font-weight.js';\nexport * from './gradient.js';\nexport * from './lib.js';\nexport * from './link.js';\nexport * from './number.js';\nexport * from './shadow.js';\nexport * from './string.js';\nexport * from './stroke-style.js';\nexport * from './transition.js';\nexport * from './typography.js';\n\n/** Main CSS Transform */\nexport function transformCSSValue<T extends TokenNormalized = TokenNormalized>(\n token: T,\n { mode, ...options }: { mode: keyof T['mode'] } & TransformCSSValueOptions,\n) {\n const selectedMode = token.mode[mode as keyof typeof token.mode];\n if (!selectedMode) {\n return;\n }\n const tokenWithModeValue: T = {\n id: token.id,\n $type: token.$type,\n // note: do NOT carry over aliasOf/partialAliasOf as that will result in incorrect values\n ...selectedMode,\n } as any;\n switch (tokenWithModeValue.$type) {\n case 'boolean': {\n return transformBoolean(tokenWithModeValue, options);\n }\n case 'border': {\n return transformBorder(tokenWithModeValue, options);\n }\n case 'color': {\n return transformColor(tokenWithModeValue, options);\n }\n case 'cubicBezier': {\n return transformCubicBezier(tokenWithModeValue, options);\n }\n case 'dimension': {\n return transformDimension(tokenWithModeValue, options);\n }\n case 'duration': {\n return transformDuration(tokenWithModeValue, options);\n }\n case 'fontFamily': {\n return transformFontFamily(tokenWithModeValue, options);\n }\n case 'fontWeight': {\n return transformFontWeight(tokenWithModeValue, options);\n }\n case 'gradient': {\n return transformGradient(tokenWithModeValue, options);\n }\n case 'link': {\n return transformLink(tokenWithModeValue, options);\n }\n case 'number': {\n return transformNumber(tokenWithModeValue, options);\n }\n case 'shadow': {\n return transformShadow(tokenWithModeValue, options);\n }\n case 'string': {\n return transformString(tokenWithModeValue, options);\n }\n case 'strokeStyle': {\n return transformStrokeStyle(tokenWithModeValue, options);\n }\n case 'transition': {\n return transformTransition(tokenWithModeValue, options);\n }\n case 'typography': {\n return transformTypography(tokenWithModeValue, options);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"css.js","names":["token: TokenNormalized","name: string","token: BooleanTokenNormalized","token: ColorTokenNormalized","options: TransformCSSValueOptions","formatColor: (color: Color) => string","converters: Record<keyof typeof CULORI_TO_CSS, (color: Color) => Color>","$value: ColorTokenNormalized['$value']","culoriColor: Color","token: DimensionTokenNormalized","options: TransformCSSValueOptions","token: StrokeStyleTokenNormalized","options: TransformCSSValueOptions","token: BorderTokenNormalized","options: TransformCSSValueOptions","colorKey: string","token: CubicBezierTokenNormalized","options: TransformCSSValueOptions","token: DurationTokenNormalized","options: TransformCSSValueOptions","token: FontFamilyTokenNormalized","options: TransformCSSValueOptions","token: FontWeightTokenNormalized","options: TransformCSSValueOptions","token: GradientTokenNormalized","options: TransformCSSValueOptions","colors: (string | WideGamutColorValue)[]","positions: string[]","i: number","token: LinkTokenNormalized","options: TransformCSSValueOptions","token: NumberTokenNormalized","options: TransformCSSValueOptions","value: ShadowValueNormalized","options: TransformCSSValueOptions & {\n colorValue: string;\n partialAliasOf?: Partial<Record<keyof typeof value, string>>;\n }","token: ShadowTokenNormalized","options: TransformCSSValueOptions","colorKey: string","token: StringTokenNormalized","options: TransformCSSValueOptions","token: TransitionTokenNormalized","options: TransformCSSValueOptions","token: TypographyTokenNormalized","options: TransformCSSValueOptions","output: Record<string, string>","transformedValue: string","token: T","tokenWithModeValue: T"],"sources":["../src/css/lib.ts","../src/css/boolean.ts","../src/css/color.ts","../src/css/dimension.ts","../src/css/stroke-style.ts","../src/css/border.ts","../src/css/cubic-bezier.ts","../src/css/duration.ts","../src/css/font-family.ts","../src/css/font-weight.ts","../src/css/gradient.ts","../src/css/link.ts","../src/css/number.ts","../src/css/shadow.ts","../src/css/string.ts","../src/css/transition.ts","../src/css/typography.ts","../src/css/index.ts"],"sourcesContent":["import type { TokenNormalized } from '../types.js';\n\n/** Function that generates a var(…) statement */\nexport type IDGenerator<T = TokenNormalized> = (token: T) => string;\n\nexport function defaultAliasTransform(token: TokenNormalized) {\n if (!token) {\n throw new Error('Undefined token');\n }\n return `var(${makeCSSVar(token.id)})`;\n}\n\n/** Generate shorthand CSS for select token types */\nexport function generateShorthand({ $type, localID }: { $type: string; localID: string }): string | undefined {\n switch ($type) {\n case 'transition': {\n return ['duration', 'delay', 'timing-function']\n .map((p) => makeCSSVar(`${localID}-${p}`, { wrapVar: true }))\n .join(' ');\n }\n // note: \"typography\" is not set in shorthand because it can often unset values unintentionally.\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/font\n }\n}\n\nconst CSS_VAR_RE =\n /(?:(\\p{Uppercase_Letter}?[\\p{Lowercase_Letter}\\p{Number}]+|[\\p{Uppercase_Letter}\\p{Number}]+|[\\u{80}-\\u{10FFFF}\\p{Number}]+)|.)/u;\n\nexport interface MakeCSSVarOptions {\n /** Prefix with string */\n prefix?: string;\n /**\n * Wrap with `var(…)`\n * @default false\n */\n wrapVar?: boolean;\n}\n\n/**\n * Generate a valid CSS variable from any string\n * Code by @dfrankland\n */\nexport function makeCSSVar(name: string, { prefix, wrapVar = false }: MakeCSSVarOptions = {}): string {\n if (typeof name !== 'string') {\n throw new Error(`makeCSSVar() Expected string, received ${name}`);\n }\n\n let property = name.split(CSS_VAR_RE).filter(Boolean).join('-');\n if (prefix && !property.startsWith(`${prefix}-`)) {\n property = `${prefix}-${property}`;\n }\n const finalProperty = `--${property}`.toLocaleLowerCase();\n return wrapVar ? `var(${finalProperty})` : finalProperty;\n}\n","import type { BooleanTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert boolean value to CSS string */\nexport function transformBoolean(\n token: BooleanTokenNormalized,\n { tokensSet, transformAlias = defaultAliasTransform }: TransformCSSValueOptions,\n): string {\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value === true ? '1' : '0';\n}\n","import {\n type Color,\n displayable,\n formatCss,\n formatHex,\n formatHex8,\n modeA98,\n modeHsl,\n modeHwb,\n modeLab,\n modeLab65,\n modeLch,\n modeLrgb,\n modeOkhsv,\n modeOklab,\n modeOklch,\n modeP3,\n modeProphoto,\n modeRec2020,\n modeRgb,\n modeXyz50,\n modeXyz65,\n toGamut,\n useMode,\n} from 'culori/fn';\nimport { CSS_TO_CULORI, type CULORI_TO_CSS, parseColor, tokenToCulori } from '../color.js';\nimport type { ColorTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nexport type WideGamutColorValue = {\n '.': string;\n srgb: string;\n p3: string;\n rec2020: string;\n};\n\n/** Convert color value to CSS string */\nexport function transformColor(\n token: ColorTokenNormalized,\n options: TransformCSSValueOptions,\n): string | WideGamutColorValue {\n const { transformAlias = defaultAliasTransform, tokensSet } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const {\n colorSpace,\n components,\n alpha = 1,\n } = typeof token.$value === 'string' ? parseColor(token.$value) : token.$value;\n const color = tokenToCulori({ colorSpace, components, alpha });\n\n if (!color) {\n throw new Error(`Can’t convert color ${JSON.stringify(token.$value)} to Culori color`);\n }\n\n let formatColor: (color: Color) => string = formatCss;\n if (options.color?.legacyHex) {\n formatColor = color.alpha !== 1 ? formatHex8 : formatHex;\n }\n\n return displayable(color) ? formatColor(color) : downsample({ colorSpace, components, alpha }, color);\n}\n\nconst converters: Record<keyof typeof CULORI_TO_CSS, (color: Color) => Color> = {\n a98: useMode(modeA98),\n hsl: useMode(modeHsl),\n hwb: useMode(modeHwb),\n lab: useMode(modeLab),\n lab65: useMode(modeLab65),\n lch: useMode(modeLch),\n lrgb: useMode(modeLrgb),\n oklab: useMode(modeOklab),\n oklch: useMode(modeOklch),\n okhsv: useMode(modeOkhsv),\n p3: useMode(modeP3),\n prophoto: useMode(modeProphoto),\n rec2020: useMode(modeRec2020),\n rgb: useMode(modeRgb),\n xyz50: useMode(modeXyz50),\n xyz65: useMode(modeXyz65),\n};\n\n/**\n * Downsample color to sRGB/Display P3/Rec2020 colorspaces.\n * Note: because Culori tends to convert to RGB color spaces to ensure the operation,\n * we have to do an additional step of converting back. So we’re not really converting;\n * we’re just preserving the original colorspace.\n */\nfunction downsample($value: ColorTokenNormalized['$value'], culoriColor: Color) {\n if (!($value.colorSpace in CSS_TO_CULORI)) {\n throw new Error(\n `Invalid colorSpace \"${$value.colorSpace}\". Expected one of: ${Object.keys(CSS_TO_CULORI).join(', ')}`,\n );\n }\n const conversionSpace = CSS_TO_CULORI[$value.colorSpace] || 'oklab';\n let gamutSpace = conversionSpace;\n // bugfix. \"lab\" and \"oklab\" have a bug in Culori\n // https://github.com/Evercoder/culori/issues/261\n if (gamutSpace === 'lab' || gamutSpace === 'lab65') {\n gamutSpace = 'lch';\n } else if (gamutSpace === 'oklab') {\n gamutSpace = 'oklch';\n }\n const srgb = converters[conversionSpace](toGamut('rgb', gamutSpace)(culoriColor));\n const p3 = converters[conversionSpace](toGamut('p3', gamutSpace)(culoriColor));\n const rec2020 = converters[conversionSpace](toGamut('rec2020', gamutSpace)(culoriColor));\n return {\n '.': formatCss(culoriColor),\n srgb: formatCss(srgb),\n p3: formatCss(p3),\n rec2020: formatCss(rec2020),\n };\n}\n","import type { DimensionTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert dimension value to CSS */\nexport function transformDimension(token: DimensionTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return token.$value.value === 0 ? '0' : `${token.$value.value}${token.$value.unit}`;\n}\n","import type { StrokeStyleTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert strokeStyle value to CSS */\nexport function transformStrokeStyle(token: StrokeStyleTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return typeof token.$value === 'string' ? token.$value : 'dashed'; // CSS doesn’t have `dash-array`; it’s just \"dashed\"\n}\n","import { displayable } from 'culori';\nimport type {\n BorderTokenNormalized,\n ColorTokenNormalized,\n DimensionTokenNormalized,\n StrokeStyleTokenNormalized,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformStrokeStyle } from './stroke-style.js';\n\n/** Convert border value to multiple CSS values */\nexport function transformBorder(token: BorderTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const width = token.partialAliasOf?.width\n ? transformAlias(tokensSet[token.partialAliasOf.width]!)\n : transformDimension({ $value: token.$value.width } as DimensionTokenNormalized, options);\n const color = token.partialAliasOf?.color\n ? transformAlias(tokensSet[token.partialAliasOf.color]!)\n : transformColor({ $value: token.$value.color } as ColorTokenNormalized, options);\n const style = token.partialAliasOf?.style\n ? transformAlias(tokensSet[token.partialAliasOf.style]!)\n : transformStrokeStyle({ $value: token.$value.style } as StrokeStyleTokenNormalized, options);\n\n const formatBorder = (colorKey: string) =>\n [width, style, typeof color === 'string' ? color : color[colorKey as keyof typeof color]].join(' ');\n\n return typeof color === 'string' || displayable(color.p3)\n ? formatBorder('.')\n : {\n '.': formatBorder('.'),\n srgb: formatBorder('srgb'),\n p3: formatBorder('p3'),\n rec2020: formatBorder('rec2020'),\n };\n}\n","import type { CubicBezierTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert cubicBezier value to CSS */\nexport function transformCubicBezier(token: CubicBezierTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `cubic-bezier(${token.$value\n .map((v, i) => (token.partialAliasOf?.[i] ? transformAlias(tokensSet[token.partialAliasOf[i]]!) : v))\n .join(', ')})`;\n}\n","import type { DurationTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert duration value to CSS */\nexport function transformDuration(token: DurationTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n return `${token.$value.value}${token.$value.unit}`;\n}\n","import type { FontFamilyTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\nconst FONT_NAME_KEYWORD = /^[a-z-]+$/;\n\nexport function transformFontFamily(token: FontFamilyTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return token.$value.map((fontName) => (FONT_NAME_KEYWORD.test(fontName) ? fontName : `\"${fontName}\"`)).join(', ');\n}\n","import type { FontWeightTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert fontWeight value to CSS */\nexport function transformFontWeight(token: FontWeightTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type { ColorTokenNormalized, GradientTokenNormalized } from '../types.js';\nimport { type WideGamutColorValue, transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert gradient value to CSS */\nexport function transformGradient(\n token: GradientTokenNormalized,\n options: TransformCSSValueOptions,\n): string | WideGamutColorValue {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n let isHDR = false;\n\n const colors: (string | WideGamutColorValue)[] = [];\n const positions: string[] = [];\n\n for (let i = 0; i < token.$value.length; i++) {\n const { color, position } = token.$value[i]!;\n const colorValue = token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: color } as ColorTokenNormalized, options);\n if (typeof colorValue !== 'string') {\n isHDR = true;\n }\n colors.push(colorValue);\n positions.push(\n token.partialAliasOf?.[i]?.position\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.position!]!)\n : `${100 * position}%`,\n );\n }\n\n function formatStop(i: number, colorKey = '.') {\n return `${typeof colors[i] === 'string' ? colors[i] : colors[i]![colorKey as keyof (typeof colors)[number]]} ${positions[i]}`;\n }\n\n return !isHDR\n ? token.$value.map((_, i) => formatStop(i, positions[i]!)).join(', ')\n : {\n '.': token.$value.map((_, i) => formatStop(i, '.')).join(', '),\n srgb: token.$value.map((_, i) => formatStop(i, 'srgb')).join(', '),\n p3: token.$value.map((_, i) => formatStop(i, 'p3')).join(', '),\n rec2020: token.$value.map((_, i) => formatStop(i, 'rec2020')).join(', '),\n };\n}\n","import type { LinkTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert link value to CSS */\nexport function transformLink(token: LinkTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return `url(\"${token.$value}\")`;\n}\n","import type { NumberTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert number value to CSS */\nexport function transformNumber(token: NumberTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n return String(token.$value);\n}\n","import type {\n ColorTokenNormalized,\n DimensionTokenNormalized,\n ShadowTokenNormalized,\n ShadowValueNormalized,\n} from '../types.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert shadow subvalue to CSS */\nexport function transformShadowLayer(\n value: ShadowValueNormalized,\n options: TransformCSSValueOptions & {\n colorValue: string;\n partialAliasOf?: Partial<Record<keyof typeof value, string>>;\n },\n): string | Record<string, string> {\n const { tokensSet, colorValue, partialAliasOf, transformAlias = defaultAliasTransform } = options;\n const offsetX = partialAliasOf?.offsetX\n ? transformAlias(tokensSet[partialAliasOf.offsetX]!)\n : transformDimension({ $value: value.offsetX } as DimensionTokenNormalized, options);\n const offsetY = partialAliasOf?.offsetY\n ? transformAlias(tokensSet[partialAliasOf.offsetY]!)\n : transformDimension({ $value: value.offsetY } as DimensionTokenNormalized, options);\n const blur = partialAliasOf?.blur\n ? transformAlias(tokensSet[partialAliasOf.blur]!)\n : transformDimension({ $value: value.blur } as DimensionTokenNormalized, options);\n const spread = partialAliasOf?.spread\n ? transformAlias(tokensSet[partialAliasOf.spread]!)\n : transformDimension({ $value: value.spread } as DimensionTokenNormalized, options);\n const inset = value?.inset === true ? 'inset' : undefined;\n\n return [inset, offsetX, offsetY, blur, spread, colorValue].filter(Boolean).join(' ');\n}\n\n/** Convert shadow value to CSS */\nexport function transformShadow(\n token: ShadowTokenNormalized,\n options: TransformCSSValueOptions,\n): string | Record<string, string> {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n const colors = token.$value.map((v, i) =>\n token.partialAliasOf?.[i]?.color\n ? transformAlias(tokensSet[token.partialAliasOf[i]!.color!]!)\n : transformColor({ $value: v.color } as ColorTokenNormalized, options),\n );\n const isHDR = colors.some((c) => typeof c === 'object');\n\n const formatShadow = (colorKey: string) =>\n token.$value\n .map((v, i) =>\n transformShadowLayer(v, {\n tokensSet,\n colorValue:\n typeof colors[i] === 'string'\n ? (colors[i] as string)\n : colors[i]![colorKey as keyof (typeof colors)[number]]!,\n partialAliasOf: token.partialAliasOf?.[i],\n transformAlias,\n }),\n )\n .join(', ');\n\n return !isHDR\n ? formatShadow('.')\n : {\n '.': formatShadow('.'),\n srgb: formatShadow('srgb'),\n p3: formatShadow('p3'),\n rec2020: formatShadow('rec2020'),\n };\n}\n","import type { StringTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert string value to CSS */\nexport function transformString(token: StringTokenNormalized, options: TransformCSSValueOptions): string {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n // this seems like a useless function—because it is—but this is a placeholder\n // that can handle unexpected values in the future should any arise\n return String(token.$value);\n}\n","import type { CubicBezierTokenNormalized, DurationTokenNormalized, TransitionTokenNormalized } from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDuration } from './duration.js';\nimport { defaultAliasTransform } from './lib.js';\n\n/** Convert transition value to shorthand */\nexport function transformTransition(token: TransitionTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n if (token.aliasChain?.[0]) {\n return transformAlias(tokensSet[token.aliasChain[0]]!);\n }\n\n const duration = token.partialAliasOf?.duration\n ? transformAlias(tokensSet[token.partialAliasOf.duration]!)\n : transformDuration({ $value: token.$value.duration } as DurationTokenNormalized, options);\n const delay = token.partialAliasOf?.delay\n ? transformAlias(tokensSet[token.partialAliasOf.delay]!)\n : transformDuration({ $value: token.$value.delay } as DurationTokenNormalized, options);\n const timingFunction = token.partialAliasOf?.timingFunction\n ? transformAlias(tokensSet[token.partialAliasOf.timingFunction]!)\n : transformCubicBezier({ $value: token.$value.timingFunction } as CubicBezierTokenNormalized, options);\n\n return `${duration} ${delay} ${timingFunction}`;\n}\n","import { kebabCase } from '../string.js';\nimport type {\n DimensionTokenNormalized,\n FontFamilyTokenNormalized,\n FontWeightTokenNormalized,\n NumberTokenNormalized,\n StringTokenNormalized,\n TokenNormalized,\n TypographyTokenNormalized,\n} from '../types.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformDimension } from './dimension.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { defaultAliasTransform } from './lib.js';\nimport { transformNumber } from './number.js';\nimport { transformString } from './string.js';\n\n/** Convert typography value to multiple CSS values */\nexport function transformTypography(token: TypographyTokenNormalized, options: TransformCSSValueOptions) {\n const { tokensSet, transformAlias = defaultAliasTransform } = options;\n const output: Record<string, string> = {};\n for (const [property, subvalue] of Object.entries(token.$value)) {\n let transformedValue: string;\n const aliasedID = token.aliasChain?.[0] ?? token.partialAliasOf?.[property];\n if (aliasedID) {\n const resolvedToken = tokensSet[aliasedID] as TypographyTokenNormalized;\n transformedValue = transformAlias(\n // if resolving against a typography token, inject the property as well\n resolvedToken.$type === 'typography' ? ({ id: `${aliasedID}-${property}` } as TokenNormalized) : resolvedToken,\n );\n } else {\n switch (property) {\n case 'fontFamily': {\n transformedValue = transformFontFamily({ $value: subvalue } as FontFamilyTokenNormalized, options);\n break;\n }\n case 'fontSize':\n case 'letterSpacing': {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n break;\n }\n case 'fontWeight': {\n transformedValue = transformFontWeight({ $value: subvalue } as FontWeightTokenNormalized, options);\n break;\n }\n case 'lineHeight': {\n if (typeof subvalue === 'number') {\n transformedValue = transformNumber({ $value: subvalue } as NumberTokenNormalized, options);\n } else {\n transformedValue = transformDimension({ $value: subvalue } as DimensionTokenNormalized, options);\n }\n break;\n }\n default: {\n transformedValue = transformString({ $value: subvalue } as StringTokenNormalized, options);\n break;\n }\n }\n }\n output[kebabCase(property)] = transformedValue;\n }\n return output;\n}\n","import type { TokenNormalized } from '../types.js';\nimport { transformBoolean } from './boolean.js';\nimport { transformBorder } from './border.js';\nimport { transformColor } from './color.js';\nimport type { TransformCSSValueOptions } from './css-types.js';\nimport { transformCubicBezier } from './cubic-bezier.js';\nimport { transformDimension } from './dimension.js';\nimport { transformDuration } from './duration.js';\nimport { transformFontFamily } from './font-family.js';\nimport { transformFontWeight } from './font-weight.js';\nimport { transformGradient } from './gradient.js';\nimport { transformLink } from './link.js';\nimport { transformNumber } from './number.js';\nimport { transformShadow } from './shadow.js';\nimport { transformString } from './string.js';\nimport { transformStrokeStyle } from './stroke-style.js';\nimport { transformTransition } from './transition.js';\nimport { transformTypography } from './typography.js';\n\nexport * from './boolean.js';\nexport * from './border.js';\nexport * from './color.js';\nexport * from './cubic-bezier.js';\nexport * from './dimension.js';\nexport * from './duration.js';\nexport * from './font-family.js';\nexport * from './font-weight.js';\nexport * from './gradient.js';\nexport * from './lib.js';\nexport * from './link.js';\nexport * from './number.js';\nexport * from './shadow.js';\nexport * from './string.js';\nexport * from './stroke-style.js';\nexport * from './transition.js';\nexport * from './typography.js';\n\n/** Main CSS Transform */\nexport function transformCSSValue<T extends TokenNormalized = TokenNormalized>(\n token: T,\n { mode, ...options }: { mode: keyof T['mode'] } & TransformCSSValueOptions,\n) {\n const selectedMode = token.mode[mode as keyof typeof token.mode];\n if (!selectedMode) {\n return;\n }\n const tokenWithModeValue: T = {\n id: token.id,\n $type: token.$type,\n // note: do NOT carry over aliasOf/partialAliasOf as that will result in incorrect values\n ...selectedMode,\n } as any;\n switch (tokenWithModeValue.$type) {\n case 'boolean': {\n return transformBoolean(tokenWithModeValue, options);\n }\n case 'border': {\n return transformBorder(tokenWithModeValue, options);\n }\n case 'color': {\n return transformColor(tokenWithModeValue, options);\n }\n case 'cubicBezier': {\n return transformCubicBezier(tokenWithModeValue, options);\n }\n case 'dimension': {\n return transformDimension(tokenWithModeValue, options);\n }\n case 'duration': {\n return transformDuration(tokenWithModeValue, options);\n }\n case 'fontFamily': {\n return transformFontFamily(tokenWithModeValue, options);\n }\n case 'fontWeight': {\n return transformFontWeight(tokenWithModeValue, options);\n }\n case 'gradient': {\n return transformGradient(tokenWithModeValue, options);\n }\n case 'link': {\n return transformLink(tokenWithModeValue, options);\n }\n case 'number': {\n return transformNumber(tokenWithModeValue, options);\n }\n case 'shadow': {\n return transformShadow(tokenWithModeValue, options);\n }\n case 'string': {\n return transformString(tokenWithModeValue, options);\n }\n case 'strokeStyle': {\n return transformStrokeStyle(tokenWithModeValue, options);\n }\n case 'transition': {\n return transformTransition(tokenWithModeValue, options);\n }\n case 'typography': {\n return transformTypography(tokenWithModeValue, options);\n }\n }\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,24 +1,25 @@
1
- import { AliasToken, AliasValue, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, ColorSpace, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized } from "./types-Ci92nIR9.js";
1
+ import { AliasToken, AliasValue, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, ColorSpace, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized } from "./types-BOWDcBsq.js";
2
2
  import "culori/css";
3
3
  import { Color } from "culori/fn";
4
4
 
5
5
  //#region src/color.d.ts
6
- declare const CULORI_TO_CSS: Record<Extract<Color['mode'], 'a98' | 'lab' | 'lab65' | 'lch' | 'oklab' | 'oklch' | 'hsl' | 'hsv' | 'hwb' | 'lrgb' | 'p3' | 'prophoto' | 'rec2020' | 'rgb' | 'xyz50' | 'xyz65'>, ColorSpace>;
6
+ declare const CULORI_TO_CSS: Record<Extract<Color['mode'], 'a98' | 'lab' | 'lab65' | 'lch' | 'oklab' | 'oklch' | 'okhsv' | 'hsl' | 'hwb' | 'lrgb' | 'p3' | 'prophoto' | 'rec2020' | 'rgb' | 'xyz50' | 'xyz65'>, ColorSpace>;
7
7
  declare const CSS_TO_CULORI: {
8
- readonly a98: "a98";
8
+ readonly 'a98-rgb': "a98";
9
9
  readonly 'display-p3': "p3";
10
10
  readonly hsl: "hsl";
11
- readonly hsv: "hsv";
12
11
  readonly hwb: "hwb";
13
12
  readonly lab: "lab";
14
13
  readonly 'lab-d65': "lab65";
15
14
  readonly lch: "lch";
16
15
  readonly oklab: "oklab";
17
16
  readonly oklch: "oklch";
17
+ readonly okhsv: "okhsv";
18
18
  readonly 'prophoto-rgb': "prophoto";
19
19
  readonly rec2020: "rec2020";
20
20
  readonly srgb: "rgb";
21
21
  readonly 'srgb-linear': "lrgb";
22
+ readonly xyz: "xyz65";
22
23
  readonly 'xyz-d50': "xyz50";
23
24
  readonly 'xyz-d65': "xyz65";
24
25
  };
@@ -26,6 +27,11 @@ declare const CSS_TO_CULORI: {
26
27
  declare function parseColor(color: string): ColorValueNormalized;
27
28
  /** Convert a color token to a Culori color */
28
29
  declare function tokenToCulori(value: ColorValueNormalized): Color | undefined;
30
+ interface ColorSpaceDefinition {
31
+ ranges: [min: number, max: number][];
32
+ }
33
+ /** Complete list of CSS Module 4 Colorspaces */
34
+ declare const COLORSPACE: Record<ColorSpace, ColorSpaceDefinition>;
29
35
  //# sourceMappingURL=color.d.ts.map
30
36
  //#endregion
31
37
  //#region src/id.d.ts
@@ -65,5 +71,5 @@ declare function validateCustomTransform(value: unknown, {
65
71
  //# sourceMappingURL=transform.d.ts.map
66
72
 
67
73
  //#endregion
68
- export { AliasToken, AliasValue, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, CSS_TO_CULORI, CULORI_TO_CSS, ColorSpace, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, CustomTransformOptions, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized, getTokenMatch, isAlias, kebabCase, makeAlias, padStr, parseAlias, parseColor, pluralize, splitID, tokenToCulori, validateCustomTransform };
74
+ export { AliasToken, AliasValue, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, COLORSPACE, CSS_TO_CULORI, CULORI_TO_CSS, ColorSpace, ColorSpaceDefinition, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, CustomTransformOptions, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized, getTokenMatch, isAlias, kebabCase, makeAlias, padStr, parseAlias, parseColor, pluralize, splitID, tokenToCulori, validateCustomTransform };
69
75
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/color.ts","../src/id.ts","../src/string.ts","../src/transform.ts"],"sourcesContent":[],"mappings":";;;;;cAMa,eAAe,OAC1B,QACE,kKAkBF;cAoBW;EAxCA,SAAA,GAAA,EAAA,KAsCH;EAAA,SAAA,YAAA,EAAA,IAAA;EAAA,SApCN,GAAA,EAAA,KAAA;EAAK,SADP,GAAA,EAAA,KAAA;EAAO,SAmBP,GAAA,EAAA,KAAA;EAAU,SApBgB,GAAA,EAAA,KAAA;EAAM,SAAA,SAAA,EAAA,OAAA;EAwCrB,SAAA,GAAA,EAAA,KAiBH;EAGM,SAAA,KAAU,EAAA,OAAA;EA+DV,SAAA,KAAA,EAAa,OAAA;EAAA,SAAA,cAAA,EAAA,UAAA;EAAA,SAAQ,OAAA,EAAA,SAAA;EAAoB,SAAG,IAAA,EAAA,KAAA;EAAK,SAAA,aAAA,EAAA,MAAA;;;;AC5HjE;AAKgB,iBDwDA,UAAA,CCxDa,KAAA,EAAA,MAAA,CAAA,EDwDc,oBCxDd;AAS7B;AAKgB,iBDyGA,aAAA,CCzGU,KAAA,EDyGW,oBCzGX,CAAA,EDyGkC,KCzGlC,GAAA,SAAA;AAe1B;;;;iBAlCgB,OAAA;;iBAKA,aAAA;;ADJH,iBCaG,SAAA,CDyBN,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;AApCN,iBCgBY,UAAA,CDhBZ,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;AAkBF,iBCac,OAAA,CDbd,EAAA,EAAA,MAAA,CAAA,EAAA;EAAU,KApBgB,EAAA,MAAA;EAAM,KAAA,CAAA,EAAA,MAAA;AAwClC,CAAA;AAoBA;;;;iBEjEgB,MAAA;;iBAuBA,+CAA+C,WAAW,IAAI;;AFlBjE,iBEuBG,SAAA,CFeN,GAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;UG5CO,sBAAA;;;;;AHMJ,iBGAG,uBAAA,CHsCN,KAAA,EAAA,OAAA,EAAA;EAAA;AAAA,CAAA,EGtCyD,sBHsCzD,CAAA,EAAA,IAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/color.ts","../src/id.ts","../src/string.ts","../src/transform.ts"],"sourcesContent":[],"mappings":";;;;;cAMa,eAAe,OAC1B,QACE,oKAkBF;cAoBW;EAxCA,SAAA,SAsCH,EAAA,KAAA;EAAA,SAAA,YAAA,EAAA,IAAA;EAAA,SApCN,GAAA,EAAA,KAAA;EAAK,SADP,GAAA,EAAA,KAAA;EAAO,SAmBP,GAAA,EAAA,KAAA;EAAU,SApBgB,SAAA,EAAA,OAAA;EAAM,SAAA,GAAA,EAAA,KAAA;EAwCrB,SAAA,KAAA,EAkBH,OAAA;EAGM,SAAA,KAAU,EAAA,OAAA;EAmEV,SAAA,KAAA,EAAa,OAAA;EAAA,SAAA,cAAA,EAAA,UAAA;EAAA,SAAQ,OAAA,EAAA,SAAA;EAAoB,SAAG,IAAA,EAAA,KAAA;EAAK,SAAA,aAAA,EAAA,MAAA;EA2DhD,SAAA,GAAA,EAAA,OAAA;EAKJ,SAAA,SAwHZ,EAAA,OAAA;EAAA,SAAA,SAAA,EAAA,OAAA;CAAA;;AAxHwB,iBAnIT,UAAA,CAmIS,KAAA,EAAA,MAAA,CAAA,EAnIkB,oBAmIlB;AAAM;iBAhEf,aAAA,QAAqB,uBAAuB;UA2D3C,oBAAA;;AC5LjB;AAKA;AASgB,cDmLH,UCnLY,EDmLA,MCnLA,CDmLO,UCnLP,EDmLmB,oBCnLnB,CAAA;AAKzB;;;;iBAnBgB,OAAA;;iBAKA,aAAA;;ADJH,iBCaG,SAAA,CDyBN,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;AApCN,iBCgBY,UAAA,CDhBZ,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;AAkBF,iBCac,OAAA,CDbd,EAAA,EAAA,MAAA,CAAA,EAAA;EAAU,KApBgB,EAAA,MAAA;EAAM,KAAA,CAAA,EAAA,MAAA;AAwClC,CAAA;AAqBA;;;;iBElEgB,MAAA;;iBAuBA,+CAA+C,WAAW,IAAI;;AFlBjE,iBEuBG,SAAA,CFeN,GAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;UG5CO,sBAAA;;;;;AHMJ,iBGAG,uBAAA,CHsCN,KAAA,EAAA,OAAA,EAAA;EAAA;AAAA,CAAA,EGtCyD,sBHsCzD,CAAA,EAAA,IAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CSS_TO_CULORI, CULORI_TO_CSS, kebabCase, padStr, parseColor, pluralize, tokenToCulori } from "./string-Cq7Oa0sE.js";
1
+ import { COLORSPACE, CSS_TO_CULORI, CULORI_TO_CSS, kebabCase, padStr, parseColor, pluralize, tokenToCulori } from "./string-BwN3ybNv.js";
2
2
  import wcmatch from "wildcard-match";
3
3
 
4
4
  //#region src/id.ts
@@ -48,5 +48,5 @@ function validateCustomTransform(value, { $type }) {
48
48
  }
49
49
 
50
50
  //#endregion
51
- export { CSS_TO_CULORI, CULORI_TO_CSS, getTokenMatch, isAlias, kebabCase, makeAlias, padStr, parseAlias, parseColor, pluralize, splitID, tokenToCulori, validateCustomTransform };
51
+ export { COLORSPACE, CSS_TO_CULORI, CULORI_TO_CSS, getTokenMatch, isAlias, kebabCase, makeAlias, padStr, parseAlias, parseColor, pluralize, splitID, tokenToCulori, validateCustomTransform };
52
52
  //# sourceMappingURL=index.js.map
package/dist/js.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TokenNormalized } from "./types-Ci92nIR9.js";
1
+ import { TokenNormalized } from "./types-BOWDcBsq.js";
2
2
 
3
3
  //#region src/js/index.d.ts
4
4
  interface TransformJSValueOptions {
@@ -4,9 +4,8 @@ import { formatHex, parse } from "culori/fn";
4
4
  //#region src/color.ts
5
5
  const HEX_RE = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;
6
6
  const CULORI_TO_CSS = {
7
- a98: "a98",
7
+ a98: "a98-rgb",
8
8
  hsl: "hsl",
9
- hsv: "hsv",
10
9
  hwb: "hwb",
11
10
  lab: "lab",
12
11
  lab65: "lab-d65",
@@ -14,6 +13,7 @@ const CULORI_TO_CSS = {
14
13
  lrgb: "srgb-linear",
15
14
  oklab: "oklab",
16
15
  oklch: "oklch",
16
+ okhsv: "okhsv",
17
17
  p3: "display-p3",
18
18
  prophoto: "prophoto-rgb",
19
19
  rec2020: "rec2020",
@@ -22,20 +22,21 @@ const CULORI_TO_CSS = {
22
22
  xyz65: "xyz-d65"
23
23
  };
24
24
  const CSS_TO_CULORI = {
25
- a98: "a98",
25
+ "a98-rgb": "a98",
26
26
  "display-p3": "p3",
27
27
  hsl: "hsl",
28
- hsv: "hsv",
29
28
  hwb: "hwb",
30
29
  lab: "lab",
31
30
  "lab-d65": "lab65",
32
31
  lch: "lch",
33
32
  oklab: "oklab",
34
33
  oklch: "oklch",
34
+ okhsv: "okhsv",
35
35
  "prophoto-rgb": "prophoto",
36
36
  rec2020: "rec2020",
37
37
  srgb: "rgb",
38
38
  "srgb-linear": "lrgb",
39
+ xyz: "xyz65",
39
40
  "xyz-d50": "xyz50",
40
41
  "xyz-d65": "xyz65"
41
42
  };
@@ -65,26 +66,22 @@ function parseColor(color) {
65
66
  break;
66
67
  }
67
68
  case "hsl": {
69
+ const maxS = COLORSPACE[colorSpace].ranges[1]?.[1] ?? 1;
70
+ const maxL = COLORSPACE[colorSpace].ranges[2]?.[1] ?? 1;
68
71
  components = [
69
72
  result.h ?? 0,
70
- result.s,
71
- result.l
72
- ];
73
- break;
74
- }
75
- case "hsv": {
76
- components = [
77
- result.h ?? 0,
78
- result.s,
79
- result.v
73
+ result.s * maxS,
74
+ result.l * maxL
80
75
  ];
81
76
  break;
82
77
  }
83
78
  case "hwb": {
79
+ const maxW = COLORSPACE[colorSpace].ranges[1]?.[1] ?? 1;
80
+ const maxB = COLORSPACE[colorSpace].ranges[2]?.[1] ?? 1;
84
81
  components = [
85
82
  result.h ?? 0,
86
- result.w,
87
- result.b
83
+ result.w * maxW,
84
+ result.b * maxB
88
85
  ];
89
86
  break;
90
87
  }
@@ -107,6 +104,14 @@ function parseColor(color) {
107
104
  ];
108
105
  break;
109
106
  }
107
+ case "okhsv": {
108
+ components = [
109
+ result.h ?? 0,
110
+ result.s,
111
+ result.v
112
+ ];
113
+ break;
114
+ }
110
115
  case "xyz50":
111
116
  case "xyz65": {
112
117
  components = [
@@ -128,7 +133,7 @@ function parseColor(color) {
128
133
  /** Convert a color token to a Culori color */
129
134
  function tokenToCulori(value) {
130
135
  switch (value.colorSpace) {
131
- case "a98":
136
+ case "a98-rgb":
132
137
  case "display-p3":
133
138
  case "prophoto-rgb":
134
139
  case "rec2020":
@@ -145,31 +150,25 @@ function tokenToCulori(value) {
145
150
  }
146
151
  case "hsl": {
147
152
  const [h, s, l] = value.components;
153
+ const maxS = COLORSPACE[value.colorSpace].ranges[1]?.[1] ?? 1;
154
+ const maxL = COLORSPACE[value.colorSpace].ranges[2]?.[1] ?? 1;
148
155
  return {
149
156
  mode: "hsl",
150
157
  h,
151
- s,
152
- l,
153
- alpha: value.alpha
154
- };
155
- }
156
- case "hsv": {
157
- const [h, s, v] = value.components;
158
- return {
159
- mode: "hsv",
160
- h,
161
- s,
162
- v,
158
+ s: s / maxS,
159
+ l: l / maxL,
163
160
  alpha: value.alpha
164
161
  };
165
162
  }
166
163
  case "hwb": {
167
164
  const [h, w, b] = value.components;
165
+ const maxW = COLORSPACE[value.colorSpace].ranges[1]?.[1] ?? 1;
166
+ const maxB = COLORSPACE[value.colorSpace].ranges[2]?.[1] ?? 1;
168
167
  return {
169
168
  mode: "hwb",
170
169
  h,
171
- w,
172
- b,
170
+ w: w / maxW,
171
+ b: b / maxB,
173
172
  alpha: value.alpha
174
173
  };
175
174
  }
@@ -197,20 +196,22 @@ function tokenToCulori(value) {
197
196
  alpha: value.alpha
198
197
  };
199
198
  }
200
- case "xyz-d50": {
201
- const [x, y, z] = value.components;
199
+ case "okhsv": {
200
+ const [h, s, v] = value.components;
202
201
  return {
203
- mode: "xyz50",
204
- x,
205
- y,
206
- z,
202
+ mode: value.colorSpace,
203
+ h,
204
+ s,
205
+ v,
207
206
  alpha: value.alpha
208
207
  };
209
208
  }
209
+ case "xyz":
210
+ case "xyz-d50":
210
211
  case "xyz-d65": {
211
212
  const [x, y, z] = value.components;
212
213
  return {
213
- mode: "xyz65",
214
+ mode: CSS_TO_CULORI[value.colorSpace],
214
215
  x,
215
216
  y,
216
217
  z,
@@ -220,6 +221,94 @@ function tokenToCulori(value) {
220
221
  default: throw new Error(`Invalid colorSpace "${value.colorSpace}". Expected one of ${Object.keys(CSS_TO_CULORI).join(", ")}`);
221
222
  }
222
223
  }
224
+ /** Complete list of CSS Module 4 Colorspaces */
225
+ const COLORSPACE = {
226
+ "a98-rgb": { ranges: [
227
+ [0, 1],
228
+ [0, 1],
229
+ [0, 1]
230
+ ] },
231
+ "display-p3": { ranges: [
232
+ [0, 1],
233
+ [0, 1],
234
+ [0, 1]
235
+ ] },
236
+ hsl: { ranges: [
237
+ [0, 360],
238
+ [0, 100],
239
+ [0, 100]
240
+ ] },
241
+ hwb: { ranges: [
242
+ [0, 360],
243
+ [0, 100],
244
+ [0, 100]
245
+ ] },
246
+ lab: { ranges: [
247
+ [0, 100],
248
+ [-125, 125],
249
+ [-125, 125]
250
+ ] },
251
+ "lab-d65": { ranges: [
252
+ [0, 100],
253
+ [-125, 125],
254
+ [-125, 125]
255
+ ] },
256
+ lch: { ranges: [
257
+ [0, 100],
258
+ [0, 150],
259
+ [0, 360]
260
+ ] },
261
+ oklab: { ranges: [
262
+ [0, 1],
263
+ [-.4, .4],
264
+ [-.4, .4]
265
+ ] },
266
+ oklch: { ranges: [
267
+ [0, 1],
268
+ [0, .4],
269
+ [0, 360]
270
+ ] },
271
+ okhsv: { ranges: [
272
+ [0, 360],
273
+ [0, 1],
274
+ [0, 1]
275
+ ] },
276
+ "prophoto-rgb": { ranges: [
277
+ [0, 1],
278
+ [0, 1],
279
+ [0, 1]
280
+ ] },
281
+ rec2020: { ranges: [
282
+ [0, 1],
283
+ [0, 1],
284
+ [0, 1]
285
+ ] },
286
+ srgb: { ranges: [
287
+ [0, 1],
288
+ [0, 1],
289
+ [0, 1]
290
+ ] },
291
+ "srgb-linear": { ranges: [
292
+ [0, 1],
293
+ [0, 1],
294
+ [0, 1]
295
+ ] },
296
+ "xyz-d50": { ranges: [
297
+ [0, 1],
298
+ [0, 1],
299
+ [0, 1]
300
+ ] },
301
+ xyz: { ranges: [
302
+ [0, 1],
303
+ [0, 1],
304
+ [0, 1]
305
+ ] },
306
+ "xyz-d65": { ranges: [
307
+ [0, 1],
308
+ [0, 1],
309
+ [0, 1]
310
+ ] }
311
+ };
223
312
 
224
313
  //#endregion
225
314
  //#region src/string.ts
@@ -261,5 +350,5 @@ function kebabCase(str) {
261
350
  }
262
351
 
263
352
  //#endregion
264
- export { CSS_TO_CULORI, CULORI_TO_CSS, kebabCase, padStr, parseColor, pluralize, tokenToCulori };
265
- //# sourceMappingURL=string-Cq7Oa0sE.js.map
353
+ export { COLORSPACE, CSS_TO_CULORI, CULORI_TO_CSS, kebabCase, padStr, parseColor, pluralize, tokenToCulori };
354
+ //# sourceMappingURL=string-BwN3ybNv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-BwN3ybNv.js","names":["CULORI_TO_CSS: Record<\n Extract<\n Color['mode'],\n | 'a98'\n | 'lab'\n | 'lab65'\n | 'lch'\n | 'oklab'\n | 'oklch'\n | 'okhsv'\n | 'hsl'\n | 'hwb'\n | 'lrgb'\n | 'p3'\n | 'prophoto'\n | 'rec2020'\n | 'rgb'\n | 'xyz50'\n | 'xyz65'\n >,\n ColorSpace\n>","color: string","components: [number, number, number]","value: ColorValueNormalized","COLORSPACE: Record<ColorSpace, ColorSpaceDefinition>","input: string","length: number","alignment: 'left' | 'center' | 'right'","count: number","singular: T","plural: T","str: string"],"sources":["../src/color.ts","../src/string.ts"],"sourcesContent":["import 'culori/css';\nimport { type Color, formatHex, parse } from 'culori/fn';\nimport type { ColorSpace, ColorValueNormalized } from './types.js';\n\nconst HEX_RE = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\n\nexport const CULORI_TO_CSS: Record<\n Extract<\n Color['mode'],\n | 'a98'\n | 'lab'\n | 'lab65'\n | 'lch'\n | 'oklab'\n | 'oklch'\n | 'okhsv'\n | 'hsl'\n | 'hwb'\n | 'lrgb'\n | 'p3'\n | 'prophoto'\n | 'rec2020'\n | 'rgb'\n | 'xyz50'\n | 'xyz65'\n >,\n ColorSpace\n> = {\n a98: 'a98-rgb',\n hsl: 'hsl',\n hwb: 'hwb',\n lab: 'lab',\n lab65: 'lab-d65',\n lch: 'lch',\n lrgb: 'srgb-linear',\n oklab: 'oklab',\n oklch: 'oklch',\n okhsv: 'okhsv',\n p3: 'display-p3',\n prophoto: 'prophoto-rgb',\n rec2020: 'rec2020',\n rgb: 'srgb',\n xyz50: 'xyz-d50',\n xyz65: 'xyz-d65',\n} as const;\n\nexport const CSS_TO_CULORI = {\n 'a98-rgb': 'a98',\n 'display-p3': 'p3',\n hsl: 'hsl',\n hwb: 'hwb',\n lab: 'lab',\n 'lab-d65': 'lab65',\n lch: 'lch',\n oklab: 'oklab',\n oklch: 'oklch',\n okhsv: 'okhsv',\n 'prophoto-rgb': 'prophoto',\n rec2020: 'rec2020',\n srgb: 'rgb',\n 'srgb-linear': 'lrgb',\n xyz: 'xyz65',\n 'xyz-d50': 'xyz50',\n 'xyz-d65': 'xyz65',\n} as const;\n\n/** Parse any color */\nexport function parseColor(color: string): ColorValueNormalized {\n const result = parse(color);\n if (!result) {\n throw new Error(`Unable to parse color \"${color}\"`);\n }\n if (!(result.mode in CULORI_TO_CSS)) {\n throw new Error(`Unsupported color space: ${result.mode}`);\n }\n const colorSpace = CULORI_TO_CSS[result.mode as keyof typeof CULORI_TO_CSS]!;\n let components: [number, number, number] = [0, 0, 0];\n switch (result.mode) {\n case 'a98':\n case 'rec2020':\n case 'p3':\n case 'prophoto':\n case 'lrgb':\n case 'rgb': {\n components = [result.r, result.g, result.b];\n break;\n }\n case 'hsl': {\n const maxS = COLORSPACE[colorSpace].ranges[1]?.[1] ?? 1.0;\n const maxL = COLORSPACE[colorSpace].ranges[2]?.[1] ?? 1.0;\n components = [result.h ?? 0, result.s * maxS, result.l * maxL];\n break;\n }\n case 'hwb': {\n const maxW = COLORSPACE[colorSpace].ranges[1]?.[1] ?? 1.0;\n const maxB = COLORSPACE[colorSpace].ranges[2]?.[1] ?? 1.0;\n components = [result.h ?? 0, result.w * maxW, result.b * maxB];\n break;\n }\n case 'lab':\n case 'lab65':\n case 'oklab': {\n components = [result.l, result.a, result.b];\n break;\n }\n case 'lch':\n case 'oklch': {\n components = [result.l, result.c, result.h ?? 0];\n break;\n }\n case 'okhsv': {\n components = [result.h ?? 0, result.s, result.v];\n break;\n }\n case 'xyz50':\n case 'xyz65': {\n components = [result.x, result.y, result.z];\n break;\n }\n }\n const value: ColorValueNormalized = {\n colorSpace,\n components,\n alpha: result.alpha ?? 1,\n };\n if (HEX_RE.test(color)) {\n // Note: this intentionally does NOT include alpha; it’s already in alpha.\n // Always use formatHex (not formatHex8).\n value.hex = formatHex(result);\n }\n return value;\n}\n\n/** Convert a color token to a Culori color */\nexport function tokenToCulori(value: ColorValueNormalized): Color | undefined {\n switch (value.colorSpace) {\n case 'a98-rgb':\n case 'display-p3':\n case 'prophoto-rgb':\n case 'rec2020':\n case 'srgb':\n case 'srgb-linear': {\n const [r, g, b] = value.components;\n return {\n mode: CSS_TO_CULORI[value.colorSpace] || value.colorSpace,\n r,\n g,\n b,\n alpha: value.alpha,\n } as Color;\n }\n case 'hsl': {\n const [h, s, l] = value.components;\n const maxS = COLORSPACE[value.colorSpace].ranges[1]?.[1] ?? 1;\n const maxL = COLORSPACE[value.colorSpace].ranges[2]?.[1] ?? 1;\n return { mode: 'hsl', h, s: s / maxS, l: l / maxL, alpha: value.alpha };\n }\n case 'hwb': {\n const [h, w, b] = value.components;\n const maxW = COLORSPACE[value.colorSpace].ranges[1]?.[1] ?? 1;\n const maxB = COLORSPACE[value.colorSpace].ranges[2]?.[1] ?? 1;\n return { mode: 'hwb', h, w: w / maxW, b: b / maxB, alpha: value.alpha };\n }\n case 'lab':\n case 'lab-d65':\n case 'oklab': {\n const [l, a, b] = value.components;\n const mode = value.colorSpace === 'lab-d65' ? 'lab65' : value.colorSpace;\n return { mode, l, a, b, alpha: value.alpha };\n }\n case 'lch':\n case 'oklch': {\n const [l, c, h] = value.components;\n return { mode: value.colorSpace, l, c, h, alpha: value.alpha };\n }\n case 'okhsv': {\n const [h, s, v] = value.components;\n return { mode: value.colorSpace, h, s, v, alpha: value.alpha };\n }\n case 'xyz':\n case 'xyz-d50':\n case 'xyz-d65': {\n const [x, y, z] = value.components;\n return { mode: CSS_TO_CULORI[value.colorSpace], x, y, z, alpha: value.alpha };\n }\n default: {\n throw new Error(\n `Invalid colorSpace \"${value.colorSpace}\". Expected one of ${Object.keys(CSS_TO_CULORI).join(', ')}`,\n );\n }\n }\n}\n\nexport interface ColorSpaceDefinition {\n ranges: [min: number, max: number][];\n}\n\n/** Complete list of CSS Module 4 Colorspaces */\nexport const COLORSPACE: Record<ColorSpace, ColorSpaceDefinition> = {\n 'a98-rgb': {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n 'display-p3': {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n hsl: {\n ranges: [\n [0.0, 360.0],\n [0.0, 100.0],\n [0.0, 100.0],\n ],\n },\n hwb: {\n ranges: [\n [0.0, 360.0],\n [0.0, 100.0],\n [0.0, 100.0],\n ],\n },\n lab: {\n ranges: [\n [0.0, 100.0],\n [-125.0, 125.0],\n [-125.0, 125.0],\n ],\n },\n 'lab-d65': {\n ranges: [\n [0.0, 100.0],\n [-125.0, 125.0],\n [-125.0, 125.0],\n ],\n },\n lch: {\n ranges: [\n [0.0, 100.0],\n [0, 150.0],\n [0.0, 360.0],\n ],\n },\n oklab: {\n ranges: [\n [0.0, 1.0],\n [-0.4, 0.4],\n [-0.4, 0.4],\n ],\n },\n oklch: {\n ranges: [\n [0.0, 1.0],\n [0.0, 0.4],\n [0.0, 360.0],\n ],\n },\n okhsv: {\n ranges: [\n [0.0, 360.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n 'prophoto-rgb': {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n rec2020: {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n srgb: {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n 'srgb-linear': {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n 'xyz-d50': {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n xyz: {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n 'xyz-d65': {\n ranges: [\n [0.0, 1.0],\n [0.0, 1.0],\n [0.0, 1.0],\n ],\n },\n};\n","/** Pad string lengths */\nexport function padStr(input: string, length: number, alignment: 'left' | 'center' | 'right' = 'left'): string {\n const d =\n Math.min(length || 0, 1000) - // guard against NaNs and Infinity\n input.length;\n if (d > 0) {\n switch (alignment) {\n case 'left': {\n return `${input}${' '.repeat(d)}`;\n }\n case 'right': {\n return `${' '.repeat(d)}${input}`;\n }\n case 'center': {\n const left = Math.floor(d / 2);\n const right = d - left;\n return `${' '.repeat(left)}${input}${' '.repeat(right)}`;\n }\n }\n }\n return input;\n}\n\n/** Pluralize strings */\nexport function pluralize<T = string>(count: number, singular: T, plural: T): T {\n return count === 1 ? singular : plural;\n}\n\n/** Turn a string into kebab-case */\nexport function kebabCase(str: string): string {\n let output = '';\n for (const c of str.split('')) {\n if (c === '.') {\n output += '-';\n continue;\n }\n let isFirstUppercase = true;\n if (isFirstUppercase && /\\p{Uppercase_Letter}/u.test(c)) {\n output += `-${c.toLocaleLowerCase()}`;\n isFirstUppercase = false; // don’t break apart multiple consecutive uppercase letters\n continue;\n } else {\n isFirstUppercase = true; // reset\n }\n\n output += c;\n }\n return output;\n}\n"],"mappings":"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"}
@@ -274,7 +274,7 @@ interface ColorValueNormalized {
274
274
  /** Hex fallback (for sRGB) */
275
275
  hex?: string;
276
276
  }
277
- type ColorSpace = 'a98' | 'display-p3' | 'hsl' | 'hsv' | 'hwb' | 'lab' | 'lab-d65' | 'lch' | 'oklab' | 'oklch' | 'prophoto-rgb' | 'rec2020' | 'srgb-linear' | 'srgb' | 'xyz-d50' | 'xyz-d65';
277
+ type ColorSpace = 'a98-rgb' | 'display-p3' | 'hsl' | 'hwb' | 'lab' | 'lab-d65' | 'lch' | 'okhsv' | 'oklab' | 'oklch' | 'prophoto-rgb' | 'rec2020' | 'srgb-linear' | 'srgb' | 'xyz' | 'xyz-d50' | 'xyz-d65';
278
278
  interface CubicBezierTokenNormalized extends TokenNormalizedCore<'cubicBezier'> {
279
279
  $value: CubicBezierValue;
280
280
  partialAliasOf?: [string | undefined, string | undefined, string | undefined, string | undefined];
@@ -400,4 +400,4 @@ interface TypographyValueNormalized {
400
400
 
401
401
  //#endregion
402
402
  export { AliasToken, AliasValue, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, ColorSpace, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized };
403
- //# sourceMappingURL=types-Ci92nIR9.d.ts.map
403
+ //# sourceMappingURL=types-BOWDcBsq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-Ci92nIR9.d.ts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"types-BOWDcBsq.d.ts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terrazzo/token-tools",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "Various utilities for token types",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"file":"string-Cq7Oa0sE.js","names":["CULORI_TO_CSS: Record<\n Extract<\n Color['mode'],\n | 'a98'\n | 'lab'\n | 'lab65'\n | 'lch'\n | 'oklab'\n | 'oklch'\n | 'hsl'\n | 'hsv'\n | 'hwb'\n | 'lrgb'\n | 'p3'\n | 'prophoto'\n | 'rec2020'\n | 'rgb'\n | 'xyz50'\n | 'xyz65'\n >,\n ColorSpace\n>","color: string","components: [number, number, number]","value: ColorValueNormalized","input: string","length: number","alignment: 'left' | 'center' | 'right'","count: number","singular: T","plural: T","str: string"],"sources":["../src/color.ts","../src/string.ts"],"sourcesContent":["import 'culori/css';\nimport { type Color, formatHex, parse } from 'culori/fn';\nimport type { ColorSpace, ColorValueNormalized } from './types.js';\n\nconst HEX_RE = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\n\nexport const CULORI_TO_CSS: Record<\n Extract<\n Color['mode'],\n | 'a98'\n | 'lab'\n | 'lab65'\n | 'lch'\n | 'oklab'\n | 'oklch'\n | 'hsl'\n | 'hsv'\n | 'hwb'\n | 'lrgb'\n | 'p3'\n | 'prophoto'\n | 'rec2020'\n | 'rgb'\n | 'xyz50'\n | 'xyz65'\n >,\n ColorSpace\n> = {\n a98: 'a98',\n hsl: 'hsl',\n hsv: 'hsv',\n hwb: 'hwb',\n lab: 'lab',\n lab65: 'lab-d65',\n lch: 'lch',\n lrgb: 'srgb-linear',\n oklab: 'oklab',\n oklch: 'oklch',\n p3: 'display-p3',\n prophoto: 'prophoto-rgb',\n rec2020: 'rec2020',\n rgb: 'srgb',\n xyz50: 'xyz-d50',\n xyz65: 'xyz-d65',\n} as const;\n\nexport const CSS_TO_CULORI = {\n a98: 'a98',\n 'display-p3': 'p3',\n hsl: 'hsl',\n hsv: 'hsv',\n hwb: 'hwb',\n lab: 'lab',\n 'lab-d65': 'lab65',\n lch: 'lch',\n oklab: 'oklab',\n oklch: 'oklch',\n 'prophoto-rgb': 'prophoto',\n rec2020: 'rec2020',\n srgb: 'rgb',\n 'srgb-linear': 'lrgb',\n 'xyz-d50': 'xyz50',\n 'xyz-d65': 'xyz65',\n} as const;\n\n/** Parse any color */\nexport function parseColor(color: string): ColorValueNormalized {\n const result = parse(color);\n if (!result) {\n throw new Error(`Unable to parse color \"${color}\"`);\n }\n if (!(result.mode in CULORI_TO_CSS)) {\n throw new Error(`Unsupported color space: ${result.mode}`);\n }\n const colorSpace = CULORI_TO_CSS[result.mode as keyof typeof CULORI_TO_CSS]!;\n let components: [number, number, number] = [0, 0, 0];\n switch (result.mode) {\n case 'a98':\n case 'rec2020':\n case 'p3':\n case 'prophoto':\n case 'lrgb':\n case 'rgb': {\n components = [result.r, result.g, result.b];\n break;\n }\n case 'hsl': {\n components = [result.h ?? 0, result.s, result.l];\n break;\n }\n case 'hsv': {\n components = [result.h ?? 0, result.s, result.v];\n break;\n }\n case 'hwb': {\n components = [result.h ?? 0, result.w, result.b];\n break;\n }\n case 'lab':\n case 'lab65':\n case 'oklab': {\n components = [result.l, result.a, result.b];\n break;\n }\n case 'lch':\n case 'oklch': {\n components = [result.l, result.c, result.h ?? 0];\n break;\n }\n case 'xyz50':\n case 'xyz65': {\n components = [result.x, result.y, result.z];\n break;\n }\n }\n const value: ColorValueNormalized = {\n colorSpace,\n components,\n alpha: result.alpha ?? 1,\n };\n if (HEX_RE.test(color)) {\n // Note: this intentionally does NOT include alpha; it’s already in alpha.\n // Always use formatHex (not formatHex8).\n value.hex = formatHex(result);\n }\n return value;\n}\n\n/** Convert a color token to a Culori color */\nexport function tokenToCulori(value: ColorValueNormalized): Color | undefined {\n switch (value.colorSpace) {\n case 'a98':\n case 'display-p3':\n case 'prophoto-rgb':\n case 'rec2020':\n case 'srgb':\n case 'srgb-linear': {\n const [r, g, b] = value.components;\n return {\n mode: CSS_TO_CULORI[value.colorSpace] || value.colorSpace,\n r,\n g,\n b,\n alpha: value.alpha,\n } as Color;\n }\n case 'hsl': {\n const [h, s, l] = value.components;\n return { mode: 'hsl', h, s, l, alpha: value.alpha };\n }\n case 'hsv': {\n const [h, s, v] = value.components;\n return { mode: 'hsv', h, s, v, alpha: value.alpha };\n }\n case 'hwb': {\n const [h, w, b] = value.components;\n return { mode: 'hwb', h, w, b, alpha: value.alpha };\n }\n case 'lab':\n case 'lab-d65':\n case 'oklab': {\n const [l, a, b] = value.components;\n const mode = value.colorSpace === 'lab-d65' ? 'lab65' : value.colorSpace;\n return { mode, l, a, b, alpha: value.alpha };\n }\n case 'lch':\n case 'oklch': {\n const [l, c, h] = value.components;\n return { mode: value.colorSpace, l, c, h, alpha: value.alpha };\n }\n case 'xyz-d50': {\n const [x, y, z] = value.components;\n return { mode: 'xyz50', x, y, z, alpha: value.alpha };\n }\n case 'xyz-d65': {\n const [x, y, z] = value.components;\n return { mode: 'xyz65', x, y, z, alpha: value.alpha };\n }\n default: {\n throw new Error(\n `Invalid colorSpace \"${value.colorSpace}\". Expected one of ${Object.keys(CSS_TO_CULORI).join(', ')}`,\n );\n }\n }\n}\n","/** Pad string lengths */\nexport function padStr(input: string, length: number, alignment: 'left' | 'center' | 'right' = 'left'): string {\n const d =\n Math.min(length || 0, 1000) - // guard against NaNs and Infinity\n input.length;\n if (d > 0) {\n switch (alignment) {\n case 'left': {\n return `${input}${' '.repeat(d)}`;\n }\n case 'right': {\n return `${' '.repeat(d)}${input}`;\n }\n case 'center': {\n const left = Math.floor(d / 2);\n const right = d - left;\n return `${' '.repeat(left)}${input}${' '.repeat(right)}`;\n }\n }\n }\n return input;\n}\n\n/** Pluralize strings */\nexport function pluralize<T = string>(count: number, singular: T, plural: T): T {\n return count === 1 ? singular : plural;\n}\n\n/** Turn a string into kebab-case */\nexport function kebabCase(str: string): string {\n let output = '';\n for (const c of str.split('')) {\n if (c === '.') {\n output += '-';\n continue;\n }\n let isFirstUppercase = true;\n if (isFirstUppercase && /\\p{Uppercase_Letter}/u.test(c)) {\n output += `-${c.toLocaleLowerCase()}`;\n isFirstUppercase = false; // don’t break apart multiple consecutive uppercase letters\n continue;\n } else {\n isFirstUppercase = true; // reset\n }\n\n output += c;\n }\n return output;\n}\n"],"mappings":"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"}