{"version":3,"file":"index.mjs","sources":["../src/css.color.special.ts","../src/composable/use-chroma.ts","../src/composable/use-color-scale.ts","../src/composable/use-config-defaults.ts","../src/composable/use-plugin-utilities.ts","../src/composable/use-custom-plugins.ts","../src/composable/use-windi-css.ts"],"sourcesContent":["/* * CSS COLOR VALUE PROPERTIES * */\n\nexport type CSSColorSpecialProp =\n    | 'inherit'\n    | 'initial'\n    | 'revert'\n    | 'unset'\n    | 'currentColor'\n    | 'transparent'\n\nexport const tg_isCSSColorSpecial = <T = unknown>(\n    value: T | CSSColorSpecialProp,\n): value is CSSColorSpecialProp =>\n    value === 'inherit' ||\n    value === 'initial' ||\n    value === 'revert' ||\n    value === 'unset' ||\n    value === 'currentColor' ||\n    value === 'transparent'\nexport const tg_isNotCSSColorSpecial = <T = unknown>(\n    value: T | CSSColorSpecialProp,\n): value is T =>\n    !(\n        value === 'inherit' ||\n        value === 'initial' ||\n        value === 'revert' ||\n        value === 'unset'\n    )\n","import { tg } from '@snailicide/g-library'\nimport type { Chromable, Color } from 'chroma.ts'\nimport * as chroma from 'chroma.ts'\nimport { repeat } from 'ramda'\n\nimport { tg_isCSSColorSpecial } from './../css.color.special.js'\n\nexport type useChroma = typeof useChroma\nexport const useChroma = () => {\n    const rotateHueFunction = (hue: number, incrementValue: number): number => {\n        //todo: chheck to see if inc is an integer.\n        return (hue + incrementValue) % 360\n    }\n    /** RA.rangeStep(5, 0, 20); // => [0, 5, 10, 15] */\n    const complement = (color: Chromable, format?: chroma.ColorFormat) => {\n        const [hue, ...rest] = chroma.color(color).hsl()\n        return chroma.color([rotateHueFunction(hue, 180), ...rest], format)\n    }\n    const triad = (color: Chromable, format?: chroma.ColorFormat) => {\n        const [hue, ...rest] = chroma.color(color).hsl()\n        return [\n            hue,\n            rotateHueFunction(hue, 120),\n            rotateHueFunction(hue, 240),\n        ].map((hue_step) => chroma.color([hue_step, ...rest], format))\n    }\n    const tetrad = (color: Chromable, format?: chroma.ColorFormat) => {\n        const [hue, ...rest] = chroma.color(color).hsl()\n        return [\n            hue,\n            rotateHueFunction(hue, 90),\n            rotateHueFunction(hue, 180),\n            rotateHueFunction(hue, 270),\n        ].map((hue_step) => chroma.color([hue_step, ...rest], format))\n    }\n    const split_complement = (\n        color: Chromable,\n        format?: chroma.ColorFormat,\n    ) => {\n        const [hue, ...rest] = chroma.color(color).hsl()\n        return [\n            hue,\n            rotateHueFunction(hue, 72),\n            rotateHueFunction(hue, 216),\n        ].map((hue_step) => chroma.color([hue_step, ...rest], format))\n    }\n    const analogous = (\n        color: Chromable,\n        format?: chroma.ColorFormat,\n        results = 6,\n        slices = 30,\n    ) => {\n        const [hue, ...rest] = chroma.color(color).hsl()\n        return [\n            hue,\n            rotateHueFunction(hue, 72),\n            rotateHueFunction(hue, 216),\n        ].map((hue_step) => chroma.color([hue_step, ...rest], format))\n    }\n    const validate = (color: Chromable): boolean => {\n        // todo: fix return chromajs.valid(color)\n        return true\n    }\n    const getChromaColor = (color: Chromable, format?: chroma.ColorFormat) => {\n        if (!validate(color)) return\n        const chroma_color = chroma.color(color)\n        const [hue, saturation, lightness] = chroma_color.hsl()\n        return {\n            analogous: analogous(chroma_color),\n            chroma: chroma_color,\n            complement: complement(chroma_color),\n            hue,\n            lightness,\n            luminance: chroma_color.luminance(),\n            saturation,\n            split_complement: split_complement(chroma_color),\n            temperature: chroma_color.temperature(),\n            tetrad: tetrad(chroma_color),\n            textColor: chroma_color.textColor(),\n            triad: triad(chroma_color),\n        }\n    }\n\n    const chromaColorBrighten = (\n        value: string | undefined,\n        amount: number,\n    ): Color | undefined => {\n        if (tg.isUndefined(value) || tg_isCSSColorSpecial(value))\n            return undefined\n        if (tg.isNotUndefined(value)) {\n            if (chroma.color(value as any)) {\n                //TODO:make typegaurd for chroma\n                return chroma.color(value as any).darker(3)\n            }\n        }\n        return undefined\n    }\n\n    function _analogous(color: Chromable, results: number, slices: number) {\n        /*results = results || 6;\n        slices = slices || 30;\n\n        var hsl = tinycolor(color).toHsl();\n        var part = 360 / slices;\n        var ret = [tinycolor(color)];\n\n        for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n            hsl.h = (hsl.h + part) % 360;\n            ret.push(tinycolor(hsl));\n        }\n        return ret;*/\n    }\n\n    function monochromatic(\n        color: Chromable,\n        format?: chroma.ColorFormat,\n        results = 6,\n    ) {\n        // const [h,s,v] = chroma.color(color).hsv()\n        const modification = 1 / results\n        const explodeColorByResultsArr = repeat(\n            chroma.color(color).hsv(),\n            results,\n        )\n        /*const newexplodeColorByResultsArr = explodeColorByResultsArr.map( (value,index)=>{\n            const [h,s,v] =value\n            const newv = (v + modification) % 1;\n            v = (v + modification) % 1;\n        } )*/\n        //reduce function idk???\n    }\n\n    function _monochromatic(color: Chromable, results: number) {\n        /* results = results || 6;\n         var hsv = tinycolor(color).toHsv();\n         var h = hsv.h, s = hsv.s, v = hsv.v;\n         var ret = [];\n         var modification = 1 / results;\n         while (results--) {\n             ret.push(tinycolor({ h: h, s: s, v: v}));\n             v = (v + modification) % 1;\n         }*/\n    }\n\n    return {\n        chroma,\n        ...chroma,\n        analogous,\n        chromaColorBrighten,\n        complement,\n        getChromaColor,\n        monochromatic,\n        rotateHueFunction,\n        split_complement,\n        tetrad,\n        triad,\n        validate,\n    }\n}\n\nexport type ChromaColorPalatte = {\n    chroma: Color\n    textColor: Color\n    hue: number\n    saturation: number\n    lightness: number\n    luminance: number\n    temperature: number\n    /** Palattes. */\n    complement: Color\n    split_complement: Array<Color>\n    triad: Array<Color>\n    tetrad: Array<Color>\n    analogous: Array<Color>\n}\n\nexport default useChroma\n","import * as chroma from 'chroma.ts'\nimport { Chromable, Chromable as TChromable } from 'chroma.ts'\nimport * as RA from 'ramda-adjunct'\n\nimport type { ThemeColors, WindiConfig } from './index.js'\n\nexport type ColorScaleConfig = {\n    scale: [] | Array<TChromable>\n    /** Default color */\n    default_color?: TChromable\n    color_count: number\n}\nexport type ColorScaleConfigCollection = Record<\n    string,\n    ColorScaleConfig | Pick<ColorScaleConfig, 'default_color'>\n>\n\nexport type useColorScale = typeof useColorScale\nexport const useColorScale = () => {\n    const _getColorScale = (\n        { color_count = 5, default_color, scale = [] }: ColorScaleConfig = {\n            color_count: 5,\n            scale: [],\n        },\n    ) => {\n        if (RA.isUndefined(default_color) && RA.isEmptyArray(scale)) return\n        if (RA.isUndefined(default_color) && scale.length > 0)\n            [default_color] = scale\n        //if scale array is empty, map gradient.\n        scale =\n            default_color && scale.length <= 1\n                ? [\n                      chroma.color(default_color).luminance(0),\n                      chroma.color(default_color).luminance(0.5),\n                      chroma.color(default_color).luminance(1),\n                  ]\n                : scale\n        const map_scale: Array<string> = chroma\n            .scale(scale)\n            .correctLightness()\n            .colors(color_count)\n        return Object.entries(map_scale).reduce(\n            (scale_map_accumulator, [key, value]) => {\n                return {\n                    ...scale_map_accumulator,\n                    ...{\n                        [`${parseInt(key) + 1}00`]: chroma.color(value).hex(),\n                    },\n                }\n            },\n            { ['DEFAULT']: chroma.color(default_color as Chromable).hex() },\n        )\n    }\n    const getColorScale = (\n        colorScaleConfig: ColorScaleConfigCollection,\n    ): ThemeColors => {\n        return Object.entries(colorScaleConfig).reduce(\n            (accumulator, [key, value]) => {\n                return {\n                    ...accumulator,\n                    [key]: _getColorScale({\n                        color_count: 5,\n                        scale: [],\n                        ...value,\n                    }),\n                }\n            },\n            {},\n        )\n    }\n\n    const colorScalePresetFactory = (\n        colorScaleConfig: ColorScaleConfigCollection,\n    ): WindiConfig => {\n        return {\n            theme: {\n                extend: {\n                    colors: getColorScale(colorScaleConfig),\n                },\n            },\n        }\n    }\n\n    return { colorScalePresetFactory, getColorScale }\n}\n\nexport default useColorScale\n","import { tg } from '@snailicide/g-library'\nimport * as chroma from 'chroma.ts'\nimport colors from 'windicss/colors'\n\nimport { tg_isCSSColorSpecial } from './../css.color.special.js'\nimport type { ThemeColors, WindiConfig } from './index.js'\n\nexport type useConfigDefaults = typeof useConfigDefaults\nexport const useConfigDefaults = () => {\n    const defaultColors: ThemeColors = colors\n\n    const getMapColorDefaults = (_colors: ThemeColors): ThemeColors => {\n        return Object.entries(_colors).reduce((accumulator, [key, value]) => {\n            let my_new_value: string | undefined = undefined\n            if (tg.isString(value)) {\n                if (tg_isCSSColorSpecial(value)) my_new_value = value\n                else if (chroma.color(value as any))\n                    my_new_value = chroma.color(value as any).hex()\n                else return accumulator\n                return { ...accumulator, [key]: my_new_value }\n            } else {\n                const colorObj = value as Record<string, string>\n                if (tg.isNotUndefined(colorObj['DEFAULT']))\n                    my_new_value = colorObj['DEFAULT']\n                else if (tg.isNotUndefined(colorObj['500']))\n                    my_new_value = colorObj['500']\n                else return accumulator\n                return {\n                    ...accumulator,\n                    ...{ [key]: { ...colorObj, DEFAULT: my_new_value } },\n                }\n            }\n            return accumulator\n        }, {})\n    }\n\n    const colorDefaultPresetFactory = (_colors: ThemeColors): WindiConfig => {\n        return {\n            theme: {\n                extend: {\n                    colors: getMapColorDefaults(_colors),\n                },\n            },\n        }\n    }\n    const windiColorDefaultPreset = (): WindiConfig => {\n        return colorDefaultPresetFactory(defaultColors)\n    }\n    return {\n        colorDefaultPresetFactory,\n        defaultColors,\n        getMapColorDefaults,\n        windiColorDefaultPreset,\n    }\n}\n\nexport default useConfigDefaults\n","/* * usePluginFactory */\nimport plugin from 'windicss/plugin'\nimport type { DeepNestObject, Plugin } from 'windicss/types/interfaces'\n\nexport type rangeMapperFunction = (_value: number) => DeepNestObject\nexport const usePluginUtilities = () => {\n    const pluginFactory = (_styles: DeepNestObject): Plugin => {\n        //console.log(\"trying to style\", _styles)\n        const styles: DeepNestObject = _styles\n        return plugin(({ addComponents }) => {\n            addComponents(styles)\n        })\n    }\n    const rangeMapperCSSinJS = (\n        values: Array<number>,\n        callback: rangeMapperFunction,\n    ) => {\n        return values.reduce((accumulator: DeepNestObject, value) => {\n            return { ...accumulator, ...callback(value) }\n        }, {})\n    }\n    return { pluginFactory, rangeMapperCSSinJS }\n}\nexport default usePluginUtilities\n","/* * usePlugins* */\nimport { rangeStep } from 'ramda-adjunct'\nimport { DeepNestObject, Plugin } from 'windicss/types/interfaces'\n\nimport {\n    rangeMapperFunction,\n    usePluginUtilities,\n} from './use-plugin-utilities.js'\n\nexport const useCustomPlugins = () => {\n    const transformRotatePlugin = (): Plugin => {\n        const funcRotateCallback: rangeMapperFunction = (\n            _value,\n        ): DeepNestObject => {\n            return {\n                [`.rotate-${_value.toString()}`]: {\n                    transform: `rotate(${_value.toString()}deg)`,\n                },\n            }\n        }\n        const result: DeepNestObject = usePluginUtilities().rangeMapperCSSinJS(\n            rangeStep(360 / 8, -315, 360),\n            funcRotateCallback,\n        )\n        return usePluginUtilities().pluginFactory(result)\n    }\n    const gSVGPlugin = (): Plugin => {\n        const gSVG = {\n            '.g-svg svg': {\n                display: 'block',\n                height: '100%',\n                width: '100%',\n            },\n            '.g-svg-fill svg': {\n                '& path, & g, & rect, & circle': {\n                    fill: 'currentColor',\n                },\n            },\n        }\n        return usePluginUtilities().pluginFactory(gSVG)\n    }\n    const misc = (): Plugin => {\n        return usePluginUtilities().pluginFactory({\n            '.flex-center': {\n                'align-items': 'center',\n                'justify-content': 'center',\n            },\n            '.radius-circle': {\n                'border-radius': '100%',\n            },\n            '.reflect-x': {\n                transform: 'scale(-1, 1)',\n            },\n            '.reflect-y': {\n                transform: 'scale(1, -1)',\n            },\n        })\n    }\n    const bgOpacityPlugin = (): Plugin => {\n        const funcBGCallback: rangeMapperFunction = (\n            _value,\n        ): DeepNestObject => {\n            return {\n                [`bg-opacity-${_value}`]: {\n                    '--tw-bg-opacity': (Math.round(_value) * 0.01).toString(),\n                },\n            }\n        }\n        const result: DeepNestObject = usePluginUtilities().rangeMapperCSSinJS(\n            rangeStep(10, 10, 100),\n            funcBGCallback,\n        )\n        return usePluginUtilities().pluginFactory(result)\n    }\n    // transformRotatePlugin, gSVGPlugin, bgOpacityPlugin,\n    return {\n        plugins(): Array<Plugin> {\n            return [\n                transformRotatePlugin(),\n                bgOpacityPlugin(),\n                gSVGPlugin(),\n                misc(),\n            ]\n        },\n    }\n}\nexport default useCustomPlugins\n","import { stringUtils } from '@snailicide/g-library'\nimport { useStyleTag, UseStyleTagOptions } from '@vueuse/core'\nimport { join } from 'ramda'\nimport { ref } from 'vue'\nimport Processor from 'windicss'\nimport type { Config } from 'windicss/types/interfaces'\n\nexport type windiCSS = typeof useWindiCss\nexport const useWindiCss = (config: Config = {}) => {\n    const processor = ref(new Processor(config))\n    const extractStylesFromHTML = (\n        el: HTMLElement,\n        includeNestedHTML = true,\n    ) => {\n        const classString = join(' ', Array.from(el.classList))\n        const { ignored, success } = processor.value.interpret(classString)\n        const { styleSheet } = processor.value.interpret(classString)\n        if (includeNestedHTML) {\n            const result = compileCSS(el.innerHTML, true)\n            if (styleSheet.children.length > 0)\n                styleSheet.add(styleSheet.children)\n            return result\n            // success = [...success, ...html_success]\n            //ignored = [...ignored, ...html_ignored]\n        }\n        //const compiled = html_styleSheet.build()\\\n        return { ignored, styleSheet, success }\n    }\n    const interpretWindiStyles = (\n        value: Array<string> | string,\n        config: Config | undefined = undefined,\n        logging = true,\n    ) => {\n        if (config) processor.value = new Processor(config)\n\n        const val_replaced = stringUtils.replaceCharacters({\n            pattern: ['  ', ','],\n            replacement: ' ',\n            value: value.toString(),\n        }) as string\n        const val_trimmed = stringUtils.trimCharacters({\n            pattern: ['.', \"'\", '\"', '[', ']'],\n            value: val_replaced,\n        })\n        const { ignored, styleSheet, success } =\n            processor.value.interpret(val_trimmed)\n        const styleSheetCompiled: string | undefined = processor.value.validate(\n            val_trimmed,\n        )\n            ? styleSheet.build(false)\n            : undefined\n        if (logging) {\n            console.log(\n                'WindiCSS Processor: ',\n                '\\nstyleSheet:',\n                styleSheet,\n                '\\nsuccess:',\n                success,\n                '\\nignored::',\n                ignored,\n                '\\nstyleSheetCompiled:\\n',\n                styleSheetCompiled,\n            )\n        }\n        return {\n            ignored,\n            styleSheet,\n            styleSheetCompiled,\n            success,\n        }\n    }\n    const compileCSS = (\n        value: Array<string> | string,\n        inject: boolean,\n        styleTagOptions: UseStyleTagOptions = {},\n    ) => {\n        const { styleSheetCompiled } = interpretWindiStyles(value)\n        if (styleSheetCompiled !== undefined) {\n            const result = useStyleTag(styleSheetCompiled, styleTagOptions)\n            return result\n        }\n        return undefined\n    }\n    const getClassString = (value: Array<string>): string => join(' ', value)\n    const masterReg = /\\${([\\s\\S]+?)}/g\n\n    return {\n        compileCSS,\n        extractStylesFromHTML,\n        getClassString,\n        interpretWindiStyles,\n        masterReg,\n    }\n}\nexport default useWindiCss\n"],"names":[],"mappings":"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"}