diff --git a/packages/core/engine/index.ts b/packages/core/engine/index.ts index e5a45e4..09e6e1b 100644 --- a/packages/core/engine/index.ts +++ b/packages/core/engine/index.ts @@ -68,7 +68,7 @@ function umbraAdjust(settings: UmbraSettings, scheme = defaultScheme) { export function umbraHydrate(input: UmbraInput, output: RawRange[]) { const apply = ({ element, formater, alias }: ApplyProps = {}) => - format({ output, formater }).attach(element, alias) + format({ output, formater }).attach(input, element, alias) return { apply, input, diff --git a/packages/core/engine/primitives/attach.ts b/packages/core/engine/primitives/attach.ts index 795d4c3..4b45e71 100644 --- a/packages/core/engine/primitives/attach.ts +++ b/packages/core/engine/primitives/attach.ts @@ -1,3 +1,4 @@ +import { UmbraInput } from '../..' import { FlattenColor, UmbraOutputs } from './format' //Why aliases? 2 reasons: @@ -62,17 +63,18 @@ const defaultAliases = { // } interface Attach { + input: UmbraInput outputs: UmbraOutputs element?: HTMLElement | null alias?: Alias | boolean } //main -export function attach({ outputs, element, alias }: Attach) { +export function attach({ input, outputs, element, alias }: Attach) { if (!document) return outputs setColors(outputs.flattened, element) - setAliases(alias || outputs.output.input.settings.aliases, element) + setAliases(alias || input.settings.aliases, element) if (!element) return outputs //Ensure that the foreground color is always set to the attached element diff --git a/packages/core/engine/primitives/format.ts b/packages/core/engine/primitives/format.ts index 8e58280..c8f1839 100644 --- a/packages/core/engine/primitives/format.ts +++ b/packages/core/engine/primitives/format.ts @@ -1,6 +1,6 @@ import { Colord } from 'colord' import { umbra } from '../..' -import { RawRange, FormatedRange } from '../types' +import { RawRange, FormatedRange, UmbraInput } from '../types' import { attach, Alias } from './attach' export type Formater = (color: Colord) => string @@ -12,7 +12,7 @@ interface FormatProps { } export interface Format extends UmbraOutputs { - attach: (element?: HTMLElement, alias?: Alias | boolean) => UmbraOutputs + attach: (input: UmbraInput, element?: HTMLElement, alias?: Alias | boolean) => UmbraOutputs } export interface UmbraOutputs { @@ -52,7 +52,7 @@ export const format = ({ output = umbra().output, formater = defaultFormater }: } return { - attach: (element, alias) => attach({ outputs, element, alias }), + attach: (input, element, alias) => attach({ input, outputs, element, alias }), ...outputs } as Format }