{"version":3,"file":"DTVnePkA.js","sources":["../../../../node_modules/vuetify/lib/util/color/APCA.mjs","../../../../node_modules/vuetify/lib/util/colorUtils.mjs","../../../../node_modules/vuetify/lib/composables/color.mjs"],"sourcesContent":["/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4;\nconst Rco = 0.2126729; // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522; // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750; // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03; // Level that triggers the soft black clamp\nconst blkClmp = 1.45; // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005; // Lint trap\nconst scaleBoW = 1.25; // Scaling for dark text on light\nconst scaleWoB = 1.25; // Scaling for light text on dark\nconst loConThresh = 0.078; // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282; // = 1/0.078,\nconst loConOffset = 0.06; // The simple offset\nconst loClip = 0.001; // Output clip (lint trap #2)\n\nexport function APCAcontrast(text, background) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0;\n\n // SAPC CONTRAST\n\n let outputContrast; // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast = SAPC < loClip ? 0.0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\n//# sourceMappingURL=APCA.mjs.map","// Utilities\nimport { APCAcontrast } from \"./color/APCA.mjs\";\nimport { consoleWarn } from \"./console.mjs\";\nimport { chunk, has, padEnd } from \"./helpers.mjs\";\nimport * as CIELAB from \"./color/transformCIELAB.mjs\";\nimport * as sRGB from \"./color/transformSRGB.mjs\"; // Types\nexport function isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nexport function isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?(?:rgb|hsl)a?)\\((?.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n rgba: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n hsl: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsla: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsv: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n }),\n hsva: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n })\n};\nexport function parseColor(color) {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) {\n // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: color & 0xFF\n };\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const {\n groups\n } = color.match(cssColorRe);\n const {\n fn,\n values\n } = groups;\n const realValues = values.split(/,\\s*/).map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('');\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color;\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);\n}\nexport function RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nexport function classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace('-', '').split(' ', 2);\n let hexColor = '';\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const f = n => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255));\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n a\n };\n}\nexport function HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV(rgba) {\n if (!rgba) return {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return {\n h: hsv[0],\n s: hsv[1],\n v: hsv[2],\n a: rgba.a\n };\n}\nexport function HSVtoHSL(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h,\n s: sprime,\n l,\n a\n };\n}\nexport function HSLtoHSV(hsl) {\n const {\n h,\n s,\n l,\n a\n } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return {\n h,\n s: sprime,\n v,\n a\n };\n}\nexport function RGBtoCSS(_ref) {\n let {\n r,\n g,\n b,\n a\n } = _ref;\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nexport function HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase();\n}\nexport function RGBtoHex(_ref2) {\n let {\n r,\n g,\n b,\n a\n } = _ref2;\n return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;\n}\nexport function HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));\n a = a === undefined ? a : a / 255;\n return {\n r,\n g,\n b,\n a\n };\n}\nexport function HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nexport function HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nexport function parseHex(hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, 'F');\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('');\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F');\n }\n return hex;\n}\nexport function parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',');\n });\n}\nexport function lighten(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\nexport function darken(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma(color) {\n const rgb = parseColor(color);\n return sRGB.toXYZ(rgb)[1];\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nexport function getForeground(color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';\n}\n//# sourceMappingURL=colorUtils.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const classes = [];\n const styles = {};\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background;\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background);\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor);\n styles.color = textColor;\n styles.caretColor = textColor;\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`);\n }\n }\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text;\n styles.caretColor = colors.value.text;\n } else {\n classes.push(`text-${colors.value.text}`);\n }\n }\n return {\n colorClasses: classes,\n colorStyles: styles\n };\n });\n}\nexport function useTextColor(props, name) {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(colors);\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(props, name) {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(colors);\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\n//# sourceMappingURL=color.mjs.map"],"names":["mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","text","background","Rtxt","Gtxt","Btxt","Rbg","Gbg","Bbg","Ytxt","Ybg","outputContrast","SAPC","isCssColor","color","isParsableColor","cssColorRe","mappers","r","g","b","a","h","s","l","HSLtoRGB","v","HSVtoRGB","parseColor","groups","fn","values","realValues","hex","char","HexToRGB","has","HSLtoHSV","hsva","f","n","k","rgb","hsla","hsl","sprime","parseHex","chunk","c","x","padEnd","getForeground","blackContrast","useColor","colors","destructComputed","classes","styles","backgroundColor","textColor","useTextColor","props","name","computed","isRef","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles"],"mappings":"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","debug_id":"2a062fa4-3f16-555b-9cca-d25c91e5dcd4"}