{"version":3,"file":"index.mjs","sources":["../src/core/utils/sharedUtils.js","../src/core/helpers/color/mix.js","../src/core/helpers/color/shade.js","../src/core/helpers/color/tint.js","../src/core/helpers/color/palette.js","../src/core/service/index.js","../src/core/config/index.js","../src/core/helpers/dt.js","../src/core/helpers/css.js","../src/core/helpers/t.js","../src/core/helpers/toVariables.js","../src/core/utils/themeUtils.js","../src/core/actions/definePreset.js","../src/core/actions/updatePreset.js","../src/core/actions/updatePrimaryPalette.js","../src/core/actions/updateSurfacePalette.js","../src/core/actions/usePreset.js","../src/core/actions/useTheme.js"],"sourcesContent":["export default {\n    object: {\n        isEmpty(value) {\n            return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n        },\n        isNotEmpty(value) {\n            return !this.isEmpty(value);\n        },\n        isFunction(value) {\n            return !!(value && value.constructor && value.call && value.apply);\n        },\n        isObject(value, empty = true) {\n            return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n        },\n        isArray(value, empty = true) {\n            return Array.isArray(value) && (empty || value.length !== 0);\n        },\n        isString(value, empty = true) {\n            return typeof value === 'string' && (empty || value !== '');\n        },\n        isNumber(value) {\n            return !isNaN(value);\n        },\n        toFlatCase(str) {\n            // convert snake, kebab, camel and pascal cases to flat case\n            return this.isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n        },\n        toKebabCase(str) {\n            // convert snake, camel and pascal cases to kebab case\n            return this.isString(str)\n                ? str\n                      .replace(/(_)/g, '-')\n                      .replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '-' + c.toLowerCase()))\n                      .toLowerCase()\n                : str;\n        },\n        toTokenKey(str) {\n            return this.isString(str) ? str.replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n        },\n        merge(value1, value2) {\n            if (this.isArray(value1)) {\n                value1.push(...(value2 || []));\n            } else if (this.isObject(value1)) {\n                Object.assign(value1, value2);\n            }\n        },\n        mergeKeysByRegex(target = {}, source = {}, regex) {\n            const mergedObj = { ...target };\n\n            Object.keys(source).forEach((key) => {\n                if (this.test(regex, key)) {\n                    if (this.isObject(source[key]) && key in target && this.isObject(target[key])) {\n                        mergedObj[key] = this.mergeKeysByRegex(target[key], source[key], regex);\n                    } else {\n                        mergedObj[key] = source[key];\n                    }\n                } else {\n                    mergedObj[key] = source[key];\n                }\n            });\n\n            return mergedObj;\n        },\n        mergeKeys(...args) {\n            const _mergeKeys = (target = {}, source = {}) => {\n                const mergedObj = { ...target };\n\n                Object.keys(source).forEach((key) => {\n                    if (this.isObject(source[key]) && key in target && this.isObject(target[key])) {\n                        mergedObj[key] = _mergeKeys(target[key], source[key]);\n                    } else {\n                        mergedObj[key] = source[key];\n                    }\n                });\n\n                return mergedObj;\n            };\n\n            return args.reduce((acc, obj, i) => (i === 0 ? obj : _mergeKeys(acc, obj)), {});\n        },\n        getItemValue(obj, ...params) {\n            return this.isFunction(obj) ? obj(...params) : obj;\n        },\n        getOptionValue(options, key = '', params = {}) {\n            const fKeys = this.toFlatCase(key).split('.');\n            const fKey = fKeys.shift();\n\n            return fKey\n                ? this.isObject(options)\n                    ? this.getOptionValue(this.getItemValue(options[Object.keys(options).find((k) => this.toFlatCase(k) === fKey) || ''], params), fKeys.join('.'), params)\n                    : undefined\n                : this.getItemValue(options, params);\n        },\n        test(regex, str) {\n            if (regex) {\n                const match = regex.test(str);\n\n                regex.lastIndex = 0;\n\n                return match;\n            }\n\n            return false;\n        },\n        toValue(value) {\n            // Check for Figma (value-type)\n            return this.isObject(value) && value.hasOwnProperty('value') && value.hasOwnProperty('type') ? value.value : value;\n        },\n        toUnit(value, variable = '') {\n            const excludedProperties = ['opacity', 'z-index', 'line-height', 'font-weight', 'flex', 'flex-grow', 'flex-shrink', 'order'];\n\n            if (!excludedProperties.some((property) => variable.endsWith(property))) {\n                const val = `${value}`.trim();\n                const valArr = val.split(' ');\n\n                return valArr.map((v) => (this.isNumber(v) ? `${v}px` : v)).join(' ');\n            }\n\n            return value;\n        },\n        toNormalizePrefix(prefix) {\n            return prefix.replaceAll(/ /g, '').replace(/[^\\w]/g, '-');\n        },\n        toNormalizeVariable(prefix = '', variable = '') {\n            return this.toNormalizePrefix(`${this.isString(prefix, false) && this.isString(variable, false) ? `${prefix}-` : prefix}${variable}`);\n        },\n        getVariableName(prefix = '', variable = '') {\n            return `--${this.toNormalizeVariable(prefix, variable)}`;\n        },\n        getVariableValue(value, variable = '', prefix = '', excludedKeyRegexes = [], fallback) {\n            if (this.isString(value)) {\n                const regex = /{([^}]*)}/g;\n                const val = value.trim();\n\n                if (this.test(regex, val)) {\n                    const _val = val.replaceAll(regex, (v) => {\n                        const path = v.replace(/{|}/g, '');\n                        const keys = path.split('.').filter((_v) => !excludedKeyRegexes.some((_r) => this.test(_r, _v)));\n\n                        return `var(${this.getVariableName(prefix, this.toKebabCase(keys.join('-')))}${this.isNotEmpty(fallback) ? `, ${fallback}` : ''})`;\n                    });\n\n                    const calculationRegex = /(\\d+\\s+[\\+\\-\\*\\/]\\s+\\d+)/g;\n                    const cleanedVarRegex = /var\\([^)]+\\)/g;\n\n                    return this.test(calculationRegex, _val.replace(cleanedVarRegex, '0')) ? `calc(${_val})` : _val;\n                }\n\n                return this.toUnit(val, variable);\n            } else if (this.isNumber(value)) {\n                return this.toUnit(value, variable);\n            }\n\n            return undefined;\n        },\n        getComputedValue(obj = {}, value) {\n            if (this.isString(value)) {\n                const regex = /{([^}]*)}/g;\n                const val = value.trim();\n\n                return this.test(regex, val) ? val.replaceAll(regex, (v) => this.getOptionValue(obj, v.replace(/{|}/g, ''))) : val;\n            } else if (this.isNumber(value)) {\n                return value;\n            }\n\n            return undefined;\n        },\n        setProperty(properties, key, value) {\n            if (this.isString(key, false)) {\n                properties.push(`${key}:${value};`);\n            }\n        },\n        getRule(selector, properties) {\n            if (selector) {\n                return `${selector}{${properties}}`;\n            }\n\n            return '';\n        },\n        minifyCSS(css) {\n            return css\n                ? css\n                      .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n                      .replace(/ {2,}/g, ' ')\n                      .replace(/ ([{:}]) /g, '$1')\n                      .replace(/([;,]) /g, '$1')\n                      .replace(/ !/g, '!')\n                      .replace(/: /g, ':')\n                : css;\n        }\n    },\n    dom: {\n        isClient() {\n            return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n        },\n        addClass(element, className) {\n            if (element && className && !this.hasClass(element, className)) {\n                if (element.classList) element.classList.add(className);\n                else element.className += ' ' + className;\n            }\n        },\n        removeClass(element, className) {\n            if (element && className) {\n                if (element.classList) element.classList.remove(className);\n                else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n            }\n        },\n        hasClass(element, className) {\n            if (element) {\n                if (element.classList) return element.classList.contains(className);\n                else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n            }\n\n            return false;\n        },\n        removeMultipleClasses(element, classNames) {\n            if (element && classNames) {\n                [classNames]\n                    .flat()\n                    .filter(Boolean)\n                    .forEach((cNames) => cNames.split(' ').forEach((className) => this.removeClass(element, className)));\n            }\n        }\n    }\n};\n","function normalizeColor(color) {\n    if (color.length === 4) {\n        color = `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n    }\n\n    return color;\n}\n\nfunction hexToRgb(hex) {\n    var bigint = parseInt(hex.substring(1), 16);\n    var r = (bigint >> 16) & 255;\n    var g = (bigint >> 8) & 255;\n    var b = bigint & 255;\n\n    return { r, g, b };\n}\n\nfunction rgbToHex(r, g, b) {\n    return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;\n}\n\nexport default (color1, color2, weight) => {\n    color1 = normalizeColor(color1);\n    color2 = normalizeColor(color2);\n\n    var p = weight / 100;\n    var w = p * 2 - 1;\n    var w1 = (w + 1) / 2.0;\n    var w2 = 1 - w1;\n\n    var rgb1 = hexToRgb(color1);\n    var rgb2 = hexToRgb(color2);\n\n    var r = Math.round(rgb1.r * w1 + rgb2.r * w2);\n    var g = Math.round(rgb1.g * w1 + rgb2.g * w2);\n    var b = Math.round(rgb1.b * w1 + rgb2.b * w2);\n\n    return rgbToHex(r, g, b);\n};\n","import mix from './mix';\n\nexport default (color, percent) => mix('#000000', color, percent);\n","import mix from './mix';\n\nexport default (color, percent) => mix('#ffffff', color, percent);\n","import shade from './shade';\nimport tint from './tint';\n\nconst scales = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n\nexport default (color) => {\n    if (/{([^}]*)}/g.test(color)) {\n        const token = color.replace(/{|}/g, '');\n\n        return scales.reduce((acc, scale) => ((acc[scale] = `{${token}.${scale}}`), acc), {});\n    }\n\n    return typeof color === 'string' ? scales.reduce((acc, scale, i) => ((acc[scale] = i <= 5 ? tint(color, (5 - i) * 19) : shade(color, (i - 5) * 15)), acc), {}) : color;\n};\n","function createService() {\n    const allHandlers = new Map();\n\n    return {\n        on(type, handler) {\n            let handlers = allHandlers.get(type);\n\n            if (!handlers) handlers = [handler];\n            else handlers.push(handler);\n\n            allHandlers.set(type, handlers);\n\n            return this;\n        },\n\n        off(type, handler) {\n            let handlers = allHandlers.get(type);\n\n            if (handlers) {\n                handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n            }\n\n            return this;\n        },\n\n        emit(type, evt) {\n            let handlers = allHandlers.get(type);\n\n            if (handlers) {\n                handlers.slice().map((handler) => {\n                    handler(evt);\n                });\n            }\n        }\n    };\n}\n\nconst ThemeService = createService();\n\nexport default ThemeService;\n","import ThemeService from '../service/index.js';\nimport { ThemeUtils } from '../utils/index.js';\n\nexport default {\n    defaults: {\n        variable: {\n            prefix: 'p',\n            selector: ':root',\n            excludedKeyRegex: /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states)$/gi\n        },\n        options: {\n            prefix: 'p',\n            darkModeSelector: 'system',\n            cssLayer: false\n        }\n    },\n    _theme: undefined,\n    _layerNames: new Set(),\n    _loadedStyleNames: new Set(),\n    _loadingStyles: new Set(),\n    _tokens: {},\n    update(newValues = {}) {\n        const { theme } = newValues;\n\n        if (theme) {\n            this._theme = {\n                ...theme,\n                options: {\n                    ...this.defaults.options,\n                    ...theme.options\n                }\n            };\n            this._tokens = ThemeUtils.createTokens(this.preset, this.defaults);\n            this.clearLoadedStyleNames();\n        }\n    },\n    get theme() {\n        return this._theme;\n    },\n    get preset() {\n        return this.theme?.preset || {};\n    },\n    get options() {\n        return this.theme?.options || {};\n    },\n    get tokens() {\n        return this._tokens;\n    },\n    getTheme() {\n        return this.theme;\n    },\n    setTheme(newValue) {\n        this.update({ theme: newValue });\n        ThemeService.emit('theme:change', newValue);\n    },\n    getPreset() {\n        return this.preset;\n    },\n    setPreset(newValue) {\n        this._theme = { ...this.theme, preset: newValue };\n        this._tokens = ThemeUtils.createTokens(newValue, this.defaults);\n\n        this.clearLoadedStyleNames();\n        ThemeService.emit('preset:change', newValue);\n        ThemeService.emit('theme:change', this.theme);\n    },\n    getOptions() {\n        return this.options;\n    },\n    setOptions(newValue) {\n        this._theme = { ...this.theme, options: newValue };\n\n        this.clearLoadedStyleNames();\n        ThemeService.emit('options:change', newValue);\n        ThemeService.emit('theme:change', this.theme);\n    },\n    getLayerNames() {\n        return [...this._layerNames];\n    },\n    setLayerNames(layerName) {\n        this._layerNames.add(layerName);\n    },\n    getLoadedStyleNames() {\n        return this._loadedStyleNames;\n    },\n    isStyleNameLoaded(name) {\n        return this._loadedStyleNames.has(name);\n    },\n    setLoadedStyleName(name) {\n        this._loadedStyleNames.add(name);\n    },\n    deleteLoadedStyleName(name) {\n        this._loadedStyleNames.delete(name);\n    },\n    clearLoadedStyleNames() {\n        this._loadedStyleNames.clear();\n    },\n    getTokenValue(tokenPath) {\n        return ThemeUtils.getTokenValue(this.tokens, tokenPath, this.defaults);\n    },\n    getCommon(name = '', params) {\n        return ThemeUtils.getCommon({ name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n    },\n    getComponent(name = '', params) {\n        const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n        return ThemeUtils.getPresetC(options);\n    },\n    getDirective(name = '', params) {\n        const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n        return ThemeUtils.getPresetD(options);\n    },\n    getCustomPreset(name = '', preset, selector, params) {\n        const options = { name, preset, options: this.options, selector, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n        return ThemeUtils.getPreset(options);\n    },\n    getLayerOrderCSS(name = '') {\n        return ThemeUtils.getLayerOrder(name, this.options, { names: this.getLayerNames() }, this.defaults);\n    },\n    transformCSS(name = '', css, type = 'style', mode) {\n        return ThemeUtils.transformCSS(name, css, mode, type, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults);\n    },\n    getCommonStyleSheet(name = '', params, props = {}) {\n        return ThemeUtils.getCommonStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n    },\n    getStyleSheet(name, params, props = {}) {\n        return ThemeUtils.getStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n    },\n    onStyleMounted(name) {\n        this._loadingStyles.add(name);\n    },\n    onStyleUpdated(name) {\n        this._loadingStyles.add(name);\n    },\n    onStyleLoaded(event, { name }) {\n        if (this._loadingStyles.size) {\n            this._loadingStyles.delete(name);\n\n            ThemeService.emit(`theme:${name}:load`, event); // Exp: ThemeService.emit('theme:panel-style:load', event)\n            !this._loadingStyles.size && ThemeService.emit('theme:load');\n        }\n    }\n};\n","import Theme from '../config/index.js';\nimport { SharedUtils } from '../utils/index.js';\n\nexport const $dt = (tokenPath) => {\n    const theme = Theme.getTheme();\n\n    const variable = dtwt(theme, tokenPath, undefined, 'variable');\n    const name = variable.match(/--[\\w-]+/g)?.[0];\n    const value = dtwt(theme, tokenPath, undefined, 'value');\n\n    return {\n        name,\n        variable,\n        value\n    };\n};\n\nexport const dt = (...args) => {\n    return dtwt(Theme.getTheme(), ...args);\n};\n\nexport const dtwt = (theme = {}, tokenPath, fallback, type = 'variable') => {\n    if (tokenPath) {\n        const { variable: VARIABLE, options: OPTIONS } = Theme.defaults || {};\n        const { prefix, transform } = theme?.options || OPTIONS || {};\n        const regex = /{([^}]*)}/g;\n        const token = SharedUtils.object.test(regex, tokenPath) ? tokenPath : `{${tokenPath}}`;\n        const isStrictTransform = type === 'value' || transform === 'strict'; // @todo - TRANSFORM: strict | lenient(default)\n\n        return isStrictTransform ? Theme.getTokenValue(tokenPath) : SharedUtils.object.getVariableValue(token, undefined, prefix, [VARIABLE.excludedKeyRegex], fallback);\n    }\n\n    return '';\n};\n","import { SharedUtils } from '../utils/index.js';\nimport { dt } from './dt';\n\nexport const css = (style) => SharedUtils.object.getItemValue(style, { dt });\n","import Theme from '../config/index.js';\nimport { SharedUtils } from '../utils/index.js';\n\nexport const $t = (theme = {}) => {\n    let { preset: _preset, options: _options } = theme;\n\n    return {\n        preset(value) {\n            _preset = _preset ? SharedUtils.object.mergeKeys(_preset, value) : value;\n\n            return this;\n        },\n        options(value) {\n            _options = _options ? { ..._options, ...value } : value;\n\n            return this;\n        },\n        // features\n        primaryPalette(primary) {\n            const { semantic } = _preset || {};\n\n            _preset = { ..._preset, semantic: { ...semantic, primary } };\n\n            return this;\n        },\n        surfacePalette(surface) {\n            const { semantic } = _preset || {};\n            const lightSurface = surface?.hasOwnProperty('light') ? surface?.light : surface;\n            const darkSurface = surface?.hasOwnProperty('dark') ? surface?.dark : surface;\n            const newColorScheme = {\n                colorScheme: {\n                    light: { ...semantic?.colorScheme?.light, ...(!!lightSurface && { surface: lightSurface }) },\n                    dark: { ...semantic?.colorScheme?.dark, ...(!!darkSurface && { surface: darkSurface }) }\n                }\n            };\n\n            _preset = { ..._preset, semantic: { ...semantic, ...newColorScheme } };\n\n            return this;\n        },\n        // actions\n        define({ useDefaultPreset = false, useDefaultOptions = false } = {}) {\n            return {\n                preset: useDefaultPreset ? Theme.getPreset() : _preset,\n                options: useDefaultOptions ? Theme.getOptions() : _options\n            };\n        },\n        update({ mergePresets = true, mergeOptions = true } = {}) {\n            const newTheme = {\n                preset: mergePresets ? SharedUtils.object.mergeKeys(Theme.getPreset(), _preset) : _preset,\n                options: mergeOptions ? { ...Theme.getOptions(), ..._options } : _options\n            };\n\n            Theme.setTheme(newTheme);\n\n            return newTheme;\n        },\n        use(options) {\n            const newTheme = this.define(options);\n\n            Theme.setTheme(newTheme);\n\n            return newTheme;\n        }\n    };\n};\n","import Theme from '../config/index.js';\nimport { SharedUtils } from '../utils/index.js';\n\nexport default function (theme, options = {}) {\n    const VARIABLE = Theme.defaults.variable;\n    const { prefix = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options;\n\n    const _toVariables = (_theme, _prefix = '') => {\n        return Object.entries(_theme).reduce(\n            (acc, [key, value]) => {\n                const px = SharedUtils.object.test(excludedKeyRegex, key) ? SharedUtils.object.toNormalizeVariable(_prefix) : SharedUtils.object.toNormalizeVariable(_prefix, SharedUtils.object.toKebabCase(key));\n                const v = SharedUtils.object.toValue(value);\n\n                if (SharedUtils.object.isObject(v)) {\n                    const { variables, tokens } = _toVariables(v, px);\n\n                    SharedUtils.object.merge(acc['tokens'], tokens);\n                    SharedUtils.object.merge(acc['variables'], variables);\n                } else {\n                    acc['tokens'].push((prefix ? px.replace(`${prefix}-`, '') : px).replaceAll('-', '.'));\n                    SharedUtils.object.setProperty(acc['variables'], SharedUtils.object.getVariableName(px), SharedUtils.object.getVariableValue(v, px, prefix, [excludedKeyRegex]));\n                }\n\n                return acc;\n            },\n            { variables: [], tokens: [] }\n        );\n    };\n\n    const { variables, tokens } = _toVariables(theme, prefix);\n\n    return {\n        value: variables,\n        tokens,\n        declarations: variables.join(''),\n        css: SharedUtils.object.getRule(selector, variables.join(''))\n    };\n}\n","import { toVariables } from '../helpers/index.js';\nimport SharedUtils from './sharedUtils';\n\nexport default {\n    regex: {\n        rules: {\n            class: {\n                pattern: /^\\.([a-zA-Z][\\w-]*)$/,\n                resolve(value) {\n                    return { type: 'class', selector: value, matched: this.pattern.test(value.trim()) };\n                }\n            },\n            attr: {\n                pattern: /^\\[(.*)\\]$/,\n                resolve(value) {\n                    return { type: 'attr', selector: `:root${value}`, matched: this.pattern.test(value.trim()) };\n                }\n            },\n            media: {\n                pattern: /^@media (.*)$/,\n                resolve(value) {\n                    return { type: 'media', selector: `${value}{:root{[CSS]}}`, matched: this.pattern.test(value.trim()) };\n                }\n            },\n            system: {\n                pattern: /^system$/,\n                resolve(value) {\n                    return { type: 'system', selector: '@media (prefers-color-scheme: dark){:root{[CSS]}}', matched: this.pattern.test(value.trim()) };\n                }\n            },\n            custom: {\n                resolve(value) {\n                    return { type: 'custom', selector: value, matched: true };\n                }\n            }\n        },\n        resolve(value) {\n            const rules = Object.keys(this.rules)\n                .filter((k) => k !== 'custom')\n                .map((r) => this.rules[r]);\n\n            return [value].flat().map((v) => rules.map((r) => r.resolve(v)).find((rr) => rr.matched) ?? this.rules.custom.resolve(v));\n        }\n    },\n    _toVariables(theme, options) {\n        return toVariables(theme, { prefix: options?.prefix });\n    },\n    getCommon({ name = '', theme = {}, params, set, defaults }) {\n        const { preset, options } = theme;\n        let primitive_css, primitive_tokens, semantic_css, semantic_tokens;\n\n        if (SharedUtils.object.isNotEmpty(preset)) {\n            const { primitive, semantic } = preset;\n            const { colorScheme, ...sRest } = semantic || {};\n            const { dark, ...csRest } = colorScheme || {};\n            const prim_var = SharedUtils.object.isNotEmpty(primitive) ? this._toVariables({ primitive }, options) : {};\n            const sRest_var = SharedUtils.object.isNotEmpty(sRest) ? this._toVariables({ semantic: sRest }, options) : {};\n            const csRest_var = SharedUtils.object.isNotEmpty(csRest) ? this._toVariables({ light: csRest }, options) : {};\n            const dark_var = SharedUtils.object.isNotEmpty(dark) ? this._toVariables({ dark }, options) : {};\n\n            const [prim_css, prim_tokens] = [prim_var.declarations ?? '', prim_var.tokens];\n            const [sRest_css, sRest_tokens] = [sRest_var.declarations ?? '', sRest_var.tokens || []];\n            const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n            const [dark_css, dark_tokens] = [dark_var.declarations ?? '', dark_var.tokens || []];\n\n            primitive_css = this.transformCSS(name, prim_css, 'light', 'variable', options, set, defaults);\n            primitive_tokens = prim_tokens;\n\n            const semantic_light_css = this.transformCSS(name, `${sRest_css}${csRest_css}color-scheme:light`, 'light', 'variable', options, set, defaults);\n            const semantic_dark_css = this.transformCSS(name, `${dark_css}color-scheme:dark`, 'dark', 'variable', options, set, defaults);\n\n            semantic_css = `${semantic_light_css}${semantic_dark_css}`;\n            semantic_tokens = [...new Set([...sRest_tokens, ...csRest_tokens, ...dark_tokens])];\n        }\n\n        return {\n            primitive: {\n                css: primitive_css,\n                tokens: primitive_tokens\n            },\n            semantic: {\n                css: semantic_css,\n                tokens: semantic_tokens\n            }\n        };\n    },\n    getPreset({ name = '', preset = {}, options, params, set, defaults, selector }) {\n        const _name = name.replace('-directive', '');\n        const { colorScheme, ...vRest } = preset;\n        const { dark, ...csRest } = colorScheme || {};\n        const vRest_var = SharedUtils.object.isNotEmpty(vRest) ? this._toVariables({ [_name]: vRest }, options) : {};\n        const csRest_var = SharedUtils.object.isNotEmpty(csRest) ? this._toVariables({ [_name]: csRest }, options) : {};\n        const dark_var = SharedUtils.object.isNotEmpty(dark) ? this._toVariables({ [_name]: dark }, options) : {};\n\n        const [vRest_css, vRest_tokens] = [vRest_var.declarations ?? '', vRest_var.tokens || []];\n        const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n        const [dark_css, dark_tokens] = [dark_var.declarations ?? '', dark_var.tokens || []];\n        const tokens = [...new Set([...vRest_tokens, ...csRest_tokens, ...dark_tokens])];\n\n        const light_variable_css = this.transformCSS(_name, `${vRest_css}${csRest_css}`, 'light', 'variable', options, set, defaults, selector);\n        const dark_variable_css = this.transformCSS(_name, dark_css, 'dark', 'variable', options, set, defaults, selector);\n\n        return {\n            css: `${light_variable_css}${dark_variable_css}`,\n            tokens\n        };\n    },\n    getPresetC({ name = '', theme = {}, params, set, defaults }) {\n        const { preset, options } = theme;\n        const cPreset = preset?.components?.[name];\n\n        return this.getPreset({ name, preset: cPreset, options, params, set, defaults });\n    },\n    getPresetD({ name = '', theme = {}, params, set, defaults }) {\n        const dName = name.replace('-directive', '');\n        const { preset, options } = theme;\n        const dPreset = preset?.directives?.[dName];\n\n        return this.getPreset({ name: dName, preset: dPreset, options, params, set, defaults });\n    },\n    getColorSchemeOption(options, defaults) {\n        return this.regex.resolve(options.darkModeSelector ?? defaults.options.darkModeSelector);\n    },\n    getLayerOrder(name, options = {}, params, defaults) {\n        const { cssLayer } = options;\n\n        if (cssLayer) {\n            const order = SharedUtils.object.getItemValue(cssLayer.order || 'primeui', params);\n\n            return `@layer ${order}`;\n        }\n\n        return '';\n    },\n    getCommonStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }) {\n        const common = this.getCommon({ name, theme, params, set, defaults });\n        const _props = Object.entries(props)\n            .reduce((acc, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n            .join(' ');\n\n        return Object.entries(common || {})\n            .reduce((acc, [key, value]) => {\n                if (value?.css) {\n                    const _css = SharedUtils.object.minifyCSS(value?.css);\n                    const id = `${key}-variables`;\n\n                    acc.push(`<style type=\"text/css\" data-primevuelab-style-id=\"${id}\" ${_props}>${_css}</style>`);\n                }\n\n                return acc;\n            }, [])\n            .join('');\n    },\n    getStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }) {\n        const options = { name, theme, params, set, defaults };\n        const preset_css = (name.includes('-directive') ? this.getPresetD(options) : this.getPresetC(options))?.css;\n        const _props = Object.entries(props)\n            .reduce((acc, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n            .join(' ');\n\n        return preset_css ? `<style type=\"text/css\" data-primevuelab-style-id=\"${name}-variables\" ${_props}>${SharedUtils.object.minifyCSS(preset_css)}</style>` : '';\n    },\n    createTokens(obj = {}, defaults, parentKey = '', parentPath = '', tokens = {}) {\n        Object.entries(obj).forEach(([key, value]) => {\n            const currentKey = SharedUtils.object.test(defaults.variable.excludedKeyRegex, key) ? parentKey : parentKey ? `${parentKey}.${SharedUtils.object.toTokenKey(key)}` : SharedUtils.object.toTokenKey(key);\n            const currentPath = parentPath ? `${parentPath}.${key}` : key;\n\n            if (SharedUtils.object.isObject(value)) {\n                this.createTokens(value, defaults, currentKey, currentPath, tokens);\n            } else {\n                tokens[currentKey] ||= {\n                    paths: [],\n                    computed(colorScheme, tokenPathMap = {}) {\n                        if (colorScheme) {\n                            const path = this.paths.find((p) => p.scheme === colorScheme) || this.paths.find((p) => p.scheme === 'none');\n\n                            return path?.computed(colorScheme, tokenPathMap['binding']);\n                        }\n\n                        return this.paths.map((p) => p.computed(p.scheme, tokenPathMap[p.scheme]));\n                    }\n                };\n                tokens[currentKey].paths.push({\n                    path: currentPath,\n                    value,\n                    scheme: currentPath.includes('colorScheme.light') ? 'light' : currentPath.includes('colorScheme.dark') ? 'dark' : 'none',\n                    computed(colorScheme, tokenPathMap = {}) {\n                        const regex = /{([^}]*)}/g;\n                        let computedValue = value;\n\n                        tokenPathMap['name'] = this.path;\n                        tokenPathMap['binding'] ||= {};\n\n                        if (SharedUtils.object.test(regex, value)) {\n                            const val = value.trim();\n                            const _val = val.replaceAll(regex, (v) => {\n                                const path = v.replace(/{|}/g, '');\n\n                                return tokens[path]?.computed(colorScheme, tokenPathMap)?.value;\n                            });\n\n                            const calculationRegex = /(\\d+\\w*\\s+[\\+\\-\\*\\/]\\s+\\d+\\w*)/g;\n                            const cleanedVarRegex = /var\\([^)]+\\)/g;\n\n                            computedValue = SharedUtils.object.test(calculationRegex, _val.replace(cleanedVarRegex, '0')) ? `calc(${_val})` : _val;\n                        }\n\n                        SharedUtils.object.isEmpty(tokenPathMap['binding']) && delete tokenPathMap['binding'];\n\n                        return {\n                            colorScheme,\n                            path: this.path,\n                            paths: tokenPathMap,\n                            value: computedValue.includes('undefined') ? undefined : computedValue\n                        };\n                    }\n                });\n            }\n        });\n\n        return tokens;\n    },\n    getTokenValue(tokens, path, defaults) {\n        const normalizePath = (str) => {\n            const strArr = str.split('.');\n\n            return strArr.filter((s) => !SharedUtils.object.test(defaults.variable.excludedKeyRegex, s.toLowerCase())).join('.');\n        };\n\n        const token = normalizePath(path);\n        const colorScheme = path.includes('colorScheme.light') ? 'light' : path.includes('colorScheme.dark') ? 'dark' : undefined;\n        const computedValues = [tokens[token]?.computed(colorScheme)].flat().filter((computed) => computed);\n\n        return computedValues.length === 1\n            ? computedValues[0].value\n            : computedValues.reduce((acc = {}, computed) => {\n                  const { colorScheme: cs, ...rest } = computed;\n\n                  acc[cs] = rest;\n\n                  return acc;\n              }, undefined);\n    },\n    transformCSS(name, css, mode, type, options = {}, set, defaults, selector) {\n        if (SharedUtils.object.isNotEmpty(css)) {\n            const { cssLayer } = options;\n\n            if (type !== 'style') {\n                const colorSchemeOption = this.getColorSchemeOption(options, defaults);\n                const _css = selector ? SharedUtils.object.getRule(selector, css) : css;\n\n                css =\n                    mode === 'dark'\n                        ? colorSchemeOption.reduce((acc, { selector: _selector }) => {\n                              if (SharedUtils.object.isNotEmpty(_selector)) {\n                                  acc += _selector.includes('[CSS]') ? _selector.replace('[CSS]', _css) : SharedUtils.object.getRule(_selector, _css);\n                              }\n\n                              return acc;\n                          }, '')\n                        : SharedUtils.object.getRule(selector ?? ':root', css);\n            }\n\n            if (cssLayer) {\n                const layerOptions = {\n                    name: 'primeui',\n                    order: 'primeui'\n                };\n\n                SharedUtils.object.isObject(cssLayer) && (layerOptions.name = SharedUtils.object.getItemValue(cssLayer.name, { name, type }));\n\n                if (SharedUtils.object.isNotEmpty(layerOptions.name)) {\n                    css = SharedUtils.object.getRule(`@layer ${layerOptions.name}`, css);\n                    set?.layerNames(layerOptions.name);\n                }\n            }\n\n            return css;\n        }\n\n        return '';\n    }\n};\n","import { SharedUtils } from '../utils/index.js';\n\nexport default (...presets) => SharedUtils.object.mergeKeys(...presets);\n","import Theme from '../config/index.js';\nimport { SharedUtils } from '../utils/index.js';\n\nexport default (...presets) => {\n    const newPreset = SharedUtils.object.mergeKeys(Theme.getPreset(), ...presets);\n\n    Theme.setPreset(newPreset);\n\n    return newPreset;\n};\n","import { $t } from '../helpers/index.js';\n\nexport default (primary) => $t().primaryPalette(primary).update().preset;\n","import { $t } from '../helpers/index.js';\n\nexport default (surface) => $t().surfacePalette(surface).update().preset;\n","import Theme from '../config/index.js';\nimport { SharedUtils } from '../utils/index.js';\n\nexport default (...presets) => {\n    const newPreset = SharedUtils.object.mergeKeys(...presets);\n\n    Theme.setPreset(newPreset);\n\n    return newPreset;\n};\n","import { $t } from '../helpers/index.js';\n\nexport default (theme) => $t(theme).update({ mergePresets: false });\n"],"names":["object","isEmpty","value","undefined","Array","isArray","length","Date","_typeof","Object","keys","isNotEmpty","isFunction","constructor","call","apply","isObject","empty","arguments","isString","isNumber","isNaN","toFlatCase","str","replace","toLowerCase","toKebabCase","c","i","toTokenKey","merge","value1","value2","push","_toConsumableArray","assign","mergeKeysByRegex","_this","target","source","regex","mergedObj","_objectSpread","forEach","key","test","mergeKeys","_this2","_mergeKeys","_len","args","_key","reduce","acc","obj","getItemValue","_len2","params","_key2","getOptionValue","options","_this3","fKeys","split","fKey","shift","find","k","join","match","lastIndex","toValue","hasOwnProperty","toUnit","_this4","variable","excludedProperties","some","property","endsWith","val","concat","trim","valArr","map","v","toNormalizePrefix","prefix","replaceAll","toNormalizeVariable","getVariableName","getVariableValue","_this5","excludedKeyRegexes","fallback","_val","path","filter","_v","_r","calculationRegex","cleanedVarRegex","getComputedValue","_this6","setProperty","properties","getRule","selector","minifyCSS","css","dom","isClient","window","document","createElement","addClass","element","className","hasClass","classList","add","removeClass","remove","RegExp","contains","removeMultipleClasses","classNames","_this7","flat","Boolean","cNames","normalizeColor","color","hexToRgb","hex","bigint","parseInt","substring","r","g","b","rgbToHex","toString","padStart","color1","color2","weight","p","w","w1","w2","rgb1","rgb2","Math","round","percent","mix","scales","token","scale","tint","shade","createService","allHandlers","Map","on","type","handler","handlers","get","set","off","splice","indexOf","emit","evt","slice","ThemeService","defaults","excludedKeyRegex","darkModeSelector","cssLayer","_theme","_layerNames","Set","_loadedStyleNames","_loadingStyles","_tokens","update","newValues","theme","ThemeUtils","createTokens","preset","clearLoadedStyleNames","_this$theme","_this$theme2","tokens","getTheme","setTheme","newValue","getPreset","setPreset","getOptions","setOptions","getLayerNames","setLayerNames","layerName","getLoadedStyleNames","isStyleNameLoaded","name","has","setLoadedStyleName","deleteLoadedStyleName","clear","getTokenValue","tokenPath","getCommon","layerNames","bind","getComponent","getPresetC","getDirective","getPresetD","getCustomPreset","getLayerOrderCSS","getLayerOrder","names","transformCSS","mode","getCommonStyleSheet","props","getStyleSheet","onStyleMounted","onStyleUpdated","onStyleLoaded","event","_ref","size","$dt","_variable$match","Theme","dtwt","dt","VARIABLE","OPTIONS","_ref2","transform","SharedUtils","isStrictTransform","style","$t","_preset","_options","primaryPalette","primary","semantic","surfacePalette","surface","_semantic$colorScheme","_semantic$colorScheme2","lightSurface","light","darkSurface","dark","newColorScheme","colorScheme","define","_ref3","_ref3$useDefaultPrese","useDefaultPreset","_ref3$useDefaultOptio","useDefaultOptions","_ref4","_ref4$mergePresets","mergePresets","_ref4$mergeOptions","mergeOptions","newTheme","use","_options$prefix","_options$selector","_options$excludedKeyR","_toVariables","_prefix","entries","_slicedToArray","px","_toVariables2","variables","_toVariables3","declarations","rules","pattern","resolve","matched","attr","media","system","custom","_rules$map$find","rr","toVariables","_ref$name","_ref$theme","primitive_css","primitive_tokens","semantic_css","semantic_tokens","_prim_var$declaration","_sRest_var$declaratio","_csRest_var$declarati","_dark_var$declaration","primitive","sRest","_objectWithoutProperties","_excluded","csRest","_excluded2","prim_var","sRest_var","csRest_var","dark_var","prim_css","prim_tokens","sRest_css","sRest_tokens","csRest_css","csRest_tokens","dark_css","dark_tokens","semantic_light_css","semantic_dark_css","_ref5","_vRest_var$declaratio","_csRest_var$declarati2","_dark_var$declaration2","_ref5$name","_ref5$preset","_name","vRest","_excluded3","_ref6","_excluded4","vRest_var","_defineProperty","vRest_css","vRest_tokens","light_variable_css","dark_variable_css","_ref7","_preset$components","_ref7$name","_ref7$theme","cPreset","components","_ref8","_preset$directives","_ref8$name","_ref8$theme","dName","dPreset","directives","getColorSchemeOption","_options$darkModeSele","order","_ref9","_ref9$name","_ref9$theme","_ref9$props","common","_props","_ref10","_ref11","_ref12","_ref13","_css","id","_ref14","_ref15","_ref14$name","_ref14$theme","_ref14$props","preset_css","includes","_ref16","_ref17","parentKey","parentPath","_ref18","_ref19","currentKey","currentPath","paths","computed","tokenPathMap","scheme","_binding","computedValue","_tokens$path","_tokens$token","normalizePath","strArr","s","computedValues","cs","rest","_excluded5","colorSchemeOption","_ref20","_selector","layerOptions","_SharedUtils$object","presets","newPreset"],"mappings":"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"}