From 22b889c6b45d93230e4157ca33a164ecb880a215 Mon Sep 17 00:00:00 2001 From: "Samuel M. Bednarz" Date: Tue, 9 Jan 2024 18:16:19 +0100 Subject: [PATCH] imrpove formating pass --- packages/core/engine/index.ts | 21 +++++++++++++++------ packages/core/engine/primitives/format.ts | 15 +++------------ packages/core/index.ts | 15 +++------------ packages/core/package.json | 2 +- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/packages/core/engine/index.ts b/packages/core/engine/index.ts index 6af708c..32050eb 100644 --- a/packages/core/engine/index.ts +++ b/packages/core/engine/index.ts @@ -30,6 +30,7 @@ export interface Umbra { interface DefaultSettings extends UmbraSettings { callback?: (props: UmbraOutputs) => void + formater?: Formater } export function umbra(scheme = defaultScheme, settings?: DefaultSettings): Umbra { @@ -39,7 +40,8 @@ export function umbra(scheme = defaultScheme, settings?: DefaultSettings): Umbra input, output: umbraGenerate(input, adjustment), inversed: scheme.inversed ? insertFallbacks(scheme.inversed, settings) : undefined, - callback: settings?.callback + callback: settings?.callback, + defaultFormater: settings?.formater }) } @@ -101,23 +103,30 @@ export function umbraHydrate({ input, output, inversed, - callback + callback, + defaultFormater }: { input: UmbraInput output: UmbraRange[] inversed?: UmbraInput - callback?: (props: any) => void + callback?: (props: UmbraOutputs) => void + defaultFormater?: Formater }) { + function getFormat(passedFormater?: Formater) { + const formater = passedFormater || defaultFormater + return format({ output, formater, input, callback }) + } + return { input, output, isDark: () => isDark(input), - format: (formater?: Formater) => format({ output, formater, input, callback }), - inverse: () => umbra(inverse(input, inversed)), + format: (formater?: Formater) => getFormat(formater), + inverse: () => umbra(inverse(input, inversed)) as Umbra, apply: (props?: ApplyProps) => { const { alias, formater } = props || {} const target = getTarget(props?.target) - const formated = format({ output, formater, input }) + const formated = getFormat(formater) const outputs = formated.attach({ alias, target }) callback && callback(outputs) return outputs diff --git a/packages/core/engine/primitives/format.ts b/packages/core/engine/primitives/format.ts index d5a3fcc..4147392 100644 --- a/packages/core/engine/primitives/format.ts +++ b/packages/core/engine/primitives/format.ts @@ -82,26 +82,17 @@ export const format = ({ } } -export const defaultFormater = hexFormat +export const defaultFormater = hex -export function strippedRGBFormat(color: Colord) { - const rgb = color.toRgb() - return `${rgb.r} ${rgb.g} ${rgb.b}` -} - -export function hexFormat(color: Colord) { +export function hex(color: Colord) { return color.toHex() } -export function rgbStrippedFormat(color: Colord) { +export function rgb(color: Colord) { const rgba = color.toRgb() return `${rgba.r} ${rgba.g} ${rgba.b}` } -export function hslFormat(color: Colord) { - return color.toHslString() -} - export interface FlattenColor { name: string color: string diff --git a/packages/core/index.ts b/packages/core/index.ts index 0adb178..c0ce21d 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -1,15 +1,7 @@ import { umbra, umbraHydrate, Umbra } from './engine/index' import { umbraGenerate } from './engine/generator' import { randomScheme } from './engine/primitives/utils' -import { - format, - FlattenColor, - Formater, - UmbraOutputs, - hexFormat, - rgbStrippedFormat, - hslFormat -} from './engine/primitives/format' +import { format, FlattenColor, Formater, UmbraOutputs, hex, rgb } from './engine/primitives/format' import { attach } from './engine/primitives/attach' import { mostReadable, colorMix } from './engine/primitives/color' import type { @@ -33,9 +25,8 @@ export { findContrast, attach, format, - hexFormat, - rgbStrippedFormat, - hslFormat + hex, + rgb } export type { diff --git a/packages/core/package.json b/packages/core/package.json index 93028ea..7d91ab4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@umbrajs/core", - "version": "0.0.447", + "version": "0.0.45", "description": "Umbra is a theme managment library that allows you to create semantic color themes that are easy to dynamically customize, change retroactively and scale progressively", "author": "Samuel M. Bednarz", "repository": {