{"version":3,"file":"core.cjs","sources":["../src/core.ts"],"sourcesContent":["import { CSSOptionProps, CSSFactoryType, CSSProps } from './types';\nimport youid from 'youid';\n// const _global: any = typeof window !== 'undefined' ? window : global;\n// _global.Factory = _global.Factory || new Map<string, CSSFactoryType>();\n// export const CSSFactory = _global.Factory as Map<string, CSSFactoryType>\n\nconst caches = new Map<string, Map<string, CSSFactoryType>>()\n\nexport const ONCSS_CACHE = {\n    set(cacheId: string, cachekey: string, value: CSSFactoryType) {\n        let cache = caches.get(cacheId)\n        if (!cache) {\n            cache = new Map()\n            caches.set(cacheId, cache)\n        }\n        cache.set(cachekey, value)\n    },\n    get(cacheId: string, cachekey: string) {\n        let cache = caches.get(cacheId)\n        if (cache) {\n            return cache.get(cachekey)\n        }\n    },\n    has(cacheId: string, cachekey: string) {\n        let cache = caches.get(cacheId)\n        if (cache) {\n            return cache.has(cachekey)\n        }\n        return false\n    },\n    delete(cacheId: string, cachekey: string,) {\n        let cache = caches.get(cacheId)\n        if (cache) {\n            cache.delete(cachekey)\n        }\n    },\n    caches() {\n        return caches\n    }\n}\n\n\n\nconst number_val_props = [\n    \"fontWeight\",\n    \"font-weight\",\n    \"lineHeight\",\n    \"line-height\",\n    \"opacity\",\n    \"zIndex\",\n    \"z-index\",\n    \"flex\",\n    \"order\",\n    \"flexGrow\",\n    \"flex-grow\",\n    \"flexShrink\",\n    \"flex-shrink\",\n    \"flexBasis\",\n    \"flex-basis\",\n    \"columns\",\n    \"perspective\",\n    \"stroke-dashoffset\"\n]\n\nexport const formatCSSProp = (prop: string) => prop.split(/(?=[A-Z])/).join(\"-\").toLowerCase();\nexport const formatCSSValue = (prop: string, val: any) => typeof val === 'number' && !number_val_props.includes(prop) ? `${val}px` : val\n\nconst PREFIXES = ['webkit', 'moz', 'ms', 'o'];\nlet _declaration: CSSStyleDeclaration;\nconst PREFIXCACHE = new Map();\n\nexport const cssPrefix = (prop: string, value: string): { prop: string, value: string } => {\n    value = formatCSSValue(prop, value);\n    prop = formatCSSProp(prop);\n\n    if (typeof window === 'undefined') {\n        return { prop, value };\n    }\n\n    const declaration = _declaration || (_declaration = document.createElement(\"div\").style);\n    value = value?.toString();\n\n    // Check if the property and value work as is\n    if (declaration.setProperty(prop, value), declaration.getPropertyValue(prop) === value) {\n        return { prop, value };\n    }\n\n    // Check cached property and value prefix\n    const cached = PREFIXCACHE.get(prop);\n    if (cached) {\n        return { prop: cached._prop, value: `${cached._vprefix}${value}` };\n    }\n\n    let _prop = prop;\n    let _value = value;\n    let _vprefix = '';\n\n    // Try property prefixes\n    const camelCaseProp = prop.includes('-') ? prop.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) : prop;\n    for (const prefix of PREFIXES) {\n        if (declaration[`${prefix}${camelCaseProp}` as any] !== undefined) {\n            _prop = `-${prefix}-${prop}`;\n            break;\n        }\n    }\n\n    // Check if prefixed property works with the value\n    declaration.setProperty(_prop, value);\n    if (!declaration.getPropertyValue(_prop)) {\n        for (const prefix of PREFIXES) {\n            const prefixedValue = `-${prefix}-${value}`;\n            if (declaration.setProperty(_prop, prefixedValue), declaration.getPropertyValue(_prop) === prefixedValue) {\n                _value = prefixedValue;\n                _vprefix = `-${prefix}-`;\n                break;\n            }\n        }\n    }\n\n    PREFIXCACHE.set(prop, { _prop, _vprefix });\n    return { prop: _prop, value: _value };\n};\n\n\nconst resolveStyleContainer = (input?: Document | HTMLElement): { document?: Document; container?: HTMLElement } => {\n    if (typeof window === 'undefined') {\n        return {\n            document: undefined,\n            container: undefined\n        }\n    }\n    // Default → current document\n    if (!input) {\n        return {\n            document,\n            container: document.head,\n        };\n    }\n\n    // If input is a Document (works across iframes)\n    if (\"nodeType\" in input && input.nodeType === 9) {\n        return {\n            document: input as Document,\n            container: (input as Document).head || input.getElementsByTagName(\"head\")[0],\n        };\n    }\n\n    // If input is an HTMLElement → use its owner document\n    if (\"ownerDocument\" in input && input instanceof HTMLElement) {\n        return {\n            document: input.ownerDocument,\n            container: input,\n        };\n    }\n\n    throw new Error(\"Invalid input: must be Document or HTMLElement\");\n}\n\nexport const style = <Aliases, BreakpointKeys extends string>(_css: CSSProps<Aliases, BreakpointKeys>, cls?: string, opt?: CSSOptionProps<Aliases, BreakpointKeys>, dept = 1) => {\n    let cachekey\n    let classname = cls\n    const cacheId = opt?.cacheId || \"global\"\n\n    if (!cls) {\n        cachekey = (opt?.selector ?? \"\") + JSON.stringify(_css, (_key, value) => typeof value === \"function\" ? value.toString() : value);\n        const has = ONCSS_CACHE.get(cacheId, cachekey)\n        if (has) {\n            has.cache = true\n            return has\n        }\n        classname = `${opt?.classPrefix || \"\"}x${youid(cachekey)}`\n    } else if (typeof cls !== 'string') {\n        throw new Error(`Invalid class name: ${cls}`)\n    }\n\n    let stack: any = [`${classname}{`]\n    let medias: any = {}\n    let skiped: any = {}\n    for (let prop in _css) {\n        let val = (_css as any)[prop]\n        let firstChar = prop.charAt(0)\n        if (firstChar === '&') {\n            let ncls = prop.replace(/&/g, classname as string)\n            const r: any = style(val, ncls, opt, dept + 1)\n            if (opt?.skipProps) {\n                skiped = {\n                    ...skiped,\n                    ...r.skiped\n                }\n            }\n            stack.push(r.stack)\n        } else if (firstChar === '@') {\n            if (prop.startsWith(\"@global\") || prop.startsWith(\"@keyframes\")) {\n                let _css = ''\n                for (let selector in val) {\n                    let r: any = style(val[selector], selector, opt, dept + 1)\n                    _css += r.stack\n                    if (opt?.skipProps) {\n                        skiped = {\n                            ...skiped,\n                            ...r.skiped\n                        }\n                    }\n                }\n                if (prop.startsWith(\"@keyframes\")) {\n                    stack.push(`${prop}{${_css}}`)\n                } else {\n                    stack.push(_css)\n                }\n            } else {\n                let r: any = style(val, classname, opt, dept + 1)\n                const atcss = prop + \"{\" + r.stack + \"}\"\n                stack.push(atcss)\n                if (opt?.skipProps) {\n                    skiped = {\n                        ...skiped,\n                        ...r.skiped\n                    }\n                }\n            }\n        } else {\n            if (opt?.skipProps && opt.skipProps(prop, val, dept)) {\n                if (!((classname as any) in skiped)) skiped[classname as string] = []\n                skiped[classname as string].push(prop)\n                continue\n            }\n            if (typeof val === 'function' || Array.isArray(val)) {\n                continue\n            }\n            if (typeof val === 'object') {\n                for (let media in val) {\n                    if (typeof val[media] === 'object' || typeof val[media] === 'function' || Array.isArray(val[media])) {\n                        throw new Error(`Invalid css value: ${val[media]}`);\n                    }\n                    let breakpoint = media\n                    let isNumber = !isNaN(parseInt(breakpoint))\n                    if (!isNumber) {\n                        if (opt?.breakpoints && !isNaN(parseInt((opt.breakpoints as any)[media]))) {\n                            breakpoint = opt.breakpoints[media as BreakpointKeys].toString()\n                        } else {\n                            throw new Error(`Invalid breakpoint prop: ${media}`);\n                        }\n                    }\n                    let _css = { [prop]: val[media] }\n                    let r: any = style(_css, classname, opt, dept)\n                    let _style = r.stack\n                    let mediakey = `@media (min-width: ${breakpoint}px)`\n                    medias[mediakey] = medias[mediakey] ? medias[mediakey] + _style : _style\n                    if (opt?.skipProps) {\n                        skiped = {\n                            ...skiped,\n                            ...r.skiped\n                        }\n                    }\n                }\n            } else {\n                if (opt?.getProps) {\n                    let _props: any = opt.getProps(prop, val, _css, dept)\n                    if (_props) {\n                        let r: any = style(_props, classname, {\n                            ...opt,\n                            getProps: undefined\n                        })\n                        if (opt?.skipProps) {\n                            skiped = {\n                                ...skiped,\n                                ...r.skiped\n                            }\n                        }\n                        stack.push(r.stack)\n                        continue;\n                    }\n                }\n                if (opt?.aliases && (opt.aliases as any)[prop]) {\n                    let _props = (opt.aliases as any)[prop](val)\n                    if (_props) {\n                        let r: any = style(_props, classname, {\n                            ...opt,\n                            aliases: undefined\n                        }, dept)\n                        r.stack = r.stack.replace(`${classname}{`, '').replace(`}`, '')\n                        stack[0] += r.stack\n                        continue;\n                    }\n                }\n                if (opt?.getValue) {\n                    val = opt.getValue(prop, val, _css, dept)\n                }\n                let p = cssPrefix(prop, val)\n                stack[0] += `${p.prop}:${p.value};`\n            }\n        }\n    }\n    stack[0] += \"}\"\n    if (stack[0] === `${classname}{}`) {\n        stack[0] = \"\"\n    }\n    stack = stack.join('')\n    for (let media in medias) {\n        stack += `${media}{${medias[media].replace(new RegExp(`}\\\\${classname}\\\\{`, 'g'), '')}}`\n    }\n\n    if (cachekey) {\n        const d = resolveStyleContainer(opt?.container);\n\n        const selector = opt?.selector ?? \".\"\n        stack = stack.replace(new RegExp(classname as string, 'g'), `${selector}${classname}`)\n        const r = {\n            cache: false,\n            cachekey,\n            selector,\n            classname: classname as string,\n            css: stack,\n            cssraw: _css,\n            skiped,\n            cacheId,\n            getStyleTag: () => d.container?.querySelector(`style[data-href=\"${classname}\"]`) as HTMLStyleElement | null,\n            deleteStyle: () => {\n                const tag = r.getStyleTag()\n                tag && tag.remove()\n            },\n            inject: () => {\n                const tag = r.getStyleTag() || d.document?.createElement(\"style\");\n                if (tag && !tag?.innerHTML) {\n                    tag.innerHTML = r.css\n                    tag.setAttribute(`data-href`, classname as string)\n                    d.container?.appendChild(tag);\n                }\n                return tag as HTMLStyleElement\n            },\n            refresh: () => {\n                r.deleteStyle()\n                return r.inject()\n            }\n        }\n\n        ONCSS_CACHE.set(cacheId, cachekey, r)\n\n        let inject = opt?.injectStyle ?? true\n        if (inject && d.document) {\n            r.inject()\n        }\n        return r\n    }\n    return { stack, skiped }\n}"],"names":[],"mappings":"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"}