@charcoal-ui/utils 5.0.0-beta.4 → 5.0.0-beta.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["transparentGradient","base: RgbaColor","effect: RgbaColor","parsed: RgbaColor"],"sources":["../src/index.ts"],"sourcesContent":["import { rgba, rgbToColorString, parseToRgb, linearGradient } from 'polished'\nimport type { RgbColor } from 'polished/lib/types/color'\n\nimport type {\n AlphaEffect,\n Effect,\n Effects,\n GradientMaterial,\n OpacityEffect,\n ReplaceEffect,\n TypographyDescriptor,\n} from '@charcoal-ui/foundation'\nimport type { Styles } from 'polished/lib/types/style'\n\nexport const GRADIENT_DIRECTIONS = [\n 'to top',\n 'to bottom',\n 'to left',\n 'to right',\n] as const\n\nexport type GradientDirection = (typeof GRADIENT_DIRECTIONS)[number]\n\nexport function transparentGradient(\n color: string,\n defaultDirection: GradientDirection = 'to bottom'\n) {\n return function transparentGradient(\n direction: GradientDirection | object = defaultDirection\n ): Styles {\n const transparent = rgba(color, 0)\n return linearGradient({\n colorStops: [color, transparent],\n fallback: transparent,\n toDirection: typeof direction === 'object' ? defaultDirection : direction,\n })\n }\n}\n\nexport function gradient(toDirection: GradientDirection = 'to bottom') {\n return function toLinearGradient(value: GradientMaterial): Styles {\n return linearGradient({\n colorStops: value.map(({ color, ratio }) => `${color} ${ratio}%`),\n fallback: value[0]?.color,\n toDirection,\n })\n }\n}\n\nexport function applyEffectToGradient(effect: Effects) {\n return function toGradient(value: GradientMaterial): GradientMaterial {\n return value.map(({ color, ratio }) => ({\n color: applyEffect(color, effect),\n ratio,\n }))\n }\n}\n\ninterface RgbaColor extends RgbColor {\n alpha?: number\n}\n\ninterface ReadonlyArrayConstructor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isArray(value: any): value is readonly any[]\n}\n\nexport function applyEffect(\n baseColor: string | null,\n effects: Effects\n): string {\n const color = baseColor ?? '#00000000'\n if ((Array as ReadonlyArrayConstructor).isArray(effects)) {\n return effects.reduce(applySingleEffect, color)\n }\n return applySingleEffect(color, effects)\n}\n\nfunction applySingleEffect(baseColor: string, effect: Effect): string {\n switch (effect.type) {\n case 'alpha':\n return applyAlpha(baseColor, effect)\n case 'opacity':\n return applyOpacity(baseColor, effect)\n case 'replace':\n return applyReplace(baseColor, effect)\n default:\n throw new RangeError(\n `Unknown effect type ${\n (effect as Effect).type\n }, upgrade @charcoal-ui/utils`\n )\n }\n}\n\nfunction applyAlpha(baseColor: string, { color, opacity }: AlphaEffect) {\n const base: RgbaColor = parseToRgb(baseColor)\n const effect: RgbaColor = parseToRgb(color)\n const src = [base.red, base.green, base.blue, base.alpha ?? 1.0] as const\n const dst = [\n effect.red,\n effect.green,\n effect.blue,\n clamp(0, 1, (effect.alpha ?? 1.0) * (opacity ?? 1.0)),\n ] as const\n return rgba(...alphaBlend(src, dst))\n}\n\nfunction applyOpacity(baseColor: string, { opacity }: OpacityEffect) {\n const parsed: RgbaColor = parseToRgb(baseColor)\n parsed.alpha = clamp(0, 1, (parsed.alpha ?? 1.0) * opacity)\n return rgbToColorString(parsed)\n}\n\nfunction applyReplace(\n baseColor: string,\n { color = baseColor, opacity }: ReplaceEffect\n) {\n if (opacity === undefined) {\n return color\n }\n const parsed: RgbaColor = parseToRgb(color)\n // NOTE: intentionally ignores any alpha value in the baseColor\n parsed.alpha = opacity\n return rgbToColorString(parsed)\n}\n\ntype Color4 = readonly [number, number, number, number]\n\n/**\n * NOTE: alpha component must be in range from 0.0 to 1.0. (0.0 represents a fully transparent)\n *\n * @param src `[r, g, b, alpha]` Background\n * @param dst `[r, g, b, alpha]` Foreground\n */\nfunction alphaBlend(src: Color4, dst: Color4): Color4 {\n const srcA = src[3]\n const dstA = dst[3]\n const outA = srcA + dstA * (1 - srcA)\n if (outA < EPS) {\n // blending 0% alpha with 0% alpha\n return [0, 0, 0, 0]\n }\n return [\n Math.round((src[0] * srcA * (1 - dstA) + dst[0] * dstA) / outA),\n Math.round((src[1] * srcA * (1 - dstA) + dst[1] * dstA) / outA),\n Math.round((src[2] * srcA * (1 - dstA) + dst[2] * dstA) / outA),\n outA,\n ]\n}\nconst EPS = 1e-6\n\nfunction clamp(min: number, max: number, value: number) {\n return Math.min(Math.max(value, min), max)\n}\n\n/**\n * affix `px` unit\n *\n * @param value pixel\n */\nexport function px(value: number) {\n return `${value}px`\n}\n\n/**\n * affix `s` unit\n *\n * @param value second\n */\nexport function dur(value: number) {\n return `${value}s`\n}\n\nexport const notDisabledSelector = `&:not(:disabled):not([aria-disabled]), &[aria-disabled=false]`\n\nexport const disabledSelector = `&:disabled, &[aria-disabled]:not([aria-disabled=false])`\n\n/**\n * Construct media query from breakpoint\n */\nexport function maxWidth(breakpoint: number) {\n return `(max-width: ${breakpoint - 1}px)`\n}\n\n/**\n * Derive half-leading from typography size\n */\nexport const halfLeading = ({\n fontSize,\n lineHeight,\n}: TypographyDescriptor): number => (lineHeight - fontSize) / 2\n\n/**\n * Namespaced custom property\n */\nexport const customPropertyToken = (\n id: string,\n modifiers: readonly string[] = []\n): `--charcoal-${string}` =>\n `--charcoal-${id}${modifiers.length === 0 ? '' : ['', modifiers].join('-')}`\n\n/**\n * @example\n * ```js\n * mapKeys({ a: 'aa', b: 'bb' }, (key) => key.toUpperCase()) // => { A: \"aa\", B: \"bb\" }\n * ````\n */\nexport function mapKeys<V, K extends string>(\n object: Record<string, V>,\n callback: (key: string) => K\n) {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => [callback(key), value])\n ) as Record<K, V>\n}\n\n/**\n * @example\n * ```js\n * mapObject({ a: 'aa', b: 'bb', c: 'cc' }, (key, value) =>\n * key === 'b' ? undefined : [key + '1', value.toUpperCase()]\n * ) // => { a1: \"AA\", c1: \"CC\" }\n * ```\n */\nexport function mapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (\n key: SourceKey,\n value: SourceValue\n ) => [DestKey, DestValue] | null | undefined\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n const entry = callback(key as SourceKey, value as SourceValue)\n if (entry) {\n return [entry]\n } else {\n return []\n }\n })\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```js\n * flatMapObject({ a: 'aa', b: 'bb' }, (key, value) => [\n * [key + '1', value + '1'],\n * [key + '2', value + '2'],\n * ]) // => { a1: \"aa1\", a2: \"aa2\", b1: \"bb1\", b2: \"bb2\" }\n * ```\n */\nexport function flatMapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][]\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n return callback(key as SourceKey, value as SourceValue)\n })\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```ts\n * filterObject(\n * { a: 'aa', b: 'bb', c: 'cc' },\n * (value): value is string => value !== 'bb'\n * ) // => { a: \"aa\", c: \"cc\" }\n * ```\n */\nexport function filterObject<Source, Dest extends Source>(\n source: Record<string, Source>,\n fn: (value: Source) => value is Dest\n) {\n return mapObject(source, (key, value) => {\n if (fn(value) === true) {\n return [key, value]\n } else {\n return null\n }\n }) as Record<string, Dest>\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["transparentGradient","base: RgbaColor","effect: RgbaColor","parsed: RgbaColor"],"sources":["../src/index.ts"],"sourcesContent":["import { rgba, rgbToColorString, parseToRgb, linearGradient } from 'polished'\nimport type { RgbColor } from 'polished/lib/types/color'\n\nimport type {\n AlphaEffect,\n Effect,\n Effects,\n GradientMaterial,\n OpacityEffect,\n ReplaceEffect,\n TypographyDescriptor,\n} from '@charcoal-ui/foundation'\nimport type { Styles } from 'polished/lib/types/style'\n\nexport const GRADIENT_DIRECTIONS = [\n 'to top',\n 'to bottom',\n 'to left',\n 'to right',\n] as const\n\nexport type GradientDirection = (typeof GRADIENT_DIRECTIONS)[number]\n\nexport function transparentGradient(\n color: string,\n defaultDirection: GradientDirection = 'to bottom',\n) {\n return function transparentGradient(\n direction: GradientDirection | object = defaultDirection,\n ): Styles {\n const transparent = rgba(color, 0)\n return linearGradient({\n colorStops: [color, transparent],\n fallback: transparent,\n toDirection: typeof direction === 'object' ? defaultDirection : direction,\n })\n }\n}\n\nexport function gradient(toDirection: GradientDirection = 'to bottom') {\n return function toLinearGradient(value: GradientMaterial): Styles {\n return linearGradient({\n colorStops: value.map(({ color, ratio }) => `${color} ${ratio}%`),\n fallback: value[0]?.color,\n toDirection,\n })\n }\n}\n\nexport function applyEffectToGradient(effect: Effects) {\n return function toGradient(value: GradientMaterial): GradientMaterial {\n return value.map(({ color, ratio }) => ({\n color: applyEffect(color, effect),\n ratio,\n }))\n }\n}\n\ninterface RgbaColor extends RgbColor {\n alpha?: number\n}\n\ninterface ReadonlyArrayConstructor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isArray(value: any): value is readonly any[]\n}\n\nexport function applyEffect(\n baseColor: string | null,\n effects: Effects,\n): string {\n const color = baseColor ?? '#00000000'\n if ((Array as ReadonlyArrayConstructor).isArray(effects)) {\n return effects.reduce(applySingleEffect, color)\n }\n return applySingleEffect(color, effects)\n}\n\nfunction applySingleEffect(baseColor: string, effect: Effect): string {\n switch (effect.type) {\n case 'alpha':\n return applyAlpha(baseColor, effect)\n case 'opacity':\n return applyOpacity(baseColor, effect)\n case 'replace':\n return applyReplace(baseColor, effect)\n default:\n throw new RangeError(\n `Unknown effect type ${\n (effect as Effect).type\n }, upgrade @charcoal-ui/utils`,\n )\n }\n}\n\nfunction applyAlpha(baseColor: string, { color, opacity }: AlphaEffect) {\n const base: RgbaColor = parseToRgb(baseColor)\n const effect: RgbaColor = parseToRgb(color)\n const src = [base.red, base.green, base.blue, base.alpha ?? 1.0] as const\n const dst = [\n effect.red,\n effect.green,\n effect.blue,\n clamp(0, 1, (effect.alpha ?? 1.0) * (opacity ?? 1.0)),\n ] as const\n return rgba(...alphaBlend(src, dst))\n}\n\nfunction applyOpacity(baseColor: string, { opacity }: OpacityEffect) {\n const parsed: RgbaColor = parseToRgb(baseColor)\n parsed.alpha = clamp(0, 1, (parsed.alpha ?? 1.0) * opacity)\n return rgbToColorString(parsed)\n}\n\nfunction applyReplace(\n baseColor: string,\n { color = baseColor, opacity }: ReplaceEffect,\n) {\n if (opacity === undefined) {\n return color\n }\n const parsed: RgbaColor = parseToRgb(color)\n // NOTE: intentionally ignores any alpha value in the baseColor\n parsed.alpha = opacity\n return rgbToColorString(parsed)\n}\n\ntype Color4 = readonly [number, number, number, number]\n\n/**\n * NOTE: alpha component must be in range from 0.0 to 1.0. (0.0 represents a fully transparent)\n *\n * @param src `[r, g, b, alpha]` Background\n * @param dst `[r, g, b, alpha]` Foreground\n */\nfunction alphaBlend(src: Color4, dst: Color4): Color4 {\n const srcA = src[3]\n const dstA = dst[3]\n const outA = srcA + dstA * (1 - srcA)\n if (outA < EPS) {\n // blending 0% alpha with 0% alpha\n return [0, 0, 0, 0]\n }\n return [\n Math.round((src[0] * srcA * (1 - dstA) + dst[0] * dstA) / outA),\n Math.round((src[1] * srcA * (1 - dstA) + dst[1] * dstA) / outA),\n Math.round((src[2] * srcA * (1 - dstA) + dst[2] * dstA) / outA),\n outA,\n ]\n}\nconst EPS = 1e-6\n\nfunction clamp(min: number, max: number, value: number) {\n return Math.min(Math.max(value, min), max)\n}\n\n/**\n * affix `px` unit\n *\n * @param value pixel\n */\nexport function px(value: number) {\n return `${value}px`\n}\n\n/**\n * affix `s` unit\n *\n * @param value second\n */\nexport function dur(value: number) {\n return `${value}s`\n}\n\nexport const notDisabledSelector = `&:not(:disabled):not([aria-disabled]), &[aria-disabled=false]`\n\nexport const disabledSelector = `&:disabled, &[aria-disabled]:not([aria-disabled=false])`\n\n/**\n * Construct media query from breakpoint\n */\nexport function maxWidth(breakpoint: number) {\n return `(max-width: ${breakpoint - 1}px)`\n}\n\n/**\n * Derive half-leading from typography size\n */\nexport const halfLeading = ({\n fontSize,\n lineHeight,\n}: TypographyDescriptor): number => (lineHeight - fontSize) / 2\n\n/**\n * Namespaced custom property\n */\nexport const customPropertyToken = (\n id: string,\n modifiers: readonly string[] = [],\n): `--charcoal-${string}` =>\n `--charcoal-${id}${modifiers.length === 0 ? '' : ['', modifiers].join('-')}`\n\n/**\n * @example\n * ```js\n * mapKeys({ a: 'aa', b: 'bb' }, (key) => key.toUpperCase()) // => { A: \"aa\", B: \"bb\" }\n * ````\n */\nexport function mapKeys<V, K extends string>(\n object: Record<string, V>,\n callback: (key: string) => K,\n) {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => [callback(key), value]),\n ) as Record<K, V>\n}\n\n/**\n * @example\n * ```js\n * mapObject({ a: 'aa', b: 'bb', c: 'cc' }, (key, value) =>\n * key === 'b' ? undefined : [key + '1', value.toUpperCase()]\n * ) // => { a1: \"AA\", c1: \"CC\" }\n * ```\n */\nexport function mapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue,\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (\n key: SourceKey,\n value: SourceValue,\n ) => [DestKey, DestValue] | null | undefined,\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n const entry = callback(key as SourceKey, value as SourceValue)\n if (entry) {\n return [entry]\n } else {\n return []\n }\n }),\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```js\n * flatMapObject({ a: 'aa', b: 'bb' }, (key, value) => [\n * [key + '1', value + '1'],\n * [key + '2', value + '2'],\n * ]) // => { a1: \"aa1\", a2: \"aa2\", b1: \"bb1\", b2: \"bb2\" }\n * ```\n */\nexport function flatMapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue,\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][],\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n return callback(key as SourceKey, value as SourceValue)\n }),\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```ts\n * filterObject(\n * { a: 'aa', b: 'bb', c: 'cc' },\n * (value): value is string => value !== 'bb'\n * ) // => { a: \"aa\", c: \"cc\" }\n * ```\n */\nexport function filterObject<Source, Dest extends Source>(\n source: Record<string, Source>,\n fn: (value: Source) => value is Dest,\n) {\n return mapObject(source, (key, value) => {\n if (fn(value) === true) {\n return [key, value]\n } else {\n return null\n }\n }) as Record<string, Dest>\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../foundation/src/typography.ts","../../foundation/src/color.ts","../../foundation/src/effect.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../foundation/src/typography.ts","../../foundation/src/color.ts","../../foundation/src/effect.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../foundation/src/typography.ts","../../foundation/src/color.ts","../../foundation/src/effect.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../foundation/src/typography.ts","../../foundation/src/color.ts","../../foundation/src/effect.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["transparentGradient","base: RgbaColor","effect: RgbaColor","parsed: RgbaColor"],"sources":["../src/index.ts"],"sourcesContent":["import { rgba, rgbToColorString, parseToRgb, linearGradient } from 'polished'\nimport type { RgbColor } from 'polished/lib/types/color'\n\nimport type {\n AlphaEffect,\n Effect,\n Effects,\n GradientMaterial,\n OpacityEffect,\n ReplaceEffect,\n TypographyDescriptor,\n} from '@charcoal-ui/foundation'\nimport type { Styles } from 'polished/lib/types/style'\n\nexport const GRADIENT_DIRECTIONS = [\n 'to top',\n 'to bottom',\n 'to left',\n 'to right',\n] as const\n\nexport type GradientDirection = (typeof GRADIENT_DIRECTIONS)[number]\n\nexport function transparentGradient(\n color: string,\n defaultDirection: GradientDirection = 'to bottom'\n) {\n return function transparentGradient(\n direction: GradientDirection | object = defaultDirection\n ): Styles {\n const transparent = rgba(color, 0)\n return linearGradient({\n colorStops: [color, transparent],\n fallback: transparent,\n toDirection: typeof direction === 'object' ? defaultDirection : direction,\n })\n }\n}\n\nexport function gradient(toDirection: GradientDirection = 'to bottom') {\n return function toLinearGradient(value: GradientMaterial): Styles {\n return linearGradient({\n colorStops: value.map(({ color, ratio }) => `${color} ${ratio}%`),\n fallback: value[0]?.color,\n toDirection,\n })\n }\n}\n\nexport function applyEffectToGradient(effect: Effects) {\n return function toGradient(value: GradientMaterial): GradientMaterial {\n return value.map(({ color, ratio }) => ({\n color: applyEffect(color, effect),\n ratio,\n }))\n }\n}\n\ninterface RgbaColor extends RgbColor {\n alpha?: number\n}\n\ninterface ReadonlyArrayConstructor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isArray(value: any): value is readonly any[]\n}\n\nexport function applyEffect(\n baseColor: string | null,\n effects: Effects\n): string {\n const color = baseColor ?? '#00000000'\n if ((Array as ReadonlyArrayConstructor).isArray(effects)) {\n return effects.reduce(applySingleEffect, color)\n }\n return applySingleEffect(color, effects)\n}\n\nfunction applySingleEffect(baseColor: string, effect: Effect): string {\n switch (effect.type) {\n case 'alpha':\n return applyAlpha(baseColor, effect)\n case 'opacity':\n return applyOpacity(baseColor, effect)\n case 'replace':\n return applyReplace(baseColor, effect)\n default:\n throw new RangeError(\n `Unknown effect type ${\n (effect as Effect).type\n }, upgrade @charcoal-ui/utils`\n )\n }\n}\n\nfunction applyAlpha(baseColor: string, { color, opacity }: AlphaEffect) {\n const base: RgbaColor = parseToRgb(baseColor)\n const effect: RgbaColor = parseToRgb(color)\n const src = [base.red, base.green, base.blue, base.alpha ?? 1.0] as const\n const dst = [\n effect.red,\n effect.green,\n effect.blue,\n clamp(0, 1, (effect.alpha ?? 1.0) * (opacity ?? 1.0)),\n ] as const\n return rgba(...alphaBlend(src, dst))\n}\n\nfunction applyOpacity(baseColor: string, { opacity }: OpacityEffect) {\n const parsed: RgbaColor = parseToRgb(baseColor)\n parsed.alpha = clamp(0, 1, (parsed.alpha ?? 1.0) * opacity)\n return rgbToColorString(parsed)\n}\n\nfunction applyReplace(\n baseColor: string,\n { color = baseColor, opacity }: ReplaceEffect\n) {\n if (opacity === undefined) {\n return color\n }\n const parsed: RgbaColor = parseToRgb(color)\n // NOTE: intentionally ignores any alpha value in the baseColor\n parsed.alpha = opacity\n return rgbToColorString(parsed)\n}\n\ntype Color4 = readonly [number, number, number, number]\n\n/**\n * NOTE: alpha component must be in range from 0.0 to 1.0. (0.0 represents a fully transparent)\n *\n * @param src `[r, g, b, alpha]` Background\n * @param dst `[r, g, b, alpha]` Foreground\n */\nfunction alphaBlend(src: Color4, dst: Color4): Color4 {\n const srcA = src[3]\n const dstA = dst[3]\n const outA = srcA + dstA * (1 - srcA)\n if (outA < EPS) {\n // blending 0% alpha with 0% alpha\n return [0, 0, 0, 0]\n }\n return [\n Math.round((src[0] * srcA * (1 - dstA) + dst[0] * dstA) / outA),\n Math.round((src[1] * srcA * (1 - dstA) + dst[1] * dstA) / outA),\n Math.round((src[2] * srcA * (1 - dstA) + dst[2] * dstA) / outA),\n outA,\n ]\n}\nconst EPS = 1e-6\n\nfunction clamp(min: number, max: number, value: number) {\n return Math.min(Math.max(value, min), max)\n}\n\n/**\n * affix `px` unit\n *\n * @param value pixel\n */\nexport function px(value: number) {\n return `${value}px`\n}\n\n/**\n * affix `s` unit\n *\n * @param value second\n */\nexport function dur(value: number) {\n return `${value}s`\n}\n\nexport const notDisabledSelector = `&:not(:disabled):not([aria-disabled]), &[aria-disabled=false]`\n\nexport const disabledSelector = `&:disabled, &[aria-disabled]:not([aria-disabled=false])`\n\n/**\n * Construct media query from breakpoint\n */\nexport function maxWidth(breakpoint: number) {\n return `(max-width: ${breakpoint - 1}px)`\n}\n\n/**\n * Derive half-leading from typography size\n */\nexport const halfLeading = ({\n fontSize,\n lineHeight,\n}: TypographyDescriptor): number => (lineHeight - fontSize) / 2\n\n/**\n * Namespaced custom property\n */\nexport const customPropertyToken = (\n id: string,\n modifiers: readonly string[] = []\n): `--charcoal-${string}` =>\n `--charcoal-${id}${modifiers.length === 0 ? '' : ['', modifiers].join('-')}`\n\n/**\n * @example\n * ```js\n * mapKeys({ a: 'aa', b: 'bb' }, (key) => key.toUpperCase()) // => { A: \"aa\", B: \"bb\" }\n * ````\n */\nexport function mapKeys<V, K extends string>(\n object: Record<string, V>,\n callback: (key: string) => K\n) {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => [callback(key), value])\n ) as Record<K, V>\n}\n\n/**\n * @example\n * ```js\n * mapObject({ a: 'aa', b: 'bb', c: 'cc' }, (key, value) =>\n * key === 'b' ? undefined : [key + '1', value.toUpperCase()]\n * ) // => { a1: \"AA\", c1: \"CC\" }\n * ```\n */\nexport function mapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (\n key: SourceKey,\n value: SourceValue\n ) => [DestKey, DestValue] | null | undefined\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n const entry = callback(key as SourceKey, value as SourceValue)\n if (entry) {\n return [entry]\n } else {\n return []\n }\n })\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```js\n * flatMapObject({ a: 'aa', b: 'bb' }, (key, value) => [\n * [key + '1', value + '1'],\n * [key + '2', value + '2'],\n * ]) // => { a1: \"aa1\", a2: \"aa2\", b1: \"bb1\", b2: \"bb2\" }\n * ```\n */\nexport function flatMapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][]\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n return callback(key as SourceKey, value as SourceValue)\n })\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```ts\n * filterObject(\n * { a: 'aa', b: 'bb', c: 'cc' },\n * (value): value is string => value !== 'bb'\n * ) // => { a: \"aa\", c: \"cc\" }\n * ```\n */\nexport function filterObject<Source, Dest extends Source>(\n source: Record<string, Source>,\n fn: (value: Source) => value is Dest\n) {\n return mapObject(source, (key, value) => {\n if (fn(value) === true) {\n return [key, value]\n } else {\n return null\n }\n }) as Record<string, Dest>\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["transparentGradient","base: RgbaColor","effect: RgbaColor","parsed: RgbaColor"],"sources":["../src/index.ts"],"sourcesContent":["import { rgba, rgbToColorString, parseToRgb, linearGradient } from 'polished'\nimport type { RgbColor } from 'polished/lib/types/color'\n\nimport type {\n AlphaEffect,\n Effect,\n Effects,\n GradientMaterial,\n OpacityEffect,\n ReplaceEffect,\n TypographyDescriptor,\n} from '@charcoal-ui/foundation'\nimport type { Styles } from 'polished/lib/types/style'\n\nexport const GRADIENT_DIRECTIONS = [\n 'to top',\n 'to bottom',\n 'to left',\n 'to right',\n] as const\n\nexport type GradientDirection = (typeof GRADIENT_DIRECTIONS)[number]\n\nexport function transparentGradient(\n color: string,\n defaultDirection: GradientDirection = 'to bottom',\n) {\n return function transparentGradient(\n direction: GradientDirection | object = defaultDirection,\n ): Styles {\n const transparent = rgba(color, 0)\n return linearGradient({\n colorStops: [color, transparent],\n fallback: transparent,\n toDirection: typeof direction === 'object' ? defaultDirection : direction,\n })\n }\n}\n\nexport function gradient(toDirection: GradientDirection = 'to bottom') {\n return function toLinearGradient(value: GradientMaterial): Styles {\n return linearGradient({\n colorStops: value.map(({ color, ratio }) => `${color} ${ratio}%`),\n fallback: value[0]?.color,\n toDirection,\n })\n }\n}\n\nexport function applyEffectToGradient(effect: Effects) {\n return function toGradient(value: GradientMaterial): GradientMaterial {\n return value.map(({ color, ratio }) => ({\n color: applyEffect(color, effect),\n ratio,\n }))\n }\n}\n\ninterface RgbaColor extends RgbColor {\n alpha?: number\n}\n\ninterface ReadonlyArrayConstructor {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isArray(value: any): value is readonly any[]\n}\n\nexport function applyEffect(\n baseColor: string | null,\n effects: Effects,\n): string {\n const color = baseColor ?? '#00000000'\n if ((Array as ReadonlyArrayConstructor).isArray(effects)) {\n return effects.reduce(applySingleEffect, color)\n }\n return applySingleEffect(color, effects)\n}\n\nfunction applySingleEffect(baseColor: string, effect: Effect): string {\n switch (effect.type) {\n case 'alpha':\n return applyAlpha(baseColor, effect)\n case 'opacity':\n return applyOpacity(baseColor, effect)\n case 'replace':\n return applyReplace(baseColor, effect)\n default:\n throw new RangeError(\n `Unknown effect type ${\n (effect as Effect).type\n }, upgrade @charcoal-ui/utils`,\n )\n }\n}\n\nfunction applyAlpha(baseColor: string, { color, opacity }: AlphaEffect) {\n const base: RgbaColor = parseToRgb(baseColor)\n const effect: RgbaColor = parseToRgb(color)\n const src = [base.red, base.green, base.blue, base.alpha ?? 1.0] as const\n const dst = [\n effect.red,\n effect.green,\n effect.blue,\n clamp(0, 1, (effect.alpha ?? 1.0) * (opacity ?? 1.0)),\n ] as const\n return rgba(...alphaBlend(src, dst))\n}\n\nfunction applyOpacity(baseColor: string, { opacity }: OpacityEffect) {\n const parsed: RgbaColor = parseToRgb(baseColor)\n parsed.alpha = clamp(0, 1, (parsed.alpha ?? 1.0) * opacity)\n return rgbToColorString(parsed)\n}\n\nfunction applyReplace(\n baseColor: string,\n { color = baseColor, opacity }: ReplaceEffect,\n) {\n if (opacity === undefined) {\n return color\n }\n const parsed: RgbaColor = parseToRgb(color)\n // NOTE: intentionally ignores any alpha value in the baseColor\n parsed.alpha = opacity\n return rgbToColorString(parsed)\n}\n\ntype Color4 = readonly [number, number, number, number]\n\n/**\n * NOTE: alpha component must be in range from 0.0 to 1.0. (0.0 represents a fully transparent)\n *\n * @param src `[r, g, b, alpha]` Background\n * @param dst `[r, g, b, alpha]` Foreground\n */\nfunction alphaBlend(src: Color4, dst: Color4): Color4 {\n const srcA = src[3]\n const dstA = dst[3]\n const outA = srcA + dstA * (1 - srcA)\n if (outA < EPS) {\n // blending 0% alpha with 0% alpha\n return [0, 0, 0, 0]\n }\n return [\n Math.round((src[0] * srcA * (1 - dstA) + dst[0] * dstA) / outA),\n Math.round((src[1] * srcA * (1 - dstA) + dst[1] * dstA) / outA),\n Math.round((src[2] * srcA * (1 - dstA) + dst[2] * dstA) / outA),\n outA,\n ]\n}\nconst EPS = 1e-6\n\nfunction clamp(min: number, max: number, value: number) {\n return Math.min(Math.max(value, min), max)\n}\n\n/**\n * affix `px` unit\n *\n * @param value pixel\n */\nexport function px(value: number) {\n return `${value}px`\n}\n\n/**\n * affix `s` unit\n *\n * @param value second\n */\nexport function dur(value: number) {\n return `${value}s`\n}\n\nexport const notDisabledSelector = `&:not(:disabled):not([aria-disabled]), &[aria-disabled=false]`\n\nexport const disabledSelector = `&:disabled, &[aria-disabled]:not([aria-disabled=false])`\n\n/**\n * Construct media query from breakpoint\n */\nexport function maxWidth(breakpoint: number) {\n return `(max-width: ${breakpoint - 1}px)`\n}\n\n/**\n * Derive half-leading from typography size\n */\nexport const halfLeading = ({\n fontSize,\n lineHeight,\n}: TypographyDescriptor): number => (lineHeight - fontSize) / 2\n\n/**\n * Namespaced custom property\n */\nexport const customPropertyToken = (\n id: string,\n modifiers: readonly string[] = [],\n): `--charcoal-${string}` =>\n `--charcoal-${id}${modifiers.length === 0 ? '' : ['', modifiers].join('-')}`\n\n/**\n * @example\n * ```js\n * mapKeys({ a: 'aa', b: 'bb' }, (key) => key.toUpperCase()) // => { A: \"aa\", B: \"bb\" }\n * ````\n */\nexport function mapKeys<V, K extends string>(\n object: Record<string, V>,\n callback: (key: string) => K,\n) {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => [callback(key), value]),\n ) as Record<K, V>\n}\n\n/**\n * @example\n * ```js\n * mapObject({ a: 'aa', b: 'bb', c: 'cc' }, (key, value) =>\n * key === 'b' ? undefined : [key + '1', value.toUpperCase()]\n * ) // => { a1: \"AA\", c1: \"CC\" }\n * ```\n */\nexport function mapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue,\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (\n key: SourceKey,\n value: SourceValue,\n ) => [DestKey, DestValue] | null | undefined,\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n const entry = callback(key as SourceKey, value as SourceValue)\n if (entry) {\n return [entry]\n } else {\n return []\n }\n }),\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```js\n * flatMapObject({ a: 'aa', b: 'bb' }, (key, value) => [\n * [key + '1', value + '1'],\n * [key + '2', value + '2'],\n * ]) // => { a1: \"aa1\", a2: \"aa2\", b1: \"bb1\", b2: \"bb2\" }\n * ```\n */\nexport function flatMapObject<\n SourceKey extends string,\n SourceValue,\n DestKey extends string,\n DestValue,\n>(\n source: Record<SourceKey, SourceValue>,\n callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][],\n) {\n return Object.fromEntries(\n Object.entries(source).flatMap(([key, value]) => {\n return callback(key as SourceKey, value as SourceValue)\n }),\n ) as Record<DestKey, DestValue>\n}\n\n/**\n * @example\n * ```ts\n * filterObject(\n * { a: 'aa', b: 'bb', c: 'cc' },\n * (value): value is string => value !== 'bb'\n * ) // => { a: \"aa\", c: \"cc\" }\n * ```\n */\nexport function filterObject<Source, Dest extends Source>(\n source: Record<string, Source>,\n fn: (value: Source) => value is Dest,\n) {\n return mapObject(source, (key, value) => {\n if (fn(value) === true) {\n return [key, value]\n } else {\n return null\n }\n }) as Record<string, Dest>\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@charcoal-ui/utils",
3
- "version": "5.0.0-beta.4",
3
+ "version": "5.0.0-beta.6",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -18,7 +18,7 @@
18
18
  "sideEffects": false,
19
19
  "dependencies": {
20
20
  "polished": "^4.1.4",
21
- "@charcoal-ui/foundation": "5.0.0-beta.4"
21
+ "@charcoal-ui/foundation": "5.0.0-beta.6"
22
22
  },
23
23
  "files": [
24
24
  "src",
package/src/index.ts CHANGED
@@ -23,10 +23,10 @@ export type GradientDirection = (typeof GRADIENT_DIRECTIONS)[number]
23
23
 
24
24
  export function transparentGradient(
25
25
  color: string,
26
- defaultDirection: GradientDirection = 'to bottom'
26
+ defaultDirection: GradientDirection = 'to bottom',
27
27
  ) {
28
28
  return function transparentGradient(
29
- direction: GradientDirection | object = defaultDirection
29
+ direction: GradientDirection | object = defaultDirection,
30
30
  ): Styles {
31
31
  const transparent = rgba(color, 0)
32
32
  return linearGradient({
@@ -67,7 +67,7 @@ interface ReadonlyArrayConstructor {
67
67
 
68
68
  export function applyEffect(
69
69
  baseColor: string | null,
70
- effects: Effects
70
+ effects: Effects,
71
71
  ): string {
72
72
  const color = baseColor ?? '#00000000'
73
73
  if ((Array as ReadonlyArrayConstructor).isArray(effects)) {
@@ -88,7 +88,7 @@ function applySingleEffect(baseColor: string, effect: Effect): string {
88
88
  throw new RangeError(
89
89
  `Unknown effect type ${
90
90
  (effect as Effect).type
91
- }, upgrade @charcoal-ui/utils`
91
+ }, upgrade @charcoal-ui/utils`,
92
92
  )
93
93
  }
94
94
  }
@@ -114,7 +114,7 @@ function applyOpacity(baseColor: string, { opacity }: OpacityEffect) {
114
114
 
115
115
  function applyReplace(
116
116
  baseColor: string,
117
- { color = baseColor, opacity }: ReplaceEffect
117
+ { color = baseColor, opacity }: ReplaceEffect,
118
118
  ) {
119
119
  if (opacity === undefined) {
120
120
  return color
@@ -196,7 +196,7 @@ export const halfLeading = ({
196
196
  */
197
197
  export const customPropertyToken = (
198
198
  id: string,
199
- modifiers: readonly string[] = []
199
+ modifiers: readonly string[] = [],
200
200
  ): `--charcoal-${string}` =>
201
201
  `--charcoal-${id}${modifiers.length === 0 ? '' : ['', modifiers].join('-')}`
202
202
 
@@ -208,10 +208,10 @@ export const customPropertyToken = (
208
208
  */
209
209
  export function mapKeys<V, K extends string>(
210
210
  object: Record<string, V>,
211
- callback: (key: string) => K
211
+ callback: (key: string) => K,
212
212
  ) {
213
213
  return Object.fromEntries(
214
- Object.entries(object).map(([key, value]) => [callback(key), value])
214
+ Object.entries(object).map(([key, value]) => [callback(key), value]),
215
215
  ) as Record<K, V>
216
216
  }
217
217
 
@@ -227,13 +227,13 @@ export function mapObject<
227
227
  SourceKey extends string,
228
228
  SourceValue,
229
229
  DestKey extends string,
230
- DestValue
230
+ DestValue,
231
231
  >(
232
232
  source: Record<SourceKey, SourceValue>,
233
233
  callback: (
234
234
  key: SourceKey,
235
- value: SourceValue
236
- ) => [DestKey, DestValue] | null | undefined
235
+ value: SourceValue,
236
+ ) => [DestKey, DestValue] | null | undefined,
237
237
  ) {
238
238
  return Object.fromEntries(
239
239
  Object.entries(source).flatMap(([key, value]) => {
@@ -243,7 +243,7 @@ export function mapObject<
243
243
  } else {
244
244
  return []
245
245
  }
246
- })
246
+ }),
247
247
  ) as Record<DestKey, DestValue>
248
248
  }
249
249
 
@@ -260,15 +260,15 @@ export function flatMapObject<
260
260
  SourceKey extends string,
261
261
  SourceValue,
262
262
  DestKey extends string,
263
- DestValue
263
+ DestValue,
264
264
  >(
265
265
  source: Record<SourceKey, SourceValue>,
266
- callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][]
266
+ callback: (key: SourceKey, value: SourceValue) => [DestKey, DestValue][],
267
267
  ) {
268
268
  return Object.fromEntries(
269
269
  Object.entries(source).flatMap(([key, value]) => {
270
270
  return callback(key as SourceKey, value as SourceValue)
271
- })
271
+ }),
272
272
  ) as Record<DestKey, DestValue>
273
273
  }
274
274
 
@@ -283,7 +283,7 @@ export function flatMapObject<
283
283
  */
284
284
  export function filterObject<Source, Dest extends Source>(
285
285
  source: Record<string, Source>,
286
- fn: (value: Source) => value is Dest
286
+ fn: (value: Source) => value is Dest,
287
287
  ) {
288
288
  return mapObject(source, (key, value) => {
289
289
  if (fn(value) === true) {