diff --git a/.gitignore b/.gitignore index 9076f58..1096bad 100644 --- a/.gitignore +++ b/.gitignore @@ -14,5 +14,4 @@ build/ *.bak styles.css -main.js -manifest.json \ No newline at end of file +main.js \ No newline at end of file diff --git a/main.js b/main.js index c9b2c86..0fe7f51 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,4 @@ -var _t=Object.defineProperty;var Zn=Object.getOwnPropertyDescriptor;var eo=Object.getOwnPropertyNames;var to=Object.prototype.hasOwnProperty;var no=(n,o)=>{for(var e in o)_t(n,e,{get:o[e],enumerable:!0})},oo=(n,o,e,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of eo(o))!to.call(n,s)&&s!==e&&_t(n,s,{get:()=>o[s],enumerable:!(t=Zn(o,s))||t.enumerable});return n};var so=n=>oo(_t({},"__esModule",{value:!0}),n);var Ho={};no(Ho,{default:()=>Vt});module.exports=so(Ho);var H=require("obsidian");var we=require("obsidian");var me={en:"English",ar:"\u0627\u0644\u0639\u064E\u0631\u064E\u0628\u064A\u0651\u064E\u0629\u064F",fa:"\u0641\u0627\u0631\u0633\u06CC",fr:"Fran\xE7ais"},an="en";var ln={plugin:{name:"\u0645\u062A\u062D\u0643\u0645 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 - v1.2.0",ribbonTooltip:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A Color Master"},buttons:{new:"\u062C\u062F\u064A\u062F",delete:"\u062D\u0630\u0641",selectOption:"\u0627\u062E\u062A\u0631 \u062E\u064A\u0627\u0631\u0627\u064B \u0648\u0627\u062D\u062F\u0627\u064B \u0639\u0627\u0644\u0623\u0642\u0644",create:"\u0625\u0646\u0634\u0627\u0621",reset:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646",update:"\u062A\u062D\u062F\u064A\u062B",apply:"\u062A\u0637\u0628\u064A\u0642",cancel:"\u0625\u0644\u063A\u0627\u0621",reload:"\u0625\u0639\u0627\u062F\u0629 \u062A\u062D\u0645\u064A\u0644",exportFile:"\u062A\u0635\u062F\u064A\u0631 \u0645\u0644\u0641",copyJson:"\u0646\u0633\u062E JSON",importCss:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F / \u0644\u0635\u0642 (.css)",importJson:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F / \u0644\u0635\u0642 (.json)",chooseFile:"\u0627\u062E\u062A\u0631 \u0645\u0644\u0641...",import:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F",select:"\u0627\u062E\u062A\u064A\u0627\u0631",browse:"\u0627\u0633\u062A\u0639\u0631\u0627\u0636...",deleteAnyway:"\u062D\u0630\u0641 \u0639\u0644\u0649 \u0623\u064A \u062D\u0627\u0644",restore:"\u0627\u0633\u062A\u0639\u0627\u062F\u0629"},settings:{enablePlugin:"\u062A\u0641\u0639\u064A\u0644 \u0645\u062A\u062D\u0643\u0645 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",enablePluginDesc:"\u0623\u0637\u0641\u0626 \u0647\u0630\u0627 \u0627\u0644\u062E\u064A\u0627\u0631 \u0644\u062A\u0639\u0637\u064A\u0644 \u062C\u0645\u064A\u0639 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0645\u0624\u0642\u062A\u0627\u064B \u0648\u0627\u0644\u0639\u0648\u062F\u0629 \u0625\u0644\u0649 \u062B\u064A\u0645 Obsidian \u0627\u0644\u0646\u0634\u0637.",language:"\u0627\u0644\u0644\u063A\u0629",languageDesc:"\u0627\u062E\u062A\u0631 \u0644\u063A\u0629 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0625\u0636\u0627\u0641\u0629.",languageSettingsModalTitle:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0644\u063A\u0629",rtlLayoutName:"\u062A\u0641\u0639\u064A\u0644 \u062A\u0646\u0633\u064A\u0642 \u0627\u0644\u064A\u0645\u064A\u0646 \u0644\u0644\u064A\u0633\u0627\u0631 (RTL)",rtlLayoutDesc:"\u0639\u0646\u062F \u062A\u0641\u0639\u064A\u0644\u0647\u060C \u064A\u062A\u0645 \u0642\u0644\u0628 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0644\u062A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0643\u062A\u0628 \u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0644\u0644\u064A\u0633\u0627\u0631.",searchPlaceholder:"\u0627\u0628\u062D\u062B \u0639\u0646 \u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A (\u0628\u0627\u0644\u0627\u0633\u0645 \u0623\u0648 \u0627\u0644\u0642\u064A\u0645\u0629)...",regexPlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0644\u062A\u0639\u0628\u064A\u0631 \u0627\u0644\u0646\u0645\u0637\u064A \u0648\u0627\u0636\u063A\u0637 Enter...",allSections:"\u0643\u0644 \u0627\u0644\u0623\u0642\u0633\u0627\u0645",clear:"\u062A\u0646\u0638\u064A\u0641",ariaCase:"\u0628\u062D\u062B \u062D\u0633\u0627\u0633 \u0644\u062D\u0627\u0644\u0629 \u0627\u0644\u0623\u062D\u0631\u0641",ariaRegex:"\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u062A\u0639\u0627\u0628\u064A\u0631 \u0627\u0644\u0646\u0645\u0637\u064A\u0629 (Regex)",themeWarningTooltip:n=>`\u0627\u0644\u062B\u064A\u0645 "${n}" \u0645\u0637\u0628\u0651\u0642 \u062D\u0627\u0644\u064A\u0627\u064B\u060C \u0648\u0642\u062F \u064A\u062A\u0639\u0627\u0631\u0636 \u0645\u0639 \u0645\u0638\u0647\u0631 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A. \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0623\u0641\u0636\u0644 \u0627\u0644\u0646\u062A\u0627\u0626\u062C\u060C \u0646\u0646\u0635\u062D \u0628\u0627\u0644\u062A\u0628\u062F\u064A\u0644 \u0625\u0644\u0649 \u0627\u0644\u062B\u064A\u0645 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A \u0644\u0623\u0648\u0628\u0633\u064A\u062F\u064A\u0627\u0646\u060C \u0623\u0648 \u064A\u0645\u0643\u0646\u0643 \u0627\u0633\u062A\u064A\u0631\u0627\u062F \u062B\u064A\u0645 "${n}" \u0643\u0645\u0644\u0641 \u0634\u062E\u0635\u064A \u062C\u062F\u064A\u062F \u0644\u062A\u0639\u062F\u064A\u0644\u0647 \u0645\u0628\u0627\u0634\u0631\u0629\u064B.`},profileManager:{heading:"\u0625\u062F\u0627\u0631\u0629 \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0651\u0629",activeProfile:"\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u0646\u0634\u0637",activeProfileDesc:"\u062A\u0646\u0642\u0644 \u0628\u064A\u0646 \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0651\u0629 \u0623\u0648 \u0623\u0646\u0634\u0626 \u0648\u0627\u062D\u062F \u062C\u062F\u064A\u062F.",themeType:"\u0646\u0648\u0639 \u062B\u064A\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",themeTypeDesc:"\u062D\u062F\u062F \u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646\u062A \u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0633\u064A\u0641\u0631\u0636 \u062B\u064A\u0645\u0627\u064B \u0645\u0639\u064A\u0646\u0627\u064B (\u063A\u0627\u0645\u0642/\u0641\u0627\u062A\u062D) \u0639\u0646\u062F \u062A\u0641\u0639\u064A\u0644\u0647.",themeAuto:"\u0627\u0644\u062B\u064A\u0645 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A \u0644\u0623\u0648\u0628\u0633\u064A\u062F\u064A\u0627\u0646",themeDark:"\u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u063A\u0627\u0645\u0642",themeLight:"\u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0641\u0627\u062A\u062D",tooltipThemeAuto:"\u0627\u0644\u062B\u064A\u0645: \u062A\u0644\u0642\u0627\u0626\u064A (\u064A\u062A\u0628\u0639 \u0623\u0648\u0628\u0633\u064A\u062F\u064A\u0627\u0646) (\u0627\u0636\u063A\u0637 \u0644\u0644\u062A\u0628\u062F\u064A\u0644 \u0644\u0644\u0641\u0627\u062A\u062D)",tooltipThemeDark:"\u0627\u0644\u062B\u064A\u0645: \u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u063A\u0627\u0645\u0642 (\u0627\u0636\u063A\u0637 \u0644\u0644\u062A\u0628\u062F\u064A\u0644 \u0644\u0644\u062A\u0644\u0642\u0627\u0626\u064A)",tooltipThemeLight:"\u0627\u0644\u062B\u064A\u0645: \u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0641\u0627\u062A\u062D (\u0627\u0636\u063A\u0637 \u0644\u0644\u062A\u0628\u062F\u064A\u0644 \u0644\u0644\u063A\u0627\u0645\u0642)",tooltipExport:"\u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u062D\u0627\u0644\u064A \u0643\u0645\u0644\u0641 JSON",tooltipCopyJson:"\u0646\u0633\u062E JSON \u0644\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u062D\u0627\u0644\u064A \u0625\u0644\u0649 \u0627\u0644\u062D\u0627\u0641\u0638\u0629"},options:{heading:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0645\u062A\u0642\u062F\u0645\u0629",liveUpdateName:"\u0645\u0639\u062F\u0644 \u0627\u0644\u062A\u062D\u062F\u064A\u062B \u0627\u0644\u0645\u0628\u0627\u0634\u0631 (\u0625\u0637\u0627\u0631 \u0628\u0627\u0644\u062B\u0627\u0646\u064A\u0629)",liveUpdateDesc:"\u064A\u062D\u062F\u062F \u0639\u062F\u062F \u0645\u0631\u0627\u062A \u062A\u062D\u062F\u064A\u062B \u0645\u0639\u0627\u064A\u0646\u0629 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0641\u064A \u0627\u0644\u062B\u0627\u0646\u064A\u0629 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u0633\u062D\u0628 (0 = \u062A\u0639\u0637\u064A\u0644 \u0627\u0644\u0645\u0639\u0627\u064A\u0646\u0629). \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0645\u0646\u062E\u0641\u0636\u0629 \u062A\u062D\u0633\u0646 \u0627\u0644\u0623\u062F\u0627\u0621.",iconizeModalTitle:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u062A\u0643\u0627\u0645\u0644 Iconize",overrideIconizeName:"\u062A\u062C\u0627\u0648\u0632 \u0623\u0644\u0648\u0627\u0646 \u0625\u0636\u0627\u0641\u0629 Iconize",overrideIconizeDesc:"\u0627\u0633\u0645\u062D \u0644\u0640 Color Master \u0628\u0627\u0644\u062A\u062D\u0643\u0645 \u0641\u064A \u0643\u0644 \u0623\u0644\u0648\u0627\u0646 \u0623\u064A\u0642\u0648\u0646\u0627\u062A Iconize. \u0644\u0623\u0641\u0636\u0644 \u0627\u0644\u0646\u062A\u0627\u0626\u062C\u060C \u0642\u0645 \u0628\u062A\u0639\u0637\u064A\u0644 \u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0641\u064A \u0625\u0636\u0627\u0641\u0629 Iconize \u0646\u0641\u0633\u0647\u0627.",cleanupIntervalName:"\u0641\u062A\u0631\u0629 \u0627\u0644\u062A\u0646\u0638\u064A\u0641",cleanupIntervalDesc:"\u062A\u062D\u062F\u062F \u0639\u062F\u062F \u0627\u0644\u0645\u0631\u0627\u062A (\u0628\u0627\u0644\u062B\u0648\u0627\u0646\u064A) \u0627\u0644\u062A\u064A \u062A\u062A\u062D\u0642\u0642 \u0641\u064A\u0647\u0627 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0645\u0646 \u0625\u0644\u063A\u0627\u0621 \u062A\u062B\u0628\u064A\u062A \u0625\u0636\u0627\u0641\u0629 Iconize \u0644\u062A\u0646\u0638\u064A\u0641 \u0623\u064A\u0642\u0648\u0646\u0627\u062A\u0647\u0627.",addCustomVarName:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062A\u063A\u064A\u0631 \u0645\u062E\u0635\u0635",addCustomVarDesc:"\u0623\u0636\u0641 \u0645\u062A\u063A\u064A\u0631 CSS \u062C\u062F\u064A\u062F \u063A\u064A\u0631 \u0645\u0648\u062C\u0648\u062F \u0628\u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u0629. \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0627\u0644\u0627\u0633\u0645 \u0628\u0640 '--'.",addNewVarButton:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062A\u063A\u064A\u0631 \u062C\u062F\u064A\u062F...",resetPluginName:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u0629",resetPluginDesc:"\u0633\u064A\u0624\u062F\u064A \u0647\u0630\u0627 \u0625\u0644\u0649 \u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629\u060C \u0648\u0627\u0644\u0645\u0642\u062A\u0637\u0641\u0627\u062A\u060C \u0648\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A\u060C \u0648\u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A\u060C \u0648\u0625\u0639\u0627\u062F\u0629 \u0636\u0628\u0637 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u062D\u0627\u0644\u062A\u0647\u0627 \u0627\u0644\u0623\u0635\u0644\u064A\u0629. \u064A\u062A\u0637\u0644\u0628 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621 \u0625\u0639\u0627\u062F\u0629 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642\u060C \u0648\u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646\u0647.",resetPluginButton:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A...",backgroundName:"\u062A\u0639\u064A\u064A\u0646 \u062E\u0644\u0641\u064A\u0629 \u0645\u062E\u0635\u0635\u0629",backgroundDesc:"\u0625\u062F\u0627\u0631\u0629 \u0635\u0648\u0631\u0629 \u0623\u0648 \u0641\u064A\u062F\u064A\u0648 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A.",backgroundModalSettingsTitle:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u062E\u0644\u0641\u064A\u0629",backgroundEnableName:"\u062A\u0641\u0639\u064A\u0644 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",backgroundEnableDesc:"\u0627\u0644\u062A\u062D\u0643\u0645 \u0628\u0638\u0647\u0648\u0631 \u0623\u0648 \u0625\u062E\u0641\u0627\u0621 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A.",convertImagesName:"\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0635\u0648\u0631 \u0625\u0644\u0649 JPG",convertImagesDesc:"\u062A\u062D\u0648\u064A\u0644 \u0635\u0648\u0631 PNG \u0623\u0648 WEBP \u0623\u0648 BMP \u062A\u0644\u0642\u0627\u0626\u064A\u0627\u064B \u0625\u0644\u0649 JPG \u0639\u0646\u062F \u0627\u0644\u0631\u0641\u0639 \u0644\u062A\u0642\u0644\u064A\u0644 \u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641 \u0648\u062A\u062D\u0633\u064A\u0646 \u0623\u062F\u0627\u0621 \u0627\u0644\u062A\u062D\u0645\u064A\u0644. (\u0645\u0644\u0627\u062D\u0638\u0629: \u0633\u062A\u0641\u0642\u062F \u0627\u0644\u0635\u0648\u0631 \u0634\u0641\u0627\u0641\u064A\u062A\u0647\u0627)",jpgQualityName:"\u062C\u0648\u062F\u0629 JPG",jpgQualityDesc:"\u062D\u062F\u062F \u062C\u0648\u062F\u0629 \u0627\u0644\u0636\u063A\u0637 (\u0645\u0646 1 \u0625\u0644\u0649 100). \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0623\u0642\u0644 \u062A\u0639\u0646\u064A \u0645\u0644\u0641\u0627\u062A \u0623\u0635\u063A\u0631 \u0648\u0644\u0643\u0646 \u0628\u062C\u0648\u062F\u0629 \u0623\u062F\u0646\u0649.",badgeNotInstalled:"\u063A\u064A\u0631 \u0645\u064F\u062B\u0628\u0651\u062A",videoOpacityName:"\u0634\u0641\u0627\u0641\u064A\u0629 \u0627\u0644\u0641\u064A\u062F\u064A\u0648",videoOpacityDesc:"\u0627\u0644\u062A\u062D\u0643\u0645 \u0628\u0634\u0641\u0627\u0641\u064A\u0629 \u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0641\u064A\u062F\u064A\u0648 \u0644\u062A\u062D\u0633\u064A\u0646 \u0642\u0627\u0628\u0644\u064A\u0629 \u0627\u0644\u0642\u0631\u0627\u0621\u0629.",videoMuteName:"\u0643\u062A\u0645 \u0627\u0644\u0641\u064A\u062F\u064A\u0648",videoMuteDesc:"\u0643\u062A\u0645 \u0635\u0648\u062A \u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0641\u064A\u062F\u064A\u0648. \u0645\u0648\u0635\u0649 \u0628\u0647 \u0628\u0634\u062F\u0629.",settingType:"\u0646\u0648\u0639 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",settingTypeImage:"\u0635\u0648\u0631\u0629",settingTypeVideo:"\u0641\u064A\u062F\u064A\u0648"},snippets:{heading:"\u0642\u0635\u0627\u0635\u0627\u062A CSS",createButton:"\u0625\u0646\u0634\u0627\u0621 \u0642\u0635\u0627\u0635\u0629 \u062C\u062F\u064A\u062F\u0629",noSnippetsDesc:"\u0644\u0645 \u064A\u062A\u0645 \u0625\u0646\u0634\u0627\u0621 \u0623\u064A \u0642\u0635\u0627\u0635\u0627\u062A CSS \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0628\u0639\u062F.",global:"\u0642\u0635\u0627\u0635\u0629 \u0639\u0627\u0645\u0651\u0629",globalName:"\u062D\u0641\u0638 \u0643\u0642\u0635\u0627\u0635\u0629 \u0639\u0627\u0645\u0629",globalDesc:"\u0627\u0644\u0642\u0635\u0627\u0635\u0629 \u0627\u0644\u0639\u0627\u0645\u0629 \u064A\u062A\u0645 \u062A\u0637\u0628\u064A\u0642\u0647\u0627 \u0639\u0644\u0649 \u062C\u0645\u064A\u0639 \u0645\u0644\u0641\u0627\u062A\u0643 \u0627\u0644\u0634\u062E\u0635\u064A\u0629."},categories:{pluginintegrations:"\u062A\u0643\u0627\u0645\u0644 \u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A",backgrounds:"\u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A",text:"\u0627\u0644\u0646\u0635\u0648\u0635",interactive:"\u0627\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u062A\u0641\u0627\u0639\u0644\u064A\u0629",ui:"\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0648\u0627\u062C\u0647\u0629",misc:"\u0645\u062A\u0646\u0648\u0639",graph:"\u0639\u0631\u0636 \u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A",markdown:"\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0645\u0627\u0631\u0643\u062F\u0648\u0627\u0646",notices:"\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A",custom:"\u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629",customDesc:"\u0645\u062A\u063A\u064A\u0631 \u0645\u0636\u0627\u0641 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645.",helpTextPre:"\u0644\u0645 \u062A\u062C\u062F \u0627\u0644\u0645\u062A\u063A\u064A\u0631 \u0627\u0644\u0630\u064A \u062A\u0628\u062D\u062B \u0639\u0646\u0647\u061F ",helpTextLink:"\u062A\u0635\u0641\u062D \u0642\u0627\u0626\u0645\u0629 \u0645\u062A\u063A\u064A\u0631\u0627\u062A CSS \u0627\u0644\u0631\u0633\u0645\u064A\u0629 \u0641\u064A Obsidian."},modals:{newProfile:{title:"\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0634\u062E\u0635\u064A \u062C\u062F\u064A\u062F",nameLabel:"\u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",namePlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A..."},deleteProfile:{title:"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",confirmation:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A "${n}"\u061F \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.`},jsonImport:{title:"\u0644\u0635\u0642 \u0623\u0648 \u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0644\u0641 JSON \u0644\u0644\u0645\u0644\u0641 \u0634\u062E\u0635\u064A",desc1:"\u064A\u0645\u0643\u0646\u0643 \u0644\u0635\u0642 \u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A (JSON) \u0641\u064A \u0627\u0644\u0635\u0646\u062F\u0648\u0642 \u0623\u062F\u0646\u0627\u0647.",placeholder:'{ "name": "...", "profile": { ... } }',settingName:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0645\u0644\u0641",settingDesc:"\u0623\u0648\u060C \u0627\u062E\u062A\u0631 \u0645\u0644\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A (.json) \u0645\u0646 \u062C\u0647\u0627\u0632 \u0627\u0644\u0643\u0645\u0628\u064A\u0648\u062A\u0631 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643.",replaceActiveButton:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644 \u0627\u0644\u0646\u0634\u0637",createNewButton:"\u0625\u0646\u0634\u0627\u0621 \u062C\u062F\u064A\u062F\u0629"},cssImport:{title:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F / \u0644\u0635\u0642 CSS \u0648\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0634\u062E\u0635\u064A",titleEdit:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",note:"\u0645\u0644\u0627\u062D\u0638\u0629 : \u0643\u0648\u062F CSS \u0627\u0644\u0630\u064A \u062A\u0644\u0635\u0642\u0647 \u0642\u062F \u064A\u0624\u062B\u0631 \u0639\u0644\u0649 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062C\u060C \u0627\u0633\u062A\u062E\u062F\u0645 \u0641\u0642\u0637 \u0627\u0644\u0623\u0643\u0648\u0627\u062F \u0627\u0644\u0645\u0648\u062B\u0648\u0642\u0629.",importFromFile:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0645\u0644\u0641",importFromFileDesc:"\u0623\u0648\u060C \u0627\u062E\u062A\u0631 \u0645\u0644\u0641 (.css) \u0645\u0646 \u062C\u0647\u0627\u0632 \u0627\u0644\u0643\u0645\u0628\u064A\u0648\u062A\u0631 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643.",importFromTheme:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u062B\u064A\u0645 \u0645\u062B\u0628\u0651\u062A",importFromThemeDesc:"\u0642\u0645 \u0628\u062A\u062D\u0645\u064A\u0644 CSS \u0645\u0628\u0627\u0634\u0631\u0629 \u0645\u0646 \u0623\u062D\u062F \u0627\u0644\u062B\u064A\u0645\u0627\u062A \u0627\u0644\u0645\u062B\u0628\u062A\u0629 \u0644\u062F\u064A\u0643.",noThemes:"\u0644\u0627 \u064A\u0648\u062C\u062F \u062B\u064A\u0645\u0627\u062A \u0645\u062B\u0628\u062A\u0629"},snippetEditor:{title:"\u0625\u0646\u0634\u0627\u0621 \u0642\u0635\u0627\u0635\u0629 CSS \u062C\u062F\u064A\u062F\u0629",titleEdit:"\u062A\u0639\u062F\u064A\u0644 \u0642\u0635\u0627\u0635\u0629 CSS",nameLabel:"\u0627\u0633\u0645 \u0627\u0644\u0642\u0635\u0627\u0635\u0629",namePlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0642\u0635\u0627\u0635\u0629...",importFromSnippet:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0642\u0635\u0627\u0635\u0629 \u0645\u062B\u0628\u062A\u0629",importFromSnippetDesc:"\u0642\u0645 \u0628\u062A\u062D\u0645\u064A\u0644 CSS \u0645\u0628\u0627\u0634\u0631\u0629 \u0645\u0646 \u0625\u062D\u062F\u0649 \u0642\u0635\u0627\u0635\u0627\u062A Obsidian \u0627\u0644\u0645\u062B\u0628\u062A\u0629 \u0644\u062F\u064A\u0643.",noSnippets:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0642\u0635\u0627\u0635\u0627\u062A \u0645\u062B\u0628\u062A\u0629",cssPlaceholder:"\u0627\u0644\u0635\u0642 \u0643\u0648\u062F CSS \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0647\u0646\u0627..."},confirmation:{resetProfileTitle:"\u062A\u0623\u0643\u064A\u062F \u0627\u0633\u062A\u0631\u062C\u0627\u0639 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",resetProfileDesc:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u0627\u0633\u062A\u0631\u062C\u0627\u0639 \u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0644\u0622\u062E\u0631 \u0644\u0642\u0637\u0629 \u062A\u0645 \u062A\u062B\u0628\u064A\u062A\u0647\u0627\u061F \u0633\u064A\u062A\u0645 \u0627\u0644\u0643\u062A\u0627\u0628\u0629 \u0641\u0648\u0642 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u062D\u0627\u0644\u064A\u0629 \u0648\u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.",deleteSnippetTitle:n=>`\u062D\u0630\u0641 \u0627\u0644\u0642\u0635\u0627\u0635\u0629: ${n}`,deleteSnippetDesc:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u0642\u0635\u0627\u0635\u0629\u061F \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.",resetPluginTitle:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F\u061F",resetPluginDesc:"\u0633\u064A\u062A\u0645 \u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0628\u064A\u0627\u0646\u0627\u062A Color Master \u0628\u0634\u0643\u0644 \u062F\u0627\u0626\u0645 (\u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629\u060C \u0627\u0644\u0642\u0635\u0627\u0635\u0627\u062A\u060C \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A\u060C \u0648\u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A). \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621 \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646\u0647.",deleteGlobalBgTitle:"\u062A\u0623\u0643\u064A\u062F \u062D\u0630\u0641 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",deleteGlobalBgDesc:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0628\u0634\u0643\u0644 \u062F\u0627\u0626\u0645\u061F \u0627\u0644\u0628\u0631\u0648\u0641\u0627\u064A\u0644\u0627\u062A \u0627\u0644\u062A\u0627\u0644\u064A\u0629 \u062A\u0633\u062A\u062E\u062F\u0645\u0647\u0627 \u062D\u0627\u0644\u064A\u0627\u064B \u0648\u0633\u064A\u062A\u0645 \u0625\u0632\u0627\u0644\u062A\u0647\u0627 \u0645\u0646\u0647\u0627:",deleteBackgroundTitle:"\u062D\u0630\u0641 \u0627\u0644\u062E\u0644\u0641\u064A\u0629\u061F",deleteBackgroundDesc:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 '${n}' \u0628\u0634\u0643\u0644 \u062F\u0627\u0626\u0645\u061F`,deleteLangTitle:"\u062D\u0630\u0641 \u0627\u0644\u0644\u063A\u0629",deleteLangDesc:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u062D\u0630\u0641 \u062D\u0632\u0645\u0629 \u0627\u0644\u0644\u063A\u0629 "${n}"\u061F \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.`,restoreLangTitle:"\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0644\u063A\u0629\u061F",restoreLangDesc:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u062D\u0630\u0641 \u0627\u0644\u062A\u0639\u062F\u064A\u0644\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0644\u0644\u063A\u0629 ${n} \u0648\u0627\u0644\u0639\u0648\u062F\u0629 \u0644\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u061F`},noticeRules:{titleText:"\u0642\u0648\u0627\u0639\u062F \u0644\u0648\u0646 \u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u062A\u0642\u062F\u0645\u0629",titleBg:"\u0642\u0648\u0627\u0639\u062F \u0644\u0648\u0646 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0645\u062A\u0642\u062F\u0645\u0629",desc:"\u0623\u0646\u0634\u0626 \u0642\u0648\u0627\u0639\u062F \u0630\u0627\u062A \u0623\u0648\u0644\u0648\u064A\u0629 \u0644\u062A\u0644\u0648\u064A\u0646 \u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A \u0628\u0646\u0627\u0621\u064B \u0639\u0644\u0649 \u0645\u062D\u062A\u0648\u0627\u0647\u0627. \u0633\u064A\u062A\u0645 \u062A\u0637\u0628\u064A\u0642 \u0623\u0648\u0644 \u0642\u0627\u0639\u062F\u0629 \u0645\u0637\u0627\u0628\u0642\u0629 \u0645\u0646 \u0627\u0644\u0623\u0639\u0644\u0649 \u0625\u0644\u0649 \u0627\u0644\u0623\u0633\u0641\u0644.",addNewRule:"\u0625\u0636\u0627\u0641\u0629 \u0642\u0627\u0639\u062F\u0629 \u062C\u062F\u064A\u062F\u0629",keywordPlaceholder:"\u0627\u0643\u062A\u0628 \u0643\u0644\u0645\u0629 \u062B\u0645 \u0627\u0636\u063A\u0637 \u0645\u0633\u0627\u0641\u0629...",useRegex:"Regex",highlightOnly:"\u062A\u0644\u0648\u064A\u0646 \u0627\u0644\u0643\u0644\u0645\u0629 \u0641\u0642\u0637"},duplicateProfile:{title:"\u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0645\u0643\u0631\u0631",descParts:['\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A "','" \u0645\u0648\u062C\u0648\u062F \u0628\u0627\u0644\u0641\u0639\u0644. \u0627\u0644\u0631\u062C\u0627\u0621 \u0627\u062E\u062A\u064A\u0627\u0631 \u0627\u0633\u0645 \u0645\u062E\u062A\u0644\u0641.'],placeholder:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u062C\u062F\u064A\u062F..."},customVar:{title:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062A\u063A\u064A\u0631 CSS \u0645\u062E\u0635\u0635 \u062C\u062F\u064A\u062F",desc:"\u062D\u062F\u062F \u0645\u062A\u063A\u064A\u0631 CSS \u062C\u062F\u064A\u062F (\u0645\u062B\u0627\u0644: --my-color: #f00). \u0633\u064A\u062A\u0645 \u0625\u0636\u0627\u0641\u0629 \u0647\u0630\u0627 \u0627\u0644\u0645\u062A\u063A\u064A\u0631 \u0625\u0644\u0649 \u0645\u0644\u0641\u0643 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u0646\u0634\u0637.",displayName:"\u0627\u0633\u0645 \u0627\u0644\u0639\u0631\u0636",displayNameDesc:"\u0627\u0633\u0645 \u0648\u062F\u064A \u0644\u0644\u0645\u062A\u063A\u064A\u0631 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 (\u0645\u062B\u0627\u0644: '\u0644\u0648\u0646 \u0623\u0633\u0627\u0633\u064A \u0645\u062E\u0635\u0635 \u0644\u064A').",displayNamePlaceholder:"\u0645\u062B\u0627\u0644: \u0644\u0648\u0646\u064A \u0627\u0644\u0623\u0633\u0627\u0633\u064A",varName:"\u0627\u0633\u0645 \u0627\u0644\u0645\u062A\u063A\u064A\u0631",varNameDesc:"\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0641\u0639\u0644\u064A \u0644\u0645\u062A\u063A\u064A\u0631 CSS. \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 '--' (\u0645\u062B\u0627\u0644: '--my-primary-color').",varNamePlaceholder:"\u0645\u062B\u0627\u0644: --my-primary-color",varValue:"\u0642\u064A\u0645\u0629 \u0627\u0644\u0645\u062A\u063A\u064A\u0631",varType:"\u0646\u0648\u0639 \u0627\u0644\u0645\u062A\u063A\u064A\u0631",varTypeDesc:"\u0627\u062E\u062A\u0631 \u0646\u0648\u0639 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u062A\u064A \u064A\u062D\u0645\u0644\u0647\u0627 \u0647\u0630\u0627 \u0627\u0644\u0645\u062A\u063A\u064A\u0631.",types:{color:"\u0644\u0648\u0646",size:"\u062D\u062C\u0645 (\u0645\u062B\u0644 px, em)",text:"\u0646\u0635",number:"\u0631\u0642\u0645"},varValueDesc:"\u0642\u064A\u0645\u0629 \u0645\u062A\u063A\u064A\u0631 CSS (\u0645\u062B\u0627\u0644: 'red', '#ff0000', 'rgb(255,0,0)').",varValuePlaceholder:"\u0645\u062B\u0627\u0644: #FF0000 \u0623\u0648 \u0623\u062D\u0645\u0631",description:"\u0627\u0644\u0648\u0635\u0641 (\u0627\u062E\u062A\u064A\u0627\u0631\u064A)",descriptionDesc:"\u0648\u0635\u0641 \u0645\u0648\u062C\u0632 \u0644\u0645\u0627 \u064A\u062A\u062D\u0643\u0645 \u0641\u064A\u0647 \u0647\u0630\u0627 \u0627\u0644\u0645\u062A\u063A\u064A\u0631.",descriptionPlaceholder:"\u0645\u062B\u0627\u0644: \u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u0633\u0627\u0633\u064A \u0644\u0644\u0639\u0646\u0627\u0648\u064A\u0646",addVarButton:"\u0625\u0636\u0627\u0641\u0629",textValuePlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0644\u0642\u064A\u0645\u0629 \u0627\u0644\u0646\u0635\u064A\u0629..."},addBackground:{title:"\u0625\u0636\u0627\u0641\u0629 \u062E\u0644\u0641\u064A\u0629 \u062C\u062F\u064A\u062F\u0629 (\u0635\u0648\u0631\u0629/\u0641\u064A\u062F\u064A\u0648)",importFromFile:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0645\u0644\u0641",importFromFileDesc:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0644\u0641 \u0635\u0648\u0631\u0629 \u0623\u0648 \u0641\u064A\u062F\u064A\u0648 \u0645\u0646 \u062C\u0647\u0627\u0632 \u0627\u0644\u0643\u0645\u0628\u064A\u0648\u062A\u0631.",pasteBoxPlaceholder:"\u0627\u0633\u062D\u0628 \u0648\u0623\u0641\u0644\u062A / \u0623\u0648 \u0627\u0644\u0635\u0642 \u062E\u0644\u0641\u064A\u0629 / \u0631\u0627\u0628\u0637 \u0647\u0646\u0627 (Ctrl+V)",dropToAdd:"\u0623\u0641\u0644\u062A\u0647\u0627 \u0644\u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u062E\u0644\u0641\u064A\u0629...",processing:"\u062C\u0627\u0631\u064A \u0627\u0644\u0645\u0639\u0627\u0644\u062C\u0629"},fileConflict:{title:"\u0627\u0644\u0645\u0644\u0641 \u0645\u0648\u062C\u0648\u062F",desc:n=>`\u064A\u0648\u062C\u062F \u0645\u0644\u0641 \u0628\u0627\u0633\u0645 '${n}' \u0645\u0648\u062C\u0648\u062F \u0645\u0633\u0628\u0642\u0627\u064B \u0641\u064A \u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A. \u0645\u0627\u0630\u0627 \u062A\u0631\u064A\u062F \u0623\u0646 \u062A\u0641\u0639\u0644\u061F`,replaceButton:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644 \u0627\u0644\u0645\u0644\u0641",keepButton:"\u0627\u0644\u0627\u062D\u062A\u0641\u0627\u0638 \u0628\u0643\u0644\u064A\u0647\u0645\u0627 (\u0625\u0639\u0627\u062F\u0629 \u062A\u0633\u0645\u064A\u0629)"},backgroundBrowser:{title:"\u0627\u0633\u062A\u0639\u0631\u0627\u0636 \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A",noImages:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0635\u0648\u0631 \u0623\u0648 \u0641\u064A\u062F\u064A\u0648\u0647\u0627\u062A \u0641\u064A \u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A."},advancedReset:{title:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0645\u062A\u0642\u062F\u0645\u0629 \u0644\u0644\u0628\u064A\u0627\u0646\u0627\u062A",desc:"\u0627\u062E\u062A\u0631 \u0623\u062C\u0632\u0627\u0621 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u064A\u062F \u062D\u0630\u0641\u0647\u0627 \u0646\u0647\u0627\u0626\u064A\u0627\u064B. \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621 \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646\u0647.",profilesLabel:"\u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629 \u0648\u0627\u0644\u0644\u0642\u0637\u0627\u062A",profilesDesc:"\u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0648\u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0627\u0644\u0645\u062B\u0628\u062A\u0629. (\u064A\u062D\u0627\u0641\u0638 \u0639\u0644\u0649 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0645\u062F\u0645\u062C\u0629).",snippetsLabel:"\u0627\u0644\u0642\u0635\u0627\u0635\u0627\u062A \u0627\u0644\u0639\u0627\u0645\u0629 \u0648\u0627\u0644\u062E\u0627\u0635\u0629",snippetsDesc:"\u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0642\u0635\u0627\u0635\u0627\u062A CSS\u060C \u0633\u0648\u0627\u0621 \u0627\u0644\u0639\u0627\u0645\u0629 \u0623\u0648 \u0627\u0644\u0645\u0648\u062C\u0648\u062F\u0629 \u062F\u0627\u062E\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629.",backgroundsLabel:"\u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A",backgroundsDesc:"\u062D\u0630\u0641 \u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A \u062F\u0627\u062E\u0644 \u0645\u062C\u0644\u062F \u0625\u0639\u062F\u0627\u062F\u0627\u062A Obsidian (configDir/backgrounds) \u0628\u0627\u0644\u0643\u0627\u0645\u0644 \u0645\u0639 \u062C\u0645\u064A\u0639 \u0627\u0644\u0648\u0633\u0627\u0626\u0637 \u0628\u062F\u0627\u062E\u0644\u0647.",settingsLabel:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0625\u0636\u0627\u0641\u0629",settingsDesc:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0644\u063A\u0629\u060C \u0645\u0639\u062F\u0644 \u0627\u0644\u062A\u062D\u062F\u064A\u062B\u060C \u0648\u0627\u0644\u062A\u0641\u0636\u064A\u0644\u0627\u062A \u0627\u0644\u0623\u062E\u0631\u0649 \u0644\u0644\u0648\u0636\u0639 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A.",languagesLabel:"\u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629",languagesDesc:"\u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0627\u0644\u062A\u064A \u0623\u0646\u0634\u0623\u0647\u0627 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645."},addLang:{title:"\u0625\u0636\u0627\u0641\u0629 \u0644\u063A\u0629 \u062C\u062F\u064A\u062F\u0629",desc:"\u0625\u0646\u0634\u0627\u0621 \u062D\u0632\u0645\u0629 \u0644\u063A\u0629 \u0645\u062E\u0635\u0635\u0629 \u062C\u062F\u064A\u062F\u0629. \u0633\u062A\u062A\u0645\u0643\u0646 \u0645\u0646 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u062A\u0631\u062C\u0645\u0627\u062A \u0628\u0639\u062F \u0627\u0644\u0625\u0646\u0634\u0627\u0621.",nameLabel:"\u0627\u0633\u0645 \u0627\u0644\u0644\u063A\u0629 (\u0627\u0644\u0623\u0635\u0644\u064A)",nameDesc:"\u0627\u0633\u0645 \u0627\u0644\u0644\u063A\u0629 \u0628\u062E\u0637\u0647\u0627 \u0627\u0644\u0623\u0635\u0644\u064A.",namePlaceholder:"\u0645\u062B\u0627\u0644: \u0627\u0644\u0639\u064E\u0631\u064E\u0628\u064A\u0651\u064E\u0629\u064F",codeLabel:"\u0631\u0645\u0632 \u0627\u0644\u0644\u063A\u0629",codeDesc:"\u0631\u0645\u0632 ISO 639 \u0641\u0631\u064A\u062F (\u0645\u062B\u0644: 'en', 'ar', 'zh').",codePlaceholder:"\u0645\u062B\u0627\u0644: ar",rtlLabel:"\u0644\u063A\u0629 RTL",rtlDesc:"\u0642\u0645 \u0628\u062A\u0641\u0639\u064A\u0644 \u0647\u0630\u0627 \u0627\u0644\u062E\u064A\u0627\u0631 \u0625\u0630\u0627 \u0643\u0627\u0646\u062A \u0627\u0644\u0644\u063A\u0629 \u062A\u0643\u062A\u0628 \u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631 (\u0645\u062B\u0644 \u0627\u0644\u0639\u0631\u0628\u064A\u0651\u0629\u060C \u0627\u0644\u0623\u0631\u062F\u064A\u0629)."},translator:{title:n=>`\u062A\u0639\u062F\u064A\u0644 \u062A\u0631\u062C\u0645\u0627\u062A: ${n}`,searchPlaceholder:"\u0627\u0628\u062D\u062B \u0639\u0646 \u0645\u0641\u0627\u062A\u064A\u062D \u0627\u0644\u062A\u0631\u062C\u0645\u0629...",copyJson:"\u0646\u0633\u062E JSON",pasteJson:"\u0644\u0635\u0642 JSON",exportFile:"\u062A\u0635\u062F\u064A\u0631 \u0645\u0644\u0641",importFile:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0644\u0641",showMissing:"\u0639\u0631\u0636 \u0627\u0644\u0645\u0641\u0642\u0648\u062F\u0629 \u0641\u0642\u0637",showAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",showMore:"\u0639\u0631\u0636 \u0627\u0644\u0645\u0632\u064A\u062F",showLess:"\u0639\u0631\u0636 \u0623\u0642\u0644",noMatches:"\u0644\u0627 \u062A\u0648\u062C\u062F \u062A\u0631\u062C\u0645\u0627\u062A \u062A\u0637\u0627\u0628\u0642 \u0628\u062D\u062B\u0643.",dynamicValue:"\u0642\u064A\u0645\u0629 \u062F\u064A\u0646\u0627\u0645\u064A\u0643\u064A\u0651\u0629"},langInfo:{title:"\u062D\u0648\u0644 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629",desc:`\u062A\u062A\u064A\u062D \u0644\u0643 \u0647\u0630\u0647 \u0627\u0644\u0645\u064A\u0632\u0629 \u0625\u0646\u0634\u0627\u0621 \u062A\u0631\u062C\u0645\u0627\u062A\u0643 \u0627\u0644\u062E\u0627\u0635\u0629 \u0644\u0644\u0625\u0636\u0627\u0641\u0629. +var Vt=Object.defineProperty;var Zn=Object.getOwnPropertyDescriptor;var eo=Object.getOwnPropertyNames;var to=Object.prototype.hasOwnProperty;var no=(n,o)=>{for(var e in o)Vt(n,e,{get:o[e],enumerable:!0})},oo=(n,o,e,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of eo(o))!to.call(n,s)&&s!==e&&Vt(n,s,{get:()=>o[s],enumerable:!(t=Zn(o,s))||t.enumerable});return n};var so=n=>oo(Vt({},"__esModule",{value:!0}),n);var jo={};no(jo,{default:()=>Rt});module.exports=so(jo);var H=require("obsidian");var we=require("obsidian");var me={en:"English",ar:"\u0627\u0644\u0639\u064E\u0631\u064E\u0628\u064A\u0651\u064E\u0629\u064F",fa:"\u0641\u0627\u0631\u0633\u06CC",fr:"Fran\xE7ais"},an="en";var ln={plugin:{name:"\u0645\u062A\u062D\u0643\u0645 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 - v1.2.0",ribbonTooltip:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A Color Master"},buttons:{new:"\u062C\u062F\u064A\u062F",delete:"\u062D\u0630\u0641",selectOption:"\u0627\u062E\u062A\u0631 \u062E\u064A\u0627\u0631\u0627\u064B \u0648\u0627\u062D\u062F\u0627\u064B \u0639\u0627\u0644\u0623\u0642\u0644",create:"\u0625\u0646\u0634\u0627\u0621",reset:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646",update:"\u062A\u062D\u062F\u064A\u062B",apply:"\u062A\u0637\u0628\u064A\u0642",cancel:"\u0625\u0644\u063A\u0627\u0621",reload:"\u0625\u0639\u0627\u062F\u0629 \u062A\u062D\u0645\u064A\u0644",exportFile:"\u062A\u0635\u062F\u064A\u0631 \u0645\u0644\u0641",copyJson:"\u0646\u0633\u062E JSON",importCss:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F / \u0644\u0635\u0642 (.css)",importJson:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F / \u0644\u0635\u0642 (.json)",chooseFile:"\u0627\u062E\u062A\u0631 \u0645\u0644\u0641...",import:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F",select:"\u0627\u062E\u062A\u064A\u0627\u0631",browse:"\u0627\u0633\u062A\u0639\u0631\u0627\u0636...",deleteAnyway:"\u062D\u0630\u0641 \u0639\u0644\u0649 \u0623\u064A \u062D\u0627\u0644",restore:"\u0627\u0633\u062A\u0639\u0627\u062F\u0629"},settings:{enablePlugin:"\u062A\u0641\u0639\u064A\u0644 \u0645\u062A\u062D\u0643\u0645 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",enablePluginDesc:"\u0623\u0637\u0641\u0626 \u0647\u0630\u0627 \u0627\u0644\u062E\u064A\u0627\u0631 \u0644\u062A\u0639\u0637\u064A\u0644 \u062C\u0645\u064A\u0639 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0645\u0624\u0642\u062A\u0627\u064B \u0648\u0627\u0644\u0639\u0648\u062F\u0629 \u0625\u0644\u0649 \u062B\u064A\u0645 Obsidian \u0627\u0644\u0646\u0634\u0637.",language:"\u0627\u0644\u0644\u063A\u0629",languageDesc:"\u0627\u062E\u062A\u0631 \u0644\u063A\u0629 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0625\u0636\u0627\u0641\u0629.",languageSettingsModalTitle:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0644\u063A\u0629",rtlLayoutName:"\u062A\u0641\u0639\u064A\u0644 \u062A\u0646\u0633\u064A\u0642 \u0627\u0644\u064A\u0645\u064A\u0646 \u0644\u0644\u064A\u0633\u0627\u0631 (RTL)",rtlLayoutDesc:"\u0639\u0646\u062F \u062A\u0641\u0639\u064A\u0644\u0647\u060C \u064A\u062A\u0645 \u0642\u0644\u0628 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0644\u062A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0643\u062A\u0628 \u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0644\u0644\u064A\u0633\u0627\u0631.",searchPlaceholder:"\u0627\u0628\u062D\u062B \u0639\u0646 \u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A (\u0628\u0627\u0644\u0627\u0633\u0645 \u0623\u0648 \u0627\u0644\u0642\u064A\u0645\u0629)...",regexPlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0644\u062A\u0639\u0628\u064A\u0631 \u0627\u0644\u0646\u0645\u0637\u064A \u0648\u0627\u0636\u063A\u0637 Enter...",allSections:"\u0643\u0644 \u0627\u0644\u0623\u0642\u0633\u0627\u0645",clear:"\u062A\u0646\u0638\u064A\u0641",ariaCase:"\u0628\u062D\u062B \u062D\u0633\u0627\u0633 \u0644\u062D\u0627\u0644\u0629 \u0627\u0644\u0623\u062D\u0631\u0641",ariaRegex:"\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u062A\u0639\u0627\u0628\u064A\u0631 \u0627\u0644\u0646\u0645\u0637\u064A\u0629 (Regex)",themeWarningTooltip:n=>`\u0627\u0644\u062B\u064A\u0645 "${n}" \u0645\u0637\u0628\u0651\u0642 \u062D\u0627\u0644\u064A\u0627\u064B\u060C \u0648\u0642\u062F \u064A\u062A\u0639\u0627\u0631\u0636 \u0645\u0639 \u0645\u0638\u0647\u0631 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A. \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0623\u0641\u0636\u0644 \u0627\u0644\u0646\u062A\u0627\u0626\u062C\u060C \u0646\u0646\u0635\u062D \u0628\u0627\u0644\u062A\u0628\u062F\u064A\u0644 \u0625\u0644\u0649 \u0627\u0644\u062B\u064A\u0645 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A \u0644\u0623\u0648\u0628\u0633\u064A\u062F\u064A\u0627\u0646\u060C \u0623\u0648 \u064A\u0645\u0643\u0646\u0643 \u0627\u0633\u062A\u064A\u0631\u0627\u062F \u062B\u064A\u0645 "${n}" \u0643\u0645\u0644\u0641 \u0634\u062E\u0635\u064A \u062C\u062F\u064A\u062F \u0644\u062A\u0639\u062F\u064A\u0644\u0647 \u0645\u0628\u0627\u0634\u0631\u0629\u064B.`},profileManager:{heading:"\u0625\u062F\u0627\u0631\u0629 \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0651\u0629",activeProfile:"\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u0646\u0634\u0637",activeProfileDesc:"\u062A\u0646\u0642\u0644 \u0628\u064A\u0646 \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0651\u0629 \u0623\u0648 \u0623\u0646\u0634\u0626 \u0648\u0627\u062D\u062F \u062C\u062F\u064A\u062F.",themeType:"\u0646\u0648\u0639 \u062B\u064A\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",themeTypeDesc:"\u062D\u062F\u062F \u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646\u062A \u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0633\u064A\u0641\u0631\u0636 \u062B\u064A\u0645\u0627\u064B \u0645\u0639\u064A\u0646\u0627\u064B (\u063A\u0627\u0645\u0642/\u0641\u0627\u062A\u062D) \u0639\u0646\u062F \u062A\u0641\u0639\u064A\u0644\u0647.",themeAuto:"\u0627\u0644\u062B\u064A\u0645 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A \u0644\u0623\u0648\u0628\u0633\u064A\u062F\u064A\u0627\u0646",themeDark:"\u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u063A\u0627\u0645\u0642",themeLight:"\u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0641\u0627\u062A\u062D",tooltipThemeAuto:"\u0627\u0644\u062B\u064A\u0645: \u062A\u0644\u0642\u0627\u0626\u064A (\u064A\u062A\u0628\u0639 \u0623\u0648\u0628\u0633\u064A\u062F\u064A\u0627\u0646) (\u0627\u0636\u063A\u0637 \u0644\u0644\u062A\u0628\u062F\u064A\u0644 \u0644\u0644\u0641\u0627\u062A\u062D)",tooltipThemeDark:"\u0627\u0644\u062B\u064A\u0645: \u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u063A\u0627\u0645\u0642 (\u0627\u0636\u063A\u0637 \u0644\u0644\u062A\u0628\u062F\u064A\u0644 \u0644\u0644\u062A\u0644\u0642\u0627\u0626\u064A)",tooltipThemeLight:"\u0627\u0644\u062B\u064A\u0645: \u0641\u0631\u0636 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0641\u0627\u062A\u062D (\u0627\u0636\u063A\u0637 \u0644\u0644\u062A\u0628\u062F\u064A\u0644 \u0644\u0644\u063A\u0627\u0645\u0642)",tooltipExport:"\u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u062D\u0627\u0644\u064A \u0643\u0645\u0644\u0641 JSON",tooltipCopyJson:"\u0646\u0633\u062E JSON \u0644\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u062D\u0627\u0644\u064A \u0625\u0644\u0649 \u0627\u0644\u062D\u0627\u0641\u0638\u0629"},options:{heading:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0645\u062A\u0642\u062F\u0645\u0629",liveUpdateName:"\u0645\u0639\u062F\u0644 \u0627\u0644\u062A\u062D\u062F\u064A\u062B \u0627\u0644\u0645\u0628\u0627\u0634\u0631 (\u0625\u0637\u0627\u0631 \u0628\u0627\u0644\u062B\u0627\u0646\u064A\u0629)",liveUpdateDesc:"\u064A\u062D\u062F\u062F \u0639\u062F\u062F \u0645\u0631\u0627\u062A \u062A\u062D\u062F\u064A\u062B \u0645\u0639\u0627\u064A\u0646\u0629 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0641\u064A \u0627\u0644\u062B\u0627\u0646\u064A\u0629 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u0633\u062D\u0628 (0 = \u062A\u0639\u0637\u064A\u0644 \u0627\u0644\u0645\u0639\u0627\u064A\u0646\u0629). \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0645\u0646\u062E\u0641\u0636\u0629 \u062A\u062D\u0633\u0646 \u0627\u0644\u0623\u062F\u0627\u0621.",iconizeModalTitle:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u062A\u0643\u0627\u0645\u0644 Iconize",overrideIconizeName:"\u062A\u062C\u0627\u0648\u0632 \u0623\u0644\u0648\u0627\u0646 \u0625\u0636\u0627\u0641\u0629 Iconize",overrideIconizeDesc:"\u0627\u0633\u0645\u062D \u0644\u0640 Color Master \u0628\u0627\u0644\u062A\u062D\u0643\u0645 \u0641\u064A \u0643\u0644 \u0623\u0644\u0648\u0627\u0646 \u0623\u064A\u0642\u0648\u0646\u0627\u062A Iconize. \u0644\u0623\u0641\u0636\u0644 \u0627\u0644\u0646\u062A\u0627\u0626\u062C\u060C \u0642\u0645 \u0628\u062A\u0639\u0637\u064A\u0644 \u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0641\u064A \u0625\u0636\u0627\u0641\u0629 Iconize \u0646\u0641\u0633\u0647\u0627.",cleanupIntervalName:"\u0641\u062A\u0631\u0629 \u0627\u0644\u062A\u0646\u0638\u064A\u0641",cleanupIntervalDesc:"\u062A\u062D\u062F\u062F \u0639\u062F\u062F \u0627\u0644\u0645\u0631\u0627\u062A (\u0628\u0627\u0644\u062B\u0648\u0627\u0646\u064A) \u0627\u0644\u062A\u064A \u062A\u062A\u062D\u0642\u0642 \u0641\u064A\u0647\u0627 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0645\u0646 \u0625\u0644\u063A\u0627\u0621 \u062A\u062B\u0628\u064A\u062A \u0625\u0636\u0627\u0641\u0629 Iconize \u0644\u062A\u0646\u0638\u064A\u0641 \u0623\u064A\u0642\u0648\u0646\u0627\u062A\u0647\u0627.",addCustomVarName:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062A\u063A\u064A\u0631 \u0645\u062E\u0635\u0635",addCustomVarDesc:"\u0623\u0636\u0641 \u0645\u062A\u063A\u064A\u0631 CSS \u062C\u062F\u064A\u062F \u063A\u064A\u0631 \u0645\u0648\u062C\u0648\u062F \u0628\u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u0629. \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0627\u0644\u0627\u0633\u0645 \u0628\u0640 '--'.",addNewVarButton:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062A\u063A\u064A\u0631 \u062C\u062F\u064A\u062F...",resetPluginName:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u0629",resetPluginDesc:"\u0633\u064A\u0624\u062F\u064A \u0647\u0630\u0627 \u0625\u0644\u0649 \u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629\u060C \u0648\u0627\u0644\u0645\u0642\u062A\u0637\u0641\u0627\u062A\u060C \u0648\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A\u060C \u0648\u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A\u060C \u0648\u0625\u0639\u0627\u062F\u0629 \u0636\u0628\u0637 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u062D\u0627\u0644\u062A\u0647\u0627 \u0627\u0644\u0623\u0635\u0644\u064A\u0629. \u064A\u062A\u0637\u0644\u0628 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621 \u0625\u0639\u0627\u062F\u0629 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642\u060C \u0648\u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646\u0647.",resetPluginButton:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A...",backgroundName:"\u062A\u0639\u064A\u064A\u0646 \u062E\u0644\u0641\u064A\u0629 \u0645\u062E\u0635\u0635\u0629",backgroundDesc:"\u0625\u062F\u0627\u0631\u0629 \u0635\u0648\u0631\u0629 \u0623\u0648 \u0641\u064A\u062F\u064A\u0648 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A.",backgroundModalSettingsTitle:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u062E\u0644\u0641\u064A\u0629",backgroundEnableName:"\u062A\u0641\u0639\u064A\u0644 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",backgroundEnableDesc:"\u0627\u0644\u062A\u062D\u0643\u0645 \u0628\u0638\u0647\u0648\u0631 \u0623\u0648 \u0625\u062E\u0641\u0627\u0621 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A.",convertImagesName:"\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0635\u0648\u0631 \u0625\u0644\u0649 JPG",convertImagesDesc:"\u062A\u062D\u0648\u064A\u0644 \u0635\u0648\u0631 PNG \u0623\u0648 WEBP \u0623\u0648 BMP \u062A\u0644\u0642\u0627\u0626\u064A\u0627\u064B \u0625\u0644\u0649 JPG \u0639\u0646\u062F \u0627\u0644\u0631\u0641\u0639 \u0644\u062A\u0642\u0644\u064A\u0644 \u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641 \u0648\u062A\u062D\u0633\u064A\u0646 \u0623\u062F\u0627\u0621 \u0627\u0644\u062A\u062D\u0645\u064A\u0644. (\u0645\u0644\u0627\u062D\u0638\u0629: \u0633\u062A\u0641\u0642\u062F \u0627\u0644\u0635\u0648\u0631 \u0634\u0641\u0627\u0641\u064A\u062A\u0647\u0627)",jpgQualityName:"\u062C\u0648\u062F\u0629 JPG",jpgQualityDesc:"\u062D\u062F\u062F \u062C\u0648\u062F\u0629 \u0627\u0644\u0636\u063A\u0637 (\u0645\u0646 1 \u0625\u0644\u0649 100). \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0623\u0642\u0644 \u062A\u0639\u0646\u064A \u0645\u0644\u0641\u0627\u062A \u0623\u0635\u063A\u0631 \u0648\u0644\u0643\u0646 \u0628\u062C\u0648\u062F\u0629 \u0623\u062F\u0646\u0649.",badgeNotInstalled:"\u063A\u064A\u0631 \u0645\u064F\u062B\u0628\u0651\u062A",videoOpacityName:"\u0634\u0641\u0627\u0641\u064A\u0629 \u0627\u0644\u0641\u064A\u062F\u064A\u0648",videoOpacityDesc:"\u0627\u0644\u062A\u062D\u0643\u0645 \u0628\u0634\u0641\u0627\u0641\u064A\u0629 \u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0641\u064A\u062F\u064A\u0648 \u0644\u062A\u062D\u0633\u064A\u0646 \u0642\u0627\u0628\u0644\u064A\u0629 \u0627\u0644\u0642\u0631\u0627\u0621\u0629.",videoMuteName:"\u0643\u062A\u0645 \u0627\u0644\u0641\u064A\u062F\u064A\u0648",videoMuteDesc:"\u0643\u062A\u0645 \u0635\u0648\u062A \u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0641\u064A\u062F\u064A\u0648. \u0645\u0648\u0635\u0649 \u0628\u0647 \u0628\u0634\u062F\u0629.",settingType:"\u0646\u0648\u0639 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",settingTypeImage:"\u0635\u0648\u0631\u0629",settingTypeVideo:"\u0641\u064A\u062F\u064A\u0648"},snippets:{heading:"\u0642\u0635\u0627\u0635\u0627\u062A CSS",createButton:"\u0625\u0646\u0634\u0627\u0621 \u0642\u0635\u0627\u0635\u0629 \u062C\u062F\u064A\u062F\u0629",noSnippetsDesc:"\u0644\u0645 \u064A\u062A\u0645 \u0625\u0646\u0634\u0627\u0621 \u0623\u064A \u0642\u0635\u0627\u0635\u0627\u062A CSS \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0628\u0639\u062F.",global:"\u0642\u0635\u0627\u0635\u0629 \u0639\u0627\u0645\u0651\u0629",globalName:"\u062D\u0641\u0638 \u0643\u0642\u0635\u0627\u0635\u0629 \u0639\u0627\u0645\u0629",globalDesc:"\u0627\u0644\u0642\u0635\u0627\u0635\u0629 \u0627\u0644\u0639\u0627\u0645\u0629 \u064A\u062A\u0645 \u062A\u0637\u0628\u064A\u0642\u0647\u0627 \u0639\u0644\u0649 \u062C\u0645\u064A\u0639 \u0645\u0644\u0641\u0627\u062A\u0643 \u0627\u0644\u0634\u062E\u0635\u064A\u0629."},categories:{pluginintegrations:"\u062A\u0643\u0627\u0645\u0644 \u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A",backgrounds:"\u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A",text:"\u0627\u0644\u0646\u0635\u0648\u0635",interactive:"\u0627\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u062A\u0641\u0627\u0639\u0644\u064A\u0629",ui:"\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0648\u0627\u062C\u0647\u0629",misc:"\u0645\u062A\u0646\u0648\u0639",graph:"\u0639\u0631\u0636 \u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A",markdown:"\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0645\u0627\u0631\u0643\u062F\u0648\u0627\u0646",notices:"\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A",custom:"\u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629",customDesc:"\u0645\u062A\u063A\u064A\u0631 \u0645\u0636\u0627\u0641 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645.",helpTextPre:"\u0644\u0645 \u062A\u062C\u062F \u0627\u0644\u0645\u062A\u063A\u064A\u0631 \u0627\u0644\u0630\u064A \u062A\u0628\u062D\u062B \u0639\u0646\u0647\u061F ",helpTextLink:"\u062A\u0635\u0641\u062D \u0642\u0627\u0626\u0645\u0629 \u0645\u062A\u063A\u064A\u0631\u0627\u062A CSS \u0627\u0644\u0631\u0633\u0645\u064A\u0629 \u0641\u064A Obsidian."},modals:{newProfile:{title:"\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0634\u062E\u0635\u064A \u062C\u062F\u064A\u062F",nameLabel:"\u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",namePlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A..."},deleteProfile:{title:"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",confirmation:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A "${n}"\u061F \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.`},jsonImport:{title:"\u0644\u0635\u0642 \u0623\u0648 \u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0644\u0641 JSON \u0644\u0644\u0645\u0644\u0641 \u0634\u062E\u0635\u064A",desc1:"\u064A\u0645\u0643\u0646\u0643 \u0644\u0635\u0642 \u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A (JSON) \u0641\u064A \u0627\u0644\u0635\u0646\u062F\u0648\u0642 \u0623\u062F\u0646\u0627\u0647.",placeholder:'{ "name": "...", "profile": { ... } }',settingName:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0645\u0644\u0641",settingDesc:"\u0623\u0648\u060C \u0627\u062E\u062A\u0631 \u0645\u0644\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A (.json) \u0645\u0646 \u062C\u0647\u0627\u0632 \u0627\u0644\u0643\u0645\u0628\u064A\u0648\u062A\u0631 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643.",replaceActiveButton:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644 \u0627\u0644\u0646\u0634\u0637",createNewButton:"\u0625\u0646\u0634\u0627\u0621 \u062C\u062F\u064A\u062F\u0629"},cssImport:{title:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F / \u0644\u0635\u0642 CSS \u0648\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0634\u062E\u0635\u064A",titleEdit:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",note:"\u0645\u0644\u0627\u062D\u0638\u0629 : \u0643\u0648\u062F CSS \u0627\u0644\u0630\u064A \u062A\u0644\u0635\u0642\u0647 \u0642\u062F \u064A\u0624\u062B\u0631 \u0639\u0644\u0649 \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062C\u060C \u0627\u0633\u062A\u062E\u062F\u0645 \u0641\u0642\u0637 \u0627\u0644\u0623\u0643\u0648\u0627\u062F \u0627\u0644\u0645\u0648\u062B\u0648\u0642\u0629.",importFromFile:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0645\u0644\u0641",importFromFileDesc:"\u0623\u0648\u060C \u0627\u062E\u062A\u0631 \u0645\u0644\u0641 (.css) \u0645\u0646 \u062C\u0647\u0627\u0632 \u0627\u0644\u0643\u0645\u0628\u064A\u0648\u062A\u0631 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643.",importFromTheme:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u062B\u064A\u0645 \u0645\u062B\u0628\u0651\u062A",importFromThemeDesc:"\u0642\u0645 \u0628\u062A\u062D\u0645\u064A\u0644 CSS \u0645\u0628\u0627\u0634\u0631\u0629 \u0645\u0646 \u0623\u062D\u062F \u0627\u0644\u062B\u064A\u0645\u0627\u062A \u0627\u0644\u0645\u062B\u0628\u062A\u0629 \u0644\u062F\u064A\u0643.",noThemes:"\u0644\u0627 \u064A\u0648\u062C\u062F \u062B\u064A\u0645\u0627\u062A \u0645\u062B\u0628\u062A\u0629"},snippetEditor:{title:"\u0625\u0646\u0634\u0627\u0621 \u0642\u0635\u0627\u0635\u0629 CSS \u062C\u062F\u064A\u062F\u0629",titleEdit:"\u062A\u0639\u062F\u064A\u0644 \u0642\u0635\u0627\u0635\u0629 CSS",nameLabel:"\u0627\u0633\u0645 \u0627\u0644\u0642\u0635\u0627\u0635\u0629",namePlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0642\u0635\u0627\u0635\u0629...",importFromSnippet:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0642\u0635\u0627\u0635\u0629 \u0645\u062B\u0628\u062A\u0629",importFromSnippetDesc:"\u0642\u0645 \u0628\u062A\u062D\u0645\u064A\u0644 CSS \u0645\u0628\u0627\u0634\u0631\u0629 \u0645\u0646 \u0625\u062D\u062F\u0649 \u0642\u0635\u0627\u0635\u0627\u062A Obsidian \u0627\u0644\u0645\u062B\u0628\u062A\u0629 \u0644\u062F\u064A\u0643.",noSnippets:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0642\u0635\u0627\u0635\u0627\u062A \u0645\u062B\u0628\u062A\u0629",cssPlaceholder:"\u0627\u0644\u0635\u0642 \u0643\u0648\u062F CSS \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0647\u0646\u0627..."},confirmation:{resetProfileTitle:"\u062A\u0623\u0643\u064A\u062F \u0627\u0633\u062A\u0631\u062C\u0627\u0639 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",resetProfileDesc:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u0627\u0633\u062A\u0631\u062C\u0627\u0639 \u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0644\u0622\u062E\u0631 \u0644\u0642\u0637\u0629 \u062A\u0645 \u062A\u062B\u0628\u064A\u062A\u0647\u0627\u061F \u0633\u064A\u062A\u0645 \u0627\u0644\u0643\u062A\u0627\u0628\u0629 \u0641\u0648\u0642 \u0627\u0644\u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u062D\u0627\u0644\u064A\u0629 \u0648\u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.",deleteSnippetTitle:n=>`\u062D\u0630\u0641 \u0627\u0644\u0642\u0635\u0627\u0635\u0629: ${n}`,deleteSnippetDesc:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u0642\u0635\u0627\u0635\u0629\u061F \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.",resetPluginTitle:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F\u061F",resetPluginDesc:"\u0633\u064A\u062A\u0645 \u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0628\u064A\u0627\u0646\u0627\u062A Color Master \u0628\u0634\u0643\u0644 \u062F\u0627\u0626\u0645 (\u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629\u060C \u0627\u0644\u0642\u0635\u0627\u0635\u0627\u062A\u060C \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A\u060C \u0648\u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A). \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621 \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646\u0647.",deleteGlobalBgTitle:"\u062A\u0623\u0643\u064A\u062F \u062D\u0630\u0641 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",deleteGlobalBgDesc:"\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0628\u0634\u0643\u0644 \u062F\u0627\u0626\u0645\u061F \u0627\u0644\u0628\u0631\u0648\u0641\u0627\u064A\u0644\u0627\u062A \u0627\u0644\u062A\u0627\u0644\u064A\u0629 \u062A\u0633\u062A\u062E\u062F\u0645\u0647\u0627 \u062D\u0627\u0644\u064A\u0627\u064B \u0648\u0633\u064A\u062A\u0645 \u0625\u0632\u0627\u0644\u062A\u0647\u0627 \u0645\u0646\u0647\u0627:",deleteBackgroundTitle:"\u062D\u0630\u0641 \u0627\u0644\u062E\u0644\u0641\u064A\u0629\u061F",deleteBackgroundDesc:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u0631\u063A\u0628\u062A\u0643 \u0641\u064A \u062D\u0630\u0641 '${n}' \u0628\u0634\u0643\u0644 \u062F\u0627\u0626\u0645\u061F`,deleteLangTitle:"\u062D\u0630\u0641 \u0627\u0644\u0644\u063A\u0629",deleteLangDesc:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u062D\u0630\u0641 \u062D\u0632\u0645\u0629 \u0627\u0644\u0644\u063A\u0629 "${n}"\u061F \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621.`,restoreLangTitle:"\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0644\u063A\u0629\u061F",restoreLangDesc:n=>`\u0647\u0644 \u0623\u0646\u062A \u0645\u062A\u0623\u0643\u062F \u0645\u0646 \u062D\u0630\u0641 \u0627\u0644\u062A\u0639\u062F\u064A\u0644\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0644\u0644\u063A\u0629 ${n} \u0648\u0627\u0644\u0639\u0648\u062F\u0629 \u0644\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u061F`},noticeRules:{titleText:"\u0642\u0648\u0627\u0639\u062F \u0644\u0648\u0646 \u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u062A\u0642\u062F\u0645\u0629",titleBg:"\u0642\u0648\u0627\u0639\u062F \u0644\u0648\u0646 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0627\u0644\u0645\u062A\u0642\u062F\u0645\u0629",desc:"\u0623\u0646\u0634\u0626 \u0642\u0648\u0627\u0639\u062F \u0630\u0627\u062A \u0623\u0648\u0644\u0648\u064A\u0629 \u0644\u062A\u0644\u0648\u064A\u0646 \u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A \u0628\u0646\u0627\u0621\u064B \u0639\u0644\u0649 \u0645\u062D\u062A\u0648\u0627\u0647\u0627. \u0633\u064A\u062A\u0645 \u062A\u0637\u0628\u064A\u0642 \u0623\u0648\u0644 \u0642\u0627\u0639\u062F\u0629 \u0645\u0637\u0627\u0628\u0642\u0629 \u0645\u0646 \u0627\u0644\u0623\u0639\u0644\u0649 \u0625\u0644\u0649 \u0627\u0644\u0623\u0633\u0641\u0644.",addNewRule:"\u0625\u0636\u0627\u0641\u0629 \u0642\u0627\u0639\u062F\u0629 \u062C\u062F\u064A\u062F\u0629",keywordPlaceholder:"\u0627\u0643\u062A\u0628 \u0643\u0644\u0645\u0629 \u062B\u0645 \u0627\u0636\u063A\u0637 \u0645\u0633\u0627\u0641\u0629...",useRegex:"Regex",highlightOnly:"\u062A\u0644\u0648\u064A\u0646 \u0627\u0644\u0643\u0644\u0645\u0629 \u0641\u0642\u0637"},duplicateProfile:{title:"\u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0645\u0643\u0631\u0631",descParts:['\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A "','" \u0645\u0648\u062C\u0648\u062F \u0628\u0627\u0644\u0641\u0639\u0644. \u0627\u0644\u0631\u062C\u0627\u0621 \u0627\u062E\u062A\u064A\u0627\u0631 \u0627\u0633\u0645 \u0645\u062E\u062A\u0644\u0641.'],placeholder:"\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u062C\u062F\u064A\u062F..."},customVar:{title:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062A\u063A\u064A\u0631 CSS \u0645\u062E\u0635\u0635 \u062C\u062F\u064A\u062F",desc:"\u062D\u062F\u062F \u0645\u062A\u063A\u064A\u0631 CSS \u062C\u062F\u064A\u062F (\u0645\u062B\u0627\u0644: --my-color: #f00). \u0633\u064A\u062A\u0645 \u0625\u0636\u0627\u0641\u0629 \u0647\u0630\u0627 \u0627\u0644\u0645\u062A\u063A\u064A\u0631 \u0625\u0644\u0649 \u0645\u0644\u0641\u0643 \u0627\u0644\u0634\u062E\u0635\u064A \u0627\u0644\u0646\u0634\u0637.",displayName:"\u0627\u0633\u0645 \u0627\u0644\u0639\u0631\u0636",displayNameDesc:"\u0627\u0633\u0645 \u0648\u062F\u064A \u0644\u0644\u0645\u062A\u063A\u064A\u0631 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 (\u0645\u062B\u0627\u0644: '\u0644\u0648\u0646 \u0623\u0633\u0627\u0633\u064A \u0645\u062E\u0635\u0635 \u0644\u064A').",displayNamePlaceholder:"\u0645\u062B\u0627\u0644: \u0644\u0648\u0646\u064A \u0627\u0644\u0623\u0633\u0627\u0633\u064A",varName:"\u0627\u0633\u0645 \u0627\u0644\u0645\u062A\u063A\u064A\u0631",varNameDesc:"\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0641\u0639\u0644\u064A \u0644\u0645\u062A\u063A\u064A\u0631 CSS. \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 '--' (\u0645\u062B\u0627\u0644: '--my-primary-color').",varNamePlaceholder:"\u0645\u062B\u0627\u0644: --my-primary-color",varValue:"\u0642\u064A\u0645\u0629 \u0627\u0644\u0645\u062A\u063A\u064A\u0631",varType:"\u0646\u0648\u0639 \u0627\u0644\u0645\u062A\u063A\u064A\u0631",varTypeDesc:"\u0627\u062E\u062A\u0631 \u0646\u0648\u0639 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u062A\u064A \u064A\u062D\u0645\u0644\u0647\u0627 \u0647\u0630\u0627 \u0627\u0644\u0645\u062A\u063A\u064A\u0631.",types:{color:"\u0644\u0648\u0646",size:"\u062D\u062C\u0645 (\u0645\u062B\u0644 px, em)",text:"\u0646\u0635",number:"\u0631\u0642\u0645"},varValueDesc:"\u0642\u064A\u0645\u0629 \u0645\u062A\u063A\u064A\u0631 CSS (\u0645\u062B\u0627\u0644: 'red', '#ff0000', 'rgb(255,0,0)').",varValuePlaceholder:"\u0645\u062B\u0627\u0644: #FF0000 \u0623\u0648 \u0623\u062D\u0645\u0631",description:"\u0627\u0644\u0648\u0635\u0641 (\u0627\u062E\u062A\u064A\u0627\u0631\u064A)",descriptionDesc:"\u0648\u0635\u0641 \u0645\u0648\u062C\u0632 \u0644\u0645\u0627 \u064A\u062A\u062D\u0643\u0645 \u0641\u064A\u0647 \u0647\u0630\u0627 \u0627\u0644\u0645\u062A\u063A\u064A\u0631.",descriptionPlaceholder:"\u0645\u062B\u0627\u0644: \u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u0633\u0627\u0633\u064A \u0644\u0644\u0639\u0646\u0627\u0648\u064A\u0646",addVarButton:"\u0625\u0636\u0627\u0641\u0629",textValuePlaceholder:"\u0623\u062F\u062E\u0644 \u0627\u0644\u0642\u064A\u0645\u0629 \u0627\u0644\u0646\u0635\u064A\u0629..."},addBackground:{title:"\u0625\u0636\u0627\u0641\u0629 \u062E\u0644\u0641\u064A\u0629 \u062C\u062F\u064A\u062F\u0629 (\u0635\u0648\u0631\u0629/\u0641\u064A\u062F\u064A\u0648)",importFromFile:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 \u0645\u0644\u0641",importFromFileDesc:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0644\u0641 \u0635\u0648\u0631\u0629 \u0623\u0648 \u0641\u064A\u062F\u064A\u0648 \u0645\u0646 \u062C\u0647\u0627\u0632 \u0627\u0644\u0643\u0645\u0628\u064A\u0648\u062A\u0631.",pasteBoxPlaceholder:"\u0627\u0633\u062D\u0628 \u0648\u0623\u0641\u0644\u062A / \u0623\u0648 \u0627\u0644\u0635\u0642 \u062E\u0644\u0641\u064A\u0629 / \u0631\u0627\u0628\u0637 \u0647\u0646\u0627 (Ctrl+V)",dropToAdd:"\u0623\u0641\u0644\u062A\u0647\u0627 \u0644\u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u062E\u0644\u0641\u064A\u0629...",processing:"\u062C\u0627\u0631\u064A \u0627\u0644\u0645\u0639\u0627\u0644\u062C\u0629"},fileConflict:{title:"\u0627\u0644\u0645\u0644\u0641 \u0645\u0648\u062C\u0648\u062F",desc:n=>`\u064A\u0648\u062C\u062F \u0645\u0644\u0641 \u0628\u0627\u0633\u0645 '${n}' \u0645\u0648\u062C\u0648\u062F \u0645\u0633\u0628\u0642\u0627\u064B \u0641\u064A \u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A. \u0645\u0627\u0630\u0627 \u062A\u0631\u064A\u062F \u0623\u0646 \u062A\u0641\u0639\u0644\u061F`,replaceButton:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644 \u0627\u0644\u0645\u0644\u0641",keepButton:"\u0627\u0644\u0627\u062D\u062A\u0641\u0627\u0638 \u0628\u0643\u0644\u064A\u0647\u0645\u0627 (\u0625\u0639\u0627\u062F\u0629 \u062A\u0633\u0645\u064A\u0629)"},backgroundBrowser:{title:"\u0627\u0633\u062A\u0639\u0631\u0627\u0636 \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A",noImages:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0635\u0648\u0631 \u0623\u0648 \u0641\u064A\u062F\u064A\u0648\u0647\u0627\u062A \u0641\u064A \u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A."},advancedReset:{title:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0645\u062A\u0642\u062F\u0645\u0629 \u0644\u0644\u0628\u064A\u0627\u0646\u0627\u062A",desc:"\u0627\u062E\u062A\u0631 \u0623\u062C\u0632\u0627\u0621 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u064A\u062F \u062D\u0630\u0641\u0647\u0627 \u0646\u0647\u0627\u0626\u064A\u0627\u064B. \u0647\u0630\u0627 \u0627\u0644\u0625\u062C\u0631\u0627\u0621 \u0644\u0627 \u064A\u0645\u0643\u0646 \u0627\u0644\u062A\u0631\u0627\u062C\u0639 \u0639\u0646\u0647.",profilesLabel:"\u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629 \u0648\u0627\u0644\u0644\u0642\u0637\u0627\u062A",profilesDesc:"\u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0648\u0627\u0644\u0644\u0642\u0637\u0627\u062A \u0627\u0644\u0645\u062B\u0628\u062A\u0629. (\u064A\u062D\u0627\u0641\u0638 \u0639\u0644\u0649 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0645\u062F\u0645\u062C\u0629).",snippetsLabel:"\u0627\u0644\u0642\u0635\u0627\u0635\u0627\u062A \u0627\u0644\u0639\u0627\u0645\u0629 \u0648\u0627\u0644\u062E\u0627\u0635\u0629",snippetsDesc:"\u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0642\u0635\u0627\u0635\u0627\u062A CSS\u060C \u0633\u0648\u0627\u0621 \u0627\u0644\u0639\u0627\u0645\u0629 \u0623\u0648 \u0627\u0644\u0645\u0648\u062C\u0648\u062F\u0629 \u062F\u0627\u062E\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0634\u062E\u0635\u064A\u0629.",backgroundsLabel:"\u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A",backgroundsDesc:"\u062D\u0630\u0641 \u0645\u062C\u0644\u062F \u0627\u0644\u062E\u0644\u0641\u064A\u0627\u062A \u062F\u0627\u062E\u0644 \u0645\u062C\u0644\u062F \u0625\u0639\u062F\u0627\u062F\u0627\u062A Obsidian (configDir/backgrounds) \u0628\u0627\u0644\u0643\u0627\u0645\u0644 \u0645\u0639 \u062C\u0645\u064A\u0639 \u0627\u0644\u0648\u0633\u0627\u0626\u0637 \u0628\u062F\u0627\u062E\u0644\u0647.",settingsLabel:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0625\u0636\u0627\u0641\u0629",settingsDesc:"\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0644\u063A\u0629\u060C \u0645\u0639\u062F\u0644 \u0627\u0644\u062A\u062D\u062F\u064A\u062B\u060C \u0648\u0627\u0644\u062A\u0641\u0636\u064A\u0644\u0627\u062A \u0627\u0644\u0623\u062E\u0631\u0649 \u0644\u0644\u0648\u0636\u0639 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A.",languagesLabel:"\u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629",languagesDesc:"\u062D\u0630\u0641 \u062C\u0645\u064A\u0639 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629 \u0627\u0644\u062A\u064A \u0623\u0646\u0634\u0623\u0647\u0627 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645."},addLang:{title:"\u0625\u0636\u0627\u0641\u0629 \u0644\u063A\u0629 \u062C\u062F\u064A\u062F\u0629",desc:"\u0625\u0646\u0634\u0627\u0621 \u062D\u0632\u0645\u0629 \u0644\u063A\u0629 \u0645\u062E\u0635\u0635\u0629 \u062C\u062F\u064A\u062F\u0629. \u0633\u062A\u062A\u0645\u0643\u0646 \u0645\u0646 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u062A\u0631\u062C\u0645\u0627\u062A \u0628\u0639\u062F \u0627\u0644\u0625\u0646\u0634\u0627\u0621.",nameLabel:"\u0627\u0633\u0645 \u0627\u0644\u0644\u063A\u0629 (\u0627\u0644\u0623\u0635\u0644\u064A)",nameDesc:"\u0627\u0633\u0645 \u0627\u0644\u0644\u063A\u0629 \u0628\u062E\u0637\u0647\u0627 \u0627\u0644\u0623\u0635\u0644\u064A.",namePlaceholder:"\u0645\u062B\u0627\u0644: \u0627\u0644\u0639\u064E\u0631\u064E\u0628\u064A\u0651\u064E\u0629\u064F",codeLabel:"\u0631\u0645\u0632 \u0627\u0644\u0644\u063A\u0629",codeDesc:"\u0631\u0645\u0632 ISO 639 \u0641\u0631\u064A\u062F (\u0645\u062B\u0644: 'en', 'ar', 'zh').",codePlaceholder:"\u0645\u062B\u0627\u0644: ar",rtlLabel:"\u0644\u063A\u0629 RTL",rtlDesc:"\u0642\u0645 \u0628\u062A\u0641\u0639\u064A\u0644 \u0647\u0630\u0627 \u0627\u0644\u062E\u064A\u0627\u0631 \u0625\u0630\u0627 \u0643\u0627\u0646\u062A \u0627\u0644\u0644\u063A\u0629 \u062A\u0643\u062A\u0628 \u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631 (\u0645\u062B\u0644 \u0627\u0644\u0639\u0631\u0628\u064A\u0651\u0629\u060C \u0627\u0644\u0623\u0631\u062F\u064A\u0629)."},translator:{title:n=>`\u062A\u0639\u062F\u064A\u0644 \u062A\u0631\u062C\u0645\u0627\u062A: ${n}`,searchPlaceholder:"\u0627\u0628\u062D\u062B \u0639\u0646 \u0645\u0641\u0627\u062A\u064A\u062D \u0627\u0644\u062A\u0631\u062C\u0645\u0629...",copyJson:"\u0646\u0633\u062E JSON",pasteJson:"\u0644\u0635\u0642 JSON",exportFile:"\u062A\u0635\u062F\u064A\u0631 \u0645\u0644\u0641",importFile:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0644\u0641",showMissing:"\u0639\u0631\u0636 \u0627\u0644\u0645\u0641\u0642\u0648\u062F\u0629 \u0641\u0642\u0637",showAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",showMore:"\u0639\u0631\u0636 \u0627\u0644\u0645\u0632\u064A\u062F",showLess:"\u0639\u0631\u0636 \u0623\u0642\u0644",noMatches:"\u0644\u0627 \u062A\u0648\u062C\u062F \u062A\u0631\u062C\u0645\u0627\u062A \u062A\u0637\u0627\u0628\u0642 \u0628\u062D\u062B\u0643.",dynamicValue:"\u0642\u064A\u0645\u0629 \u062F\u064A\u0646\u0627\u0645\u064A\u0643\u064A\u0651\u0629"},langInfo:{title:"\u062D\u0648\u0644 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062E\u0635\u0635\u0629",desc:`\u062A\u062A\u064A\u062D \u0644\u0643 \u0647\u0630\u0647 \u0627\u0644\u0645\u064A\u0632\u0629 \u0625\u0646\u0634\u0627\u0621 \u062A\u0631\u062C\u0645\u0627\u062A\u0643 \u0627\u0644\u062E\u0627\u0635\u0629 \u0644\u0644\u0625\u0636\u0627\u0641\u0629. **\u0644\u0645\u0627\u0630\u0627 \u0623\u0636\u0641\u0646\u0627 \u0647\u0630\u0647 \u0627\u0644\u0645\u064A\u0632\u0629\u061F** @@ -54,20 +54,20 @@ Honn\xEAtement, en tant que seul d\xE9veloppeur sur ce plugin, il m'est difficil 4. Utilisez "Coller JSON" ou "Importer un fichier" pour charger votre traduction. 5. Une fois satisfait, envoyez-moi le fichier JSON (via une Pull Request GitHub) et je l'int\xE9grerai volontiers comme nouvelle **langue de base**. -Cela vous permet \xE9galement de corriger les fautes de frappe ou d'am\xE9liorer les traductions des langues de base pour votre propre usage.`}},notices:{pluginEnabled:"Ma\xEEtre des Couleurs activ\xE9",pluginDisabled:"Ma\xEEtre des Couleurs d\xE9sactiv\xE9",profilePinned:"Couleurs du profil \xE9pingl\xE9es avec succ\xE8s !",profileReset:"Le profil a \xE9t\xE9 r\xE9initialis\xE9 \xE0 la capture \xE9pingl\xE9e.",noPinnedSnapshot:"Aucune capture \xE9pingl\xE9e trouv\xE9e pour ce profil.",profileNotFound:"Le profil actif n'a pas pu \xEAtre trouv\xE9.",noProfilesFound:"Aucun profil trouv\xE9.",activeProfileSwitched:n=>`Profil actif : ${n}`,graphColorsApplied:"Couleurs du graphique appliqu\xE9es !",invalidJson:"JSON invalide.",jsonMustHaveName:"Le JSON import\xE9 doit avoir une propri\xE9t\xE9 'name' pour cr\xE9er un nouveau profil.",profileCreatedSuccess:n=>`Le profil "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s.`,profileImportedSuccess:"Profil import\xE9 avec succ\xE8s.",noActiveProfileToCopy:"Aucun profil actif \xE0 copier.",noActiveProfileToExport:"Aucun profil actif \xE0 exporter.",snippetCssCopied:"CSS de l'extrait copi\xE9 dans le presse-papiers !",snippetEmpty:"Cet extrait est vide.",cssContentEmpty:"Le contenu CSS ne peut pas \xEAtre vide.",snippetNameExists:n=>`Le nom d'extrait "${n}" existe d\xE9j\xE0.`,profileNameExists:n=>`Le nom de profil "${n}" existe d\xE9j\xE0.`,profileUpdated:n=>`Profil "${n}" mis \xE0 jour.`,snippetUpdated:n=>`Extrait "${n}" mis \xE0 jour.`,snippetCreated:n=>`L'extrait "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s !`,snippetDeleted:"Extrait supprim\xE9 avec succ\xE8s.",snippetScopeMove:"Utilisez la fen\xEAtre de modification pour d\xE9placer un extrait.",profileCreatedFromCss:n=>`Le profil "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s !`,noColorHistory:"Aucun historique de couleur \xE0 restaurer.",colorRestored:n=>`Restaur\xE9 : ${n}`,textboxEmpty:"La zone de texte est vide. Collez du JSON ou importez d'abord un fichier.",fileLoaded:n=>`Fichier "${n}" charg\xE9 dans la zone de texte.`,exportSuccess:"Profil export\xE9 avec succ\xE8s !",jsonCopied:"JSON du profil copi\xE9 dans le presse-papiers avec succ\xE8s !",resetSuccess:"Les donn\xE9es de Color Master ont \xE9t\xE9 supprim\xE9es. Veuillez recharger Obsidian pour appliquer les changements.",fpsUpdated:n=>`FPS de la mise \xE0 jour en direct d\xE9fini sur : ${n}`,invalidProfileObject:"Le JSON ne semble pas \xEAtre un objet de profil valide.",profileCreated:n=>`Le profil "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s !`,settingsSaved:"Param\xE8tres appliqu\xE9s avec succ\xE8s !",testSentence:n=>`La couleur de notification pour "${n}" ressemble \xE0 ceci :`,varNameEmpty:"Le nom de la variable ne peut pas \xEAtre vide.",varNameFormat:"Le nom de la variable doit commencer par '--'.",varExists:n=>`La variable "${n}" existe d\xE9j\xE0.`,varAdded:n=>`La variable "${n}" a \xE9t\xE9 ajout\xE9e avec succ\xE8s.`,iconizeNotFound:"Plugin Iconize non trouv\xE9. Veuillez l'installer et l'activer pour utiliser cette fonctionnalit\xE9.",themeCssLoaded:n=>`CSS du th\xE8me "${n}" charg\xE9 avec succ\xE8s.`,themeReadFailed:n=>`Impossible de lire le fichier du th\xE8me "${n}". Il est peut-\xEAtre prot\xE9g\xE9 ou manquant.`,snippetLoaded:n=>`CSS de l'extrait "${n}" charg\xE9 avec succ\xE8s.`,snippetReadFailed:n=>`Impossible de lire le fichier de l'extrait "${n}".`,themeSwitchedLight:"Passage en mode Clair",themeSwitchedDark:"Passage en mode Sombre",themeSwitchedAuto:"Passage en mode Auto",bgSet:"L'arri\xE8re-plan a \xE9t\xE9 d\xE9fini avec succ\xE8s.",bgRemoved:"L'arri\xE8re-plan a \xE9t\xE9 supprim\xE9.",backgroundLoadError:"\xC9chec du chargement de l'arri\xE8re-plan.",noBgToRemove:"Il n'y a pas d'arri\xE8re-plan actif \xE0 supprimer for ce profil.",bgDeleted:"L'arri\xE8re-plan et son fichier ont \xE9t\xE9 supprim\xE9s.",backgroundUrlLoadError:"\xC9chec du t\xE9l\xE9chargement de l'arri\xE8re-plan depuis l'URL.",backgroundPasteError:"Le contenu coll\xE9 n'est pas un fichier d'arri\xE8re-plan ou une URL valide.",downloadingFromUrl:n=>`T\xE9l\xE9chargement depuis ${n}...`,pastedBase64Image:"Image Base64 coll\xE9e",pastedImage:n=>`Image "${n}" coll\xE9e`,invalidFilename:"Nom de fichier invalide.",filenameExists:n=>`Le nom de fichier "${n}" existe d\xE9j\xE0.`,renameSuccess:n=>`Renomm\xE9 en "${n}"`,renameError:"Erreur lors du changement de nom du fichier.",profileDeleted:"Profil supprim\xE9 avec succ\xE8s.",jpgQualitySet:n=>`Qualit\xE9 JPG r\xE9gl\xE9e sur ${n}%`,cannotDeleteLastProfile:"Vous ne pouvez pas supprimer le dernier profil.",noKeywordsToTest:"Cette r\xE8gle n'a pas de mots-cl\xE9s \xE0 tester.",langNameEmpty:"Le nom de la langue ne peut pas \xEAtre vide.",langCodeEmpty:"Le code de la langue ne peut pas \xEAtre vide.",langCodeCore:n=>`Le code "${n}" est r\xE9serv\xE9 \xE0 une langue de base. Veuillez en choisir un autre.`,langCodeExists:n=>`Une langue personnalis\xE9e avec le code "${n}" existe d\xE9j\xE0.`,langNameExists:n=>`Une langue personnalis\xE9e portant le nom "${n}" existe d\xE9j\xE0.`,langNameCore:n=>`Le nom "${n}" est r\xE9serv\xE9 \xE0 une langue de base. Veuillez en choisir un autre.`,langCreated:n=>`Langue cr\xE9\xE9e avec succ\xE8s : ${n}`,langSaved:n=>`Traductions enregistr\xE9es avec succ\xE8s pour : ${n}`,langExported:n=>`${n}.json export\xE9 avec succ\xE8s`,langImported:n=>`Traductions import\xE9es avec succ\xE8s depuis ${n}`,langCopiedJson:"Traductions JSON copi\xE9es dans le presse-papiers.",langPastedJson:n=>`${n} traductions appliqu\xE9es avec succ\xE8s.`,langDeleted:n=>`Langue supprim\xE9e : ${n}`,langRestored:"Langue restaur\xE9e aux valeurs par d\xE9faut.",deleteBackgroundsError:n=>`\xC9chec de la suppression du dossier des arri\xE8re-plans : ${n}`,snippetsLocked:"Extraits verrouill\xE9s (Glissement d\xE9sactiv\xE9).",snippetsUnlocked:"Extraits d\xE9verrouill\xE9s."},tooltips:{editCssProfile:"Modifier le profil CSS",pinSnapshot:"\xC9pingler les couleurs actuelles comme une capture",pinSnapshotDate:n=>`Couleurs \xE9pingl\xE9es le ${n}. Cliquez pour r\xE9-\xE9pingler.`,resetToPinned:"R\xE9initialiser aux couleurs \xE9pingl\xE9es",editSnippet:"Modifier l'extrait",copySnippetCss:"Copier le CSS dans le presse-papiers",deleteSnippet:"Supprimer l'extrait",setTransparent:"Rendre transparent",undoChange:"Annuler la derni\xE8re modification",dragReorder:"Glisser pour r\xE9organiser",testRule:"Tester cette r\xE8gle avec un mot-cl\xE9 al\xE9atoire",deleteCustomVar:"Supprimer la variable personnalis\xE9e",iconizeSettings:"Param\xE8tres d'Iconize",themeLight:"Th\xE8me : Forcer le mode Clair (Cliquer pour passer au Sombre)",themeDark:"Th\xE8me : Forcer le mode Sombre (Cliquer pour passer en Auto)",themeAuto:"Th\xE8me : Auto (Suit Obsidian) (Cliquer pour passer au Clair)",addBg:"Ajouter un arri\xE8re-plan",removeBg:"Supprimer l'arri\xE8re-plan",bgSettings:"Param\xE8tres d'arri\xE8re-plan",browseBg:"Parcourir les arri\xE8re-plans stock\xE9s",iconizeNotInstalled:"Plugin non install\xE9 ou d\xE9sactiv\xE9. Veuillez installer et activer 'Iconize' pour utiliser cette fonctionnalit\xE9.",editLang:"Modifier la langue s\xE9lectionn\xE9e",langMenu:"Options de langue",langInfo:"Pourquoi cr\xE9er/modifier des langues ?",restoreDefaultLang:"Restaurer les traductions par d\xE9faut",lockSnippets:"Verrouiller le glissement",unlockSnippets:"D\xE9verrouiller le glissement"},commands:{toggleTheme:"Changer le th\xE8me du profil actif",enableDisable:"Activer & D\xE9sactiver",cycleNext:"Profil suivant",cyclePrevious:"Profil pr\xE9c\xE9dent",openSettings:"Ouvrir les param\xE8tres"},likeCard:{tagline:"Personnalisez votre Obsidian \u2014 modifiez, enregistrez et partagez vos profils de couleurs",description:"Moteur de th\xE8mes pour Obsidian \u2014 contr\xF4lez les th\xE8mes et les palettes de couleurs",profilesAndSnippets:"Profils et extraits",customizableColors:"Couleurs personnalisables",daysOfUse:"Jours d'utilisation",githubButton:"Mettre une \xE9toile sur GitHub",reportIssueButton:"Signaler un probl\xE8me",syncVaultButton:"Synchroniser votre coffre",telegramButton:"Telegram"},colors:{names:{"--iconize-icon-color":"Couleur des ic\xF4nes Iconize","--background-primary":"Arri\xE8re-plan principal","--background-primary-alt":"Arri\xE8re-plan principal (Alt)","--background-secondary":"Arri\xE8re-plan secondaire","--background-secondary-alt":"Arri\xE8re-plan secondaire (Alt)","--background-modifier-border":"Bordure","--background-modifier-border-hover":"Bordure (Survol)","--background-modifier-border-focus":"Bordure (Focus)","--background-modifier-flair":"Arri\xE8re-plan Flair","--background-modifier-hover":"Arri\xE8re-plan (Survol)","--background-modifier-active":"Arri\xE8re-plan (Actif)","--text-normal":"Texte normal","--text-muted":"Texte estomp\xE9","--text-faint":"Texte faible","--text-on-accent":"Texte sur accent","--text-accent":"Texte accentu\xE9","--text-accent-hover":"Texte accentu\xE9 (Survol)","--text-selection":"S\xE9lection de texte","--checklist-done-color":"T\xE2che coch\xE9e","--tag-color":"Texte des tags","--tag-color-hover":"Texte des tags (Survol)","--tag-bg":"Fond des tags","--h1-color":"Couleur H1","--h2-color":"Couleur H2","--h3-color":"Couleur H3","--h4-color":"Couleur H4","--h5-color":"Couleur H5","--h6-color":"Couleur H6","--hr-color":"Ligne horizontale","--blockquote-border-color":"Bordure de citation","--blockquote-color":"Texte de citation","--blockquote-bg":"Fond de citation","--code-normal":"Texte de code en ligne","--code-background":"Fond de code en ligne","--text-highlight-bg":"Fond de texte surlign\xE9","--interactive-normal":"Interactif Normal","--interactive-hover":"Interactif (Survol)","--interactive-accent":"Interactif Accent","--interactive-accent-hover":"Interactif Accent (Survol)","--interactive-success":"Couleur de succ\xE8s","--interactive-error":"Couleur d'erreur","--interactive-warning":"Couleur d'avertissement","--titlebar-background":"Fond de la barre de titre","--titlebar-background-focused":"Fond de la barre de titre (Focus)","--titlebar-text-color":"Texte de la barre de titre","--sidebar-background":"Fond de la barre lat\xE9rale","--sidebar-border-color":"Bordure de la barre lat\xE9rale","--header-background":"Fond de l'en-t\xEAte","--header-border-color":"Bordure de l'en-t\xEAte","--vault-name-color":"Nom du coffre","--cm-notice-text-default":"Texte de notification par d\xE9faut","--cm-notice-bg-default":"Fond de notification par d\xE9faut","--graph-line":"Ligne du graphique","--graph-node":"N\u0153ud du graphique","--graph-text":"Texte du graphique","--graph-node-unresolved":"N\u0153ud non r\xE9solu","--graph-node-focused":"N\u0153ud focalis\xE9","--graph-node-tag":"N\u0153ud de tag","--graph-node-attachment":"N\u0153ud de pi\xE8ce jointe","--scrollbar-thumb-bg":"Curseur de la barre de d\xE9filement","--scrollbar-bg":"Fond de la barre de d\xE9filement","--divider-color":"S\xE9parateur"},descriptions:{"--iconize-icon-color":"D\xE9finit la couleur de toutes les ic\xF4nes ajout\xE9es par le plugin Iconize. Cela remplacera les propres param\xE8tres de couleur d'Iconize.","--background-primary":"Couleur de fond principale pour toute l'application, en particulier pour les volets d'\xE9dition et de notes.","--background-primary-alt":"Une couleur de fond alternative, souvent utilis\xE9e pour la ligne active dans l'\xE9diteur.","--background-secondary":"Arri\xE8re-plan secondaire, g\xE9n\xE9ralement utilis\xE9 pour les barres lat\xE9rales et autres panneaux d'interface.","--background-secondary-alt":"Un arri\xE8re-plan secondaire alternatif, utilis\xE9 pour le fichier actif de l'explorateur de fichiers.","--background-modifier-border":"La couleur des bordures sur divers \xE9l\xE9ments de l'interface comme les boutons et les entr\xE9es.","--background-modifier-border-hover":"La couleur de la bordure lorsque vous survolez un \xE9l\xE9ment.","--background-modifier-border-focus":"La couleur de la bordure pour un \xE9l\xE9ment focalis\xE9, comme un champ de texte s\xE9lectionn\xE9.","--background-modifier-flair":"Couleur de fond pour les \xE9l\xE9ments sp\xE9ciaux de l'interface, comme l'\xE9tat 'Synchronisation' ou 'Indexation'.","--background-modifier-hover":"La couleur de fond des \xE9l\xE9ments lorsque vous les survolez (par exemple, les \xE9l\xE9ments de liste).","--background-modifier-active":"La couleur de fond d'un \xE9l\xE9ment lorsqu'il est activement cliqu\xE9 ou s\xE9lectionn\xE9.","--text-normal":"La couleur de texte par d\xE9faut pour toutes les notes et la plupart de l'interface.","--text-muted":"Une couleur de texte l\xE9g\xE8rement estomp\xE9e, utilis\xE9e pour des informations moins importantes comme les m\xE9tadonn\xE9es de fichier.","--text-faint":"La couleur de texte la plus estomp\xE9e, pour un texte d'interface tr\xE8s subtil ou des \xE9l\xE9ments d\xE9sactiv\xE9s.","--text-on-accent":"Couleur de texte qui appara\xEEt sur des fonds accentu\xE9s (comme sur un bouton principal).","--text-accent":"La couleur d'accentuation principale pour le texte, utilis\xE9e pour les liens et les \xE9l\xE9ments d'interface mis en \xE9vidence.","--text-accent-hover":"La couleur du texte accentu\xE9 (comme les liens) lorsque vous le survolez.","--text-selection":"La couleur de fond du texte que vous avez s\xE9lectionn\xE9 avec votre curseur.","--checklist-done-color":"La couleur de la coche et du texte pour une t\xE2che termin\xE9e.","--tag-color":"D\xE9finit la couleur du texte des #tags.","--tag-color-hover":"D\xE9finit la couleur du texte des #tags lors du survol.","--tag-bg":"D\xE9finit la couleur de fond des #tags, permettant une forme de 'pilule'.","--h1-color":"La couleur du texte des titres H1.","--h2-color":"La couleur du texte des titres H2.","--h3-color":"La couleur du texte des titres H3.","--h4-color":"La couleur du texte des titres H4.","--h5-color":"La couleur du texte des titres H5.","--h6-color":"La couleur du texte des titres H6.","--hr-color":"La couleur de la ligne de s\xE9paration horizontale cr\xE9\xE9e avec `---`.","--blockquote-border-color":"La couleur de la bordure verticale sur le c\xF4t\xE9 gauche d'une citation.","--blockquote-color":"La couleur du texte pour le contenu \xE0 l'int\xE9rieur d'une citation.","--blockquote-bg":"D\xE9finit la couleur de fond des \xE9l\xE9ments de citation (>).","--code-normal":"D\xE9finit la couleur du texte \xE0 l'int\xE9rieur du code en ligne (entre apostrophes inverses).","--code-background":"D\xE9finit la couleur de fond pour les blocs de code en ligne.","--text-highlight-bg":"D\xE9finit la couleur de fond pour le texte surlign\xE9 (==comme ceci==).","--interactive-normal":"La couleur de fond pour les \xE9l\xE9ments interactifs comme les boutons.","--interactive-hover":"La couleur de fond pour les \xE9l\xE9ments interactifs lors du survol.","--interactive-accent":"La couleur d'accentuation pour les \xE9l\xE9ments interactifs importants (par exemple, le bouton 'Cr\xE9er').","--interactive-accent-hover":"La couleur d'accentuation pour les \xE9l\xE9ments interactifs importants lors du survol.","--interactive-success":"Couleur indiquant une op\xE9ration r\xE9ussie (par exemple, vert).","--interactive-error":"Couleur indiquant une erreur (par exemple, rouge).","--interactive-warning":"Couleur indiquant un avertissement (par exemple, jaune).","--titlebar-background":"La couleur de fond de la barre de titre de la fen\xEAtre principale.","--titlebar-background-focused":"La couleur de fond de la barre de titre lorsque la fen\xEAtre est active.","--titlebar-text-color":"La couleur du texte dans la barre de titre.","--sidebar-background":"Cible sp\xE9cifiquement l'arri\xE8re-plan des barres lat\xE9rales.","--sidebar-border-color":"La couleur de la bordure \xE0 c\xF4t\xE9 des barres lat\xE9rales.","--header-background":"L'arri\xE8re-plan pour les en-t\xEAtes dans les volets (par exemple, l'en-t\xEAte du titre de la note).","--header-border-color":"La couleur de la bordure sous les en-t\xEAtes de volet.","--vault-name-color":"La couleur du nom de votre coffre dans le coin sup\xE9rieur gauche.","--cm-notice-text-default":"D\xE9finit la couleur de texte par d\xE9faut pour toutes les notifications, sauf si elle est remplac\xE9e par une r\xE8gle.","--cm-notice-bg-default":"D\xE9finit la couleur de fond par d\xE9faut pour toutes les notifications, sauf si elle est remplac\xE9e par une r\xE8gle.","--graph-line":"La couleur des lignes de connexion entre les notes dans la vue graphique.","--graph-node":"La couleur des n\u0153uds circulaires pour les notes existantes.","--graph-text":"La couleur des \xE9tiquettes de texte sur les n\u0153uds du graphique.","--graph-node-unresolved":"La couleur des n\u0153uds pour les notes qui n'existent pas encore (liens non r\xE9solus).","--graph-node-focused":"Couleur du n\u0153ud qui est focalis\xE9 ou survol\xE9 (n\u0153ud en surbrillance).","--graph-node-tag":"Couleur des n\u0153uds repr\xE9sentant les tags lorsque les tags sont affich\xE9s dans le graphique.","--graph-node-attachment":"Couleur des n\u0153uds repr\xE9sentant les pi\xE8ces jointes (par exemple, image ou autres fichiers li\xE9s).","--scrollbar-thumb-bg":"La couleur de la partie d\xE9pla\xE7able de la barre de d\xE9filement.","--scrollbar-bg":"La couleur de la piste de la barre de d\xE9filement (l'arri\xE8re-plan).","--divider-color":"La couleur pour les lignes de s\xE9paration g\xE9n\xE9rales de l'interface, comme les bordures entre les param\xE8tres."}}};var pn,Ie={en:cn,ar:ln,fa:dn,fr:un},nt={},He={};function gn(n){pn=n,nt=Se(Ie[an]),Ce(n.settings)}function Ce(n){let o=n.language,e=n.customLanguages?.[o];if(Ie[o]){console.debug(`Color Master: Loading core language "${o}"`);let t=Se(Ie[o]);e&&e.translations?(console.debug(`Color Master: Applying ${Object.keys(e.translations).length} overrides for "${o}"`),He={...t,...e.translations}):He=t}else e?(console.debug(`Color Master: Loading custom language "${o}"`),He=e.translations):(console.debug(`Color Master: Language "${o}" not found, using default.`),He=nt)}var r=(n,...o)=>{if(!pn)return console.error("ColorMaster: 'T' is not initialized yet."),n;let e=He[n];return e===void 0&&(e=nt[n]),e===void 0?(console.warn(`ColorMaster: Missing translation for key: ${n}`),n):typeof e=="function"?e(...o):e};function Se(n,o="",e={}){for(let t in n)if(Object.prototype.hasOwnProperty.call(n,t)){let s=o?`${o}.${t}`:t,i=n[t];typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof i!="function"?Se(i,s,e):Array.isArray(i)||(e[s]=i)}return e}function hn(){return nt}function mn(n){n.addCommand({id:"toggle",name:r("commands.enableDisable"),callback:async()=>{n.settings.pluginEnabled=!n.settings.pluginEnabled,await n.saveSettings(),new we.Notice(n.settings.pluginEnabled?r("notices.pluginEnabled"):r("notices.pluginDisabled"))}}),n.addCommand({id:"profile-next",name:r("commands.cycleNext"),callback:async()=>{let o=Object.keys(n.settings.profiles||{});if(o.length===0){new we.Notice(r("notices.noProfilesFound"));return}let e=o.indexOf(n.settings.activeProfile),t=o[(e+1)%o.length];n.settings.activeProfile=t,await n.saveSettings(),new we.Notice(r("notices.activeProfileSwitched",t))}}),n.addCommand({id:"profile-prev",name:r("commands.cyclePrevious"),callback:async()=>{let o=Object.keys(n.settings.profiles||{});if(o.length===0){new we.Notice(r("notices.noProfilesFound"));return}let t=(o.indexOf(n.settings.activeProfile)-1+o.length)%o.length,s=o[t];n.settings.activeProfile=s,await n.saveSettings(),new we.Notice(r("notices.activeProfileSwitched",s))}}),n.addCommand({id:"open-settings",name:r("commands.openSettings"),callback:()=>{let o=n.app;o.setting.open(),o.setting.openTabById(n.manifest.id)}}),n.addCommand({id:"toggle-theme",name:r("commands.toggleTheme"),callback:async()=>{let o=n.settings.activeProfile,e=n.settings.profiles[o];if(!e){new we.Notice(r("notices.profileNotFound"));return}let t=e.themeType||"auto",s,i;t==="light"?(s="dark",i=r("notices.themeSwitchedDark")):t==="dark"?(s="auto",i=r("notices.themeSwitchedAuto")):(s="light",i=r("notices.themeSwitchedLight")),e.themeType=s,await n.saveSettings(),new we.Notice(i)}})}var X={"Plugin Integrations":{"--iconize-icon-color":"#00aaff"},Backgrounds:{"--background-primary":"#1e1e1e","--background-primary-alt":"#252525","--background-secondary":"#2a2a2a","--background-secondary-alt":"#303030","--background-modifier-border":"#444444","--background-modifier-border-hover":"#555555","--background-modifier-border-focus":"#007acc","--background-modifier-flair":"#3a3a3a","--background-modifier-hover":"#3a3a3a","--background-modifier-active":"#4a4a4a"},Text:{"--text-normal":"#e0e0e0","--text-muted":"#999999","--text-faint":"#666666","--text-on-accent":"#ffffff","--text-accent":"#00aaff","--text-accent-hover":"#33bbff","--text-selection":"#007acc66","--h1-color":"#e0e0e0","--h2-color":"#d0d0d0","--h3-color":"#c0c0c0","--h4-color":"#b0b0b0","--h5-color":"#a0a0a0","--h6-color":"#909090"},Markdown:{"--hr-color":"#444444","--blockquote-border-color":"#007acc","--blockquote-color":"#d0d0d0","--blockquote-bg":"transparent","--tag-color":"#33bbff","--tag-color-hover":"#33bbff","--tag-bg":"#1e1e1e","--checklist-done-color":"#33bbff","--code-normal":"#e0e0e0","--code-background":"#2d2d2d","--text-highlight-bg":"#2c6887"},Notices:{"--cm-notice-text-default":"#e0e0e0","--cm-notice-bg-default":"#2a2a2a"},"Interactive Elements":{"--interactive-normal":"#5a5a5a","--interactive-hover":"#6a6a6a","--interactive-accent":"#007acc","--interactive-accent-hover":"#3399dd","--interactive-success":"#28a745","--interactive-error":"#dc3545","--interactive-warning":"#ffc107"},"UI Elements":{"--titlebar-background":"#252525","--titlebar-background-focused":"#303030","--titlebar-text-color":"#e0e0e0","--sidebar-background":"#252525","--sidebar-border-color":"#333333","--header-background":"#2a2a2a","--header-border-color":"#333333","--vault-name-color":"#e0e0e0"},"Graph View":{"--graph-line":"#444444","--graph-node":"#999999","--graph-text":"#e0e0e0","--graph-node-unresolved":"#dc3545","--graph-node-focused":"#ffffff","--graph-node-tag":"#86efac","--graph-node-attachment":"#60a5fa"},Misc:{"--scrollbar-thumb-bg":"#444444","--scrollbar-bg":"#2a2a2a","--divider-color":"#444444"}},ot={vars:{},themeType:"auto",snippets:[],convertImagesToJpg:!1,jpgQuality:85},fn={vars:{"--iconize-icon-color":"#00ff00","--background-primary":"#000000","--background-primary-alt":"#0a0a0a","--background-secondary":"#050505","--background-secondary-alt":"#101010","--background-modifier-border":"#223322","--background-modifier-border-hover":"#44ff44","--background-modifier-border-focus":"#00ff00","--background-modifier-flair":"#111111","--background-modifier-hover":"#1a1a1a","--background-modifier-active":"#002a00","--text-normal":"#f0f0f0","--text-muted":"#666666","--text-faint":"#444444","--text-on-accent":"#000000","--text-accent":"#00ff00","--text-accent-hover":"#88ff88","--text-selection":"#00ff004d","--text-highlight-bg":"#00640080","--interactive-normal":"#1c1c1c","--interactive-hover":"#2c2c2c","--interactive-accent":"#008a00","--interactive-accent-hover":"#00ff00","--interactive-success":"#28a745","--interactive-error":"#dc3545","--interactive-warning":"#ffc107","--titlebar-background":"#000000","--titlebar-background-focused":"#000000","--titlebar-text-color":"#f0f0f0","--sidebar-background":"#000000","--sidebar-border-color":"#002a00","--header-background":"#050505","--header-border-color":"#223322","--vault-name-color":"#00ff00","--scrollbar-thumb-bg":"#222222","--scrollbar-bg":"#000000","--divider-color":"#223322","--checklist-done-color":"#00ff00","--graph-line":"#000000","--graph-node":"#00ff00","--graph-text":"#ffffff","--graph-node-unresolved":"#00ff00","--graph-node-focused":"#000000","--graph-node-tag":"#000000","--graph-node-attachment":"#54ee20","--blockquote-color":"#54ee20","--tag-color":"#0bd62d"},themeType:"dark",snippets:[],convertImagesToJpg:!1,jpgQuality:85},bn={vars:{"--iconize-icon-color":"#FF8C00","--background-primary":"#F5F5F5","--background-primary-alt":"#f2eded","--background-secondary":"#f2eded","--background-secondary-alt":"#F0F0F0","--background-modifier-border":"#E0E0E0","--background-modifier-border-hover":"#FF8C00","--background-modifier-border-focus":"#F57C00","--background-modifier-flair":"#FFFFFF","--background-modifier-hover":"#EEEEEE","--background-modifier-active":"#E0E0E0","--text-normal":"#3c3434","--text-muted":"#ff7300","--text-faint":"#ff7b00","--text-on-accent":"#FFFFFF","--text-accent":"#F57C00","--text-accent-hover":"#FF9800","--text-selection":"#f27602","--text-highlight-bg":"#E0E0E0","--interactive-normal":"#F5F5F5","--interactive-hover":"#EEEEEE","--interactive-accent":"#FF8C00","--interactive-accent-hover":"#FFA726","--interactive-success":"#4CAF50","--interactive-error":"#F44336","--interactive-warning":"#FFC107","--titlebar-background":"#FFFFFF","--titlebar-background-focused":"#F7F7F7","--titlebar-text-color":"#e0e0e0","--sidebar-background":"#FFFFFF","--sidebar-border-color":"#E0E0E0","--header-background":"#FDFDFD","--header-border-color":"#E0E0E0","--vault-name-color":"#F57C00","--scrollbar-thumb-bg":"#BDBDBD","--scrollbar-bg":"#F5F5F5","--divider-color":"#E0E0E0","--checklist-done-color":"#757575","--graph-line":"#F57C00","--graph-node":"#999999","--graph-text":"#e0e0e0","--graph-node-unresolved":"#F57C00","--graph-node-focused":"#ffffff","--graph-node-tag":"#F57C00","--graph-node-attachment":"#F57C00"},themeType:"light",snippets:[],convertImagesToJpg:!1,jpgQuality:85},Te={Default:ot.vars,"OLED Matrix":fn.vars,"Citrus Zest":bn.vars},io={Default:ot,"OLED Matrix":fn,"Citrus Zest":bn},$t={advancedResetOptions:{deleteProfiles:!1,deleteSnippets:!1,deleteBackgrounds:!1,deleteSettings:!1},pluginEnabled:!0,language:"auto",useRtlLayout:!0,overrideIconizeColors:!0,cleanupInterval:5,colorUpdateFPS:10,activeProfile:"Default",profiles:JSON.parse(JSON.stringify(io)),globalSnippets:[],pinnedSnapshots:{}},st={"--text-normal":"--background-primary","--text-muted":"--background-primary","--text-faint":"--background-primary","--text-accent":"--background-primary","--text-accent-hover":"--background-primary","--h1-color":"--background-primary","--h2-color":"--background-primary","--h3-color":"--background-primary","--h4-color":"--background-primary","--h5-color":"--background-primary","--h6-color":"--background-primary","--blockquote-color":"--background-primary","--text-on-accent":"--interactive-accent","--vault-name-color":"--sidebar-background","--titlebar-text-color":"--titlebar-background","--graph-text":"--graph-node","--checklist-done-color":"--background-primary","--text-highlight-bg":"--text-normal","--tag-color":"--tag-bg"};var R=require("obsidian");function de(n){let o={};for(let e in n)o={...o,...n[e]};return o}function vn(n){let o=parseInt(n.startsWith("#")?n.substring(1):n,16),e=o>>16&255,t=o>>8&255,s=o>>0&255,i=[e,t,s].map(a=>(a/=255,a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)));return i[0]*.2126+i[1]*.7152+i[2]*.0722}function rt(n,o){let e=vn(n),t=vn(o),s=Math.max(e,t),i=Math.min(e,t);return(s+.05)/(i+.05)}function at(n){let o=n.toFixed(2);return n>=7?{text:"AAA",score:o,cls:"cm-accessibility-pass"}:n>=4.5?{text:"AA",score:o,cls:"cm-accessibility-pass"}:n>=3?{text:"AA Large",score:o,cls:"cm-accessibility-warn"}:{text:"Fail",score:o,cls:"cm-accessibility-fail"}}function ro(n,o){let e=n.plugins;return(Array.isArray(o)?o:[o]).some(s=>e.plugins[s])}function Ue(n){return ro(n,["obsidian-icon-folder","iconize"])}function fe(n,o=200){let e=null;return(...t)=>{e&&clearTimeout(e),e=setTimeout(()=>n.apply(this,t),o)}}async function yn(n,o){if(!await n.exists(o))return o;let e=o.split("/"),t=e.pop();if(!t)return o;let s=e.join("/"),i=t.split("."),a=i.length>1?i.pop():"",l=i.join("."),c=2,d=a?`${s}/${l}-${c}.${a}`:`${s}/${l}-${c}`;for(;await n.exists(d);)c++,d=a?`${s}/${l}-${c}.${a}`:`${s}/${l}-${c}`;return d}async function Cn(n,o,e){let t=e.split(".").pop()?.toLowerCase(),s=t==="jpg"||t==="jpeg",i=["png","webp","bmp"].includes(t||"");return!n||!n.convertImagesToJpg||s||!i?{arrayBuffer:o,fileName:e}:(console.debug(`Color Master: Converting ${e} to JPG...`),new Promise((a,l)=>{let c=new Blob([o]),d=URL.createObjectURL(c),p=new Image;p.onload=()=>{let u=document.createElement("canvas");u.width=p.width,u.height=p.height;let g=u.getContext("2d");if(!g)return URL.revokeObjectURL(d),l(new Error("Failed to get canvas context"));g.fillStyle="#FFFFFF",g.fillRect(0,0,u.width,u.height),g.drawImage(p,0,0),URL.revokeObjectURL(d);let m=(n.jpgQuality||85)/100;u.toBlob(f=>{if(!f){l(new Error("Failed to create JPG blob"));return}f.arrayBuffer().then(h=>{let E=e.substring(0,e.lastIndexOf("."))+".jpg";console.debug(`Color Master: Conversion complete. New size: ${h.byteLength} bytes`),a({arrayBuffer:h,fileName:E})}).catch(h=>{l(h instanceof Error?h:new Error(String(h)))})},"image/jpeg",m)},p.onerror=()=>{URL.revokeObjectURL(d),l(new Error("Failed to load image for conversion"))},p.src=d}))}function lt(n){let o={};for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e)){let t=e.split("."),s=o;for(let i=0;i=0)&&(e[s]=n[s]);return e}function co(n,o){if(n==null)return{};var e=lo(n,o),t,s;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(n,t)&&(e[t]=n[t])}return e}var uo="1.15.6";function be(n){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(n)}var ye=be(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Xe=be(/Edge/i),En=be(/firefox/i),Ge=be(/safari/i)&&!be(/chrome/i)&&!be(/android/i),en=be(/iP(ad|od|hone)/i),In=be(/chrome/i)&&be(/android/i),On={capture:!1,passive:!1};function B(n,o,e){n.addEventListener(o,e,!ye&&On)}function M(n,o,e){n.removeEventListener(o,e,!ye&&On)}function vt(n,o){if(o){if(o[0]===">"&&(o=o.substring(1)),n)try{if(n.matches)return n.matches(o);if(n.msMatchesSelector)return n.msMatchesSelector(o);if(n.webkitMatchesSelector)return n.webkitMatchesSelector(o)}catch{return!1}return!1}}function Mn(n){return n.host&&n!==document&&n.host.nodeType?n.host:n.parentNode}function pe(n,o,e,t){if(n){e=e||document;do{if(o!=null&&(o[0]===">"?n.parentNode===e&&vt(n,o):vt(n,o))||t&&n===e)return n;if(n===e)break}while(n=Mn(n))}return null}var xn=/\s+/g;function oe(n,o,e){if(n&&o)if(n.classList)n.classList[e?"add":"remove"](o);else{var t=(" "+n.className+" ").replace(xn," ").replace(" "+o+" "," ");n.className=(t+(e?" "+o:"")).replace(xn," ")}}function D(n,o,e){var t=n&&n.style;if(t){if(e===void 0)return document.defaultView&&document.defaultView.getComputedStyle?e=document.defaultView.getComputedStyle(n,""):n.currentStyle&&(e=n.currentStyle),o===void 0?e:e[o];!(o in t)&&o.indexOf("webkit")===-1&&(o="-webkit-"+o),t[o]=e+(typeof e=="string"?"":"px")}}function Ae(n,o){var e="";if(typeof n=="string")e=n;else do{var t=D(n,"transform");t&&t!=="none"&&(e=t+" "+e)}while(!o&&(n=n.parentNode));var s=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return s&&new s(e)}function Bn(n,o,e){if(n){var t=n.getElementsByTagName(o),s=0,i=t.length;if(e)for(;s=i:a=s<=i,!a)return t;if(t===ge())break;t=ke(t,!1)}return!1}function Re(n,o,e,t){for(var s=0,i=0,a=n.children;i2&&arguments[2]!==void 0?arguments[2]:{},s=t.evt,i=co(t,yo);Ze.pluginEvent.bind(L)(o,e,he({dragEl:C,parentEl:J,ghostEl:N,rootEl:z,nextEl:Pe,lastDownEl:ht,cloneEl:j,cloneHidden:xe,dragStarted:je,putSortable:Q,activeSortable:L.active,originalEvent:s,oldIndex:Fe,oldDraggableIndex:Ke,newIndex:se,newDraggableIndex:Ee,hideGhostForTarget:Hn,unhideGhostForTarget:Un,cloneNowHidden:function(){xe=!0},cloneNowShown:function(){xe=!1},dispatchSortableEvent:function(l){ee({sortable:e,name:l,originalEvent:s})}},i))};function ee(n){vo(he({putSortable:Q,cloneEl:j,targetEl:C,rootEl:z,oldIndex:Fe,oldDraggableIndex:Ke,newIndex:se,newDraggableIndex:Ee},n))}var C,J,N,z,Pe,ht,j,xe,Fe,se,Ke,Ee,ct,Q,Be=!1,yt=!1,Ct=[],De,ue,Ut,jt,Dn,Ln,je,Me,Qe,Ye=!1,dt=!1,mt,Z,Jt=[],Qt=!1,St=[],Et=typeof document<"u",ut=en,Pn=Xe||ye?"cssFloat":"float",Co=Et&&!In&&!en&&"draggable"in document.createElement("div"),_n=(function(){if(Et){if(ye)return!1;var n=document.createElement("x");return n.style.cssText="pointer-events:auto",n.style.pointerEvents==="auto"}})(),$n=function(o,e){var t=D(o),s=parseInt(t.width)-parseInt(t.paddingLeft)-parseInt(t.paddingRight)-parseInt(t.borderLeftWidth)-parseInt(t.borderRightWidth),i=Re(o,0,e),a=Re(o,1,e),l=i&&D(i),c=a&&D(a),d=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+G(i).width,p=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+G(a).width;if(t.display==="flex")return t.flexDirection==="column"||t.flexDirection==="column-reverse"?"vertical":"horizontal";if(t.display==="grid")return t.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&l.float&&l.float!=="none"){var u=l.float==="left"?"left":"right";return a&&(c.clear==="both"||c.clear===u)?"vertical":"horizontal"}return i&&(l.display==="block"||l.display==="flex"||l.display==="table"||l.display==="grid"||d>=s&&t[Pn]==="none"||a&&t[Pn]==="none"&&d+p>s)?"vertical":"horizontal"},So=function(o,e,t){var s=t?o.left:o.top,i=t?o.right:o.bottom,a=t?o.width:o.height,l=t?e.left:e.top,c=t?e.right:e.bottom,d=t?e.width:e.height;return s===l||i===c||s+a/2===l+d/2},wo=function(o,e){var t;return Ct.some(function(s){var i=s[ne].options.emptyInsertThreshold;if(!(!i||tn(s))){var a=G(s),l=o>=a.left-i&&o<=a.right+i,c=e>=a.top-i&&e<=a.bottom+i;if(l&&c)return t=s}}),t},zn=function(o){function e(i,a){return function(l,c,d,p){var u=l.options.group.name&&c.options.group.name&&l.options.group.name===c.options.group.name;if(i==null&&(a||u))return!0;if(i==null||i===!1)return!1;if(a&&i==="clone")return i;if(typeof i=="function")return e(i(l,c,d,p),a)(l,c,d,p);var g=(a?l:c).options.group.name;return i===!0||typeof i=="string"&&i===g||i.join&&i.indexOf(g)>-1}}var t={},s=o.group;(!s||gt(s)!="object")&&(s={name:s}),t.name=s.name,t.checkPull=e(s.pull,!0),t.checkPut=e(s.put),t.revertClone=s.revertClone,o.group=t},Hn=function(){!_n&&N&&D(N,"display","none")},Un=function(){!_n&&N&&D(N,"display","")};Et&&!In&&document.addEventListener("click",function(n){if(yt)return n.preventDefault(),n.stopPropagation&&n.stopPropagation(),n.stopImmediatePropagation&&n.stopImmediatePropagation(),yt=!1,!1},!0);var Le=function(o){if(C){o=o.touches?o.touches[0]:o;var e=wo(o.clientX,o.clientY);if(e){var t={};for(var s in o)o.hasOwnProperty(s)&&(t[s]=o[s]);t.target=t.rootEl=e,t.preventDefault=void 0,t.stopPropagation=void 0,e[ne]._onDragOver(t)}}},Eo=function(o){C&&C.parentNode[ne]._isOutsideThisEl(o.target)};function L(n,o){if(!(n&&n.nodeType&&n.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(n));this.el=n,this.options=o=ve({},o),n[ne]=this;var e={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(n.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return $n(n,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(a,l){a.setData("Text",l.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:L.supportPointer!==!1&&"PointerEvent"in window&&(!Ge||en),emptyInsertThreshold:5};Ze.initializePlugins(this,n,e);for(var t in e)!(t in o)&&(o[t]=e[t]);zn(o);for(var s in this)s.charAt(0)==="_"&&typeof this[s]=="function"&&(this[s]=this[s].bind(this));this.nativeDraggable=o.forceFallback?!1:Co,this.nativeDraggable&&(this.options.touchStartThreshold=1),o.supportPointer?B(n,"pointerdown",this._onTapStart):(B(n,"mousedown",this._onTapStart),B(n,"touchstart",this._onTapStart)),this.nativeDraggable&&(B(n,"dragover",this),B(n,"dragenter",this)),Ct.push(this.el),o.store&&o.store.get&&this.sort(o.store.get(this)||[]),ve(this,mo())}L.prototype={constructor:L,_isOutsideThisEl:function(o){!this.el.contains(o)&&o!==this.el&&(Me=null)},_getDirection:function(o,e){return typeof this.options.direction=="function"?this.options.direction.call(this,o,e,C):this.options.direction},_onTapStart:function(o){if(o.cancelable){var e=this,t=this.el,s=this.options,i=s.preventOnFilter,a=o.type,l=o.touches&&o.touches[0]||o.pointerType&&o.pointerType==="touch"&&o,c=(l||o).target,d=o.target.shadowRoot&&(o.path&&o.path[0]||o.composedPath&&o.composedPath()[0])||c,p=s.filter;if(Io(t),!C&&!(/mousedown|pointerdown/.test(a)&&o.button!==0||s.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&Ge&&c&&c.tagName.toUpperCase()==="SELECT")&&(c=pe(c,s.draggable,t,!1),!(c&&c.animated)&&ht!==c)){if(Fe=le(c),Ke=le(c,s.draggable),typeof p=="function"){if(p.call(this,o,c,this)){ee({sortable:e,rootEl:d,name:"filter",targetEl:c,toEl:t,fromEl:t}),te("filter",e,{evt:o}),i&&o.preventDefault();return}}else if(p&&(p=p.split(",").some(function(u){if(u=pe(d,u.trim(),t,!1),u)return ee({sortable:e,rootEl:u,name:"filter",targetEl:c,fromEl:t,toEl:t}),te("filter",e,{evt:o}),!0}),p)){i&&o.preventDefault();return}s.handle&&!pe(d,s.handle,t,!1)||this._prepareDragStart(o,l,c)}}},_prepareDragStart:function(o,e,t){var s=this,i=s.el,a=s.options,l=i.ownerDocument,c;if(t&&!C&&t.parentNode===i){var d=G(t);if(z=i,C=t,J=C.parentNode,Pe=C.nextSibling,ht=t,ct=a.group,L.dragged=C,De={target:C,clientX:(e||o).clientX,clientY:(e||o).clientY},Dn=De.clientX-d.left,Ln=De.clientY-d.top,this._lastX=(e||o).clientX,this._lastY=(e||o).clientY,C.style["will-change"]="all",c=function(){if(te("delayEnded",s,{evt:o}),L.eventCanceled){s._onDrop();return}s._disableDelayedDragEvents(),!En&&s.nativeDraggable&&(C.draggable=!0),s._triggerDragStart(o,e),ee({sortable:s,name:"choose",originalEvent:o}),oe(C,a.chosenClass,!0)},a.ignore.split(",").forEach(function(p){Bn(C,p.trim(),qt)}),B(l,"dragover",Le),B(l,"mousemove",Le),B(l,"touchmove",Le),a.supportPointer?(B(l,"pointerup",s._onDrop),!this.nativeDraggable&&B(l,"pointercancel",s._onDrop)):(B(l,"mouseup",s._onDrop),B(l,"touchend",s._onDrop),B(l,"touchcancel",s._onDrop)),En&&this.nativeDraggable&&(this.options.touchStartThreshold=4,C.draggable=!0),te("delayStart",this,{evt:o}),a.delay&&(!a.delayOnTouchOnly||e)&&(!this.nativeDraggable||!(Xe||ye))){if(L.eventCanceled){this._onDrop();return}a.supportPointer?(B(l,"pointerup",s._disableDelayedDrag),B(l,"pointercancel",s._disableDelayedDrag)):(B(l,"mouseup",s._disableDelayedDrag),B(l,"touchend",s._disableDelayedDrag),B(l,"touchcancel",s._disableDelayedDrag)),B(l,"mousemove",s._delayedDragTouchMoveHandler),B(l,"touchmove",s._delayedDragTouchMoveHandler),a.supportPointer&&B(l,"pointermove",s._delayedDragTouchMoveHandler),s._dragStartTimer=setTimeout(c,a.delay)}else c()}},_delayedDragTouchMoveHandler:function(o){var e=o.touches?o.touches[0]:o;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){C&&qt(C),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var o=this.el.ownerDocument;M(o,"mouseup",this._disableDelayedDrag),M(o,"touchend",this._disableDelayedDrag),M(o,"touchcancel",this._disableDelayedDrag),M(o,"pointerup",this._disableDelayedDrag),M(o,"pointercancel",this._disableDelayedDrag),M(o,"mousemove",this._delayedDragTouchMoveHandler),M(o,"touchmove",this._delayedDragTouchMoveHandler),M(o,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(o,e){e=e||o.pointerType=="touch"&&o,!this.nativeDraggable||e?this.options.supportPointer?B(document,"pointermove",this._onTouchMove):e?B(document,"touchmove",this._onTouchMove):B(document,"mousemove",this._onTouchMove):(B(C,"dragend",this),B(z,"dragstart",this._onDragStart));try{document.selection?ft(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(o,e){if(Be=!1,z&&C){te("dragStarted",this,{evt:e}),this.nativeDraggable&&B(document,"dragover",Eo);var t=this.options;!o&&oe(C,t.dragClass,!1),oe(C,t.ghostClass,!0),L.active=this,o&&this._appendGhost(),ee({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(ue){this._lastX=ue.clientX,this._lastY=ue.clientY,Hn();for(var o=document.elementFromPoint(ue.clientX,ue.clientY),e=o;o&&o.shadowRoot&&(o=o.shadowRoot.elementFromPoint(ue.clientX,ue.clientY),o!==e);)e=o;if(C.parentNode[ne]._isOutsideThisEl(o),e)do{if(e[ne]){var t=void 0;if(t=e[ne]._onDragOver({clientX:ue.clientX,clientY:ue.clientY,target:o,rootEl:e}),t&&!this.options.dragoverBubble)break}o=e}while(e=Mn(e));Un()}},_onTouchMove:function(o){if(De){var e=this.options,t=e.fallbackTolerance,s=e.fallbackOffset,i=o.touches?o.touches[0]:o,a=N&&Ae(N,!0),l=N&&a&&a.a,c=N&&a&&a.d,d=ut&&Z&&Tn(Z),p=(i.clientX-De.clientX+s.x)/(l||1)+(d?d[0]-Jt[0]:0)/(l||1),u=(i.clientY-De.clientY+s.y)/(c||1)+(d?d[1]-Jt[1]:0)/(c||1);if(!L.active&&!Be){if(t&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(ee({rootEl:J,name:"add",toEl:J,fromEl:z,originalEvent:o}),ee({sortable:this,name:"remove",toEl:J,originalEvent:o}),ee({rootEl:J,name:"sort",toEl:J,fromEl:z,originalEvent:o}),ee({sortable:this,name:"sort",toEl:J,originalEvent:o})),Q&&Q.save()):se!==Fe&&se>=0&&(ee({sortable:this,name:"update",toEl:J,originalEvent:o}),ee({sortable:this,name:"sort",toEl:J,originalEvent:o})),L.active&&((se==null||se===-1)&&(se=Fe,Ee=Ke),ee({sortable:this,name:"end",toEl:J,originalEvent:o}),this.save()))),this._nulling()},_nulling:function(){te("nulling",this),z=C=J=N=Pe=j=ht=xe=De=ue=je=se=Ee=Fe=Ke=Me=Qe=Q=ct=L.dragged=L.ghost=L.clone=L.active=null,St.forEach(function(o){o.checked=!0}),St.length=Ut=jt=0},handleEvent:function(o){switch(o.type){case"drop":case"dragend":this._onDrop(o);break;case"dragenter":case"dragover":C&&(this._onDragOver(o),xo(o));break;case"selectstart":o.preventDefault();break}},toArray:function(){for(var o=[],e,t=this.el.children,s=0,i=t.length,a=this.options;ss.right+i||n.clientY>t.bottom&&n.clientX>t.left:n.clientY>s.bottom+i||n.clientX>t.right&&n.clientY>t.top}function Lo(n,o,e,t,s,i,a,l){var c=t?n.clientY:n.clientX,d=t?e.height:e.width,p=t?e.top:e.left,u=t?e.bottom:e.right,g=!1;if(!a){if(l&&mtp+d*i/2:cu-mt)return-Qe}else if(c>p+d*(1-s)/2&&cu-d*i/2)?c>p+d/2?1:-1:0}function Po(n){return le(C){console.error("Failed to render markdown:",i)});let s=o.createDiv({cls:"modal-button-container"});new b.ButtonComponent(s).setButtonText(r("buttons.apply")).setCta().onClick(()=>{this.close()})}onClose(){this.contentEl.empty()}},kt=class extends W{constructor(e,t,s){super(e,t);this.profileName="";this.settingTab=s}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),e.createEl("h3",{text:r("modals.jsonImport.title")}),new b.Setting(e).setName(r("modals.newProfile.nameLabel")).addText(l=>{this.nameInput=l,l.setPlaceholder(r("modals.newProfile.namePlaceholder")).onChange(c=>{this.profileName=c.trim()})}),e.createEl("hr"),e.createEl("p",{text:r("modals.jsonImport.desc1")}),this.textarea=e.createEl("textarea",{cls:"cm-search-input cm-import-textarea",attr:{rows:"20",placeholder:r("modals.jsonImport.placeholder")}});let t=fe(()=>{let l=this.textarea.value;if(l.trim())try{let c=JSON.parse(l);c&&typeof c.name=="string"&&c.name&&(this.nameInput.setValue(c.name),this.profileName=c.name)}catch{}},0);this.textarea.addEventListener("input",t),new b.Setting(e).setName(r("modals.jsonImport.settingName")).setDesc(r("modals.jsonImport.settingDesc")).addButton(l=>{l.setButtonText(r("buttons.chooseFile")).onClick(()=>{this._handleFileImport()})});let s=e.createDiv({cls:"modal-button-container"}),i=s.createEl("button",{text:r("modals.jsonImport.replaceActiveButton")}),a=s.createEl("button",{text:r("modals.jsonImport.createNewButton"),cls:"mod-cta"});i.addEventListener("click",()=>void this._applyImport("replace")),a.addEventListener("click",()=>void this._applyCreate())}_handleFileImport(){let e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],s=await t.text();this.textarea.value=s;try{let a=JSON.parse(s).name||t.name.replace(".profile.json","").replace(".json","");this.nameInput.setValue(a),this.profileName=a}catch{}new b.Notice(r("notices.fileLoaded",t.name))})().catch(t=>{console.error("Failed to load profile JSON:",t)})},e.click()}onClose(){this.contentEl.empty()}async _applyCreate(){let e=this.profileName;if(!e){new b.Notice(r("notices.varNameEmpty"));return}if(this.plugin.settings.profiles[e]){new b.Notice(r("notices.profileNameExists",e));return}let t=this.textarea.value.trim();if(!t){new b.Notice(r("notices.textboxEmpty"));return}let s;try{s=JSON.parse(t)}catch{new b.Notice(r("notices.invalidJson"));return}let i=s.profile?s.profile:s;i.noticeRules=i.noticeRules||{text:[],background:[]},this.plugin.settings.profiles[e]=i,this.plugin.settings.activeProfile=e,await this.plugin.saveSettings(),this.settingTab.display(),this.close(),new b.Notice(r("notices.profileCreatedSuccess",e))}async _applyImport(e){let t=this.textarea.value.trim();if(!t){new b.Notice(r("notices.textboxEmpty"));return}let s;try{s=JSON.parse(t)}catch{new b.Notice(r("notices.invalidJson"));return}let i=s.profile?s.profile:s;if(typeof i!="object"||i===null){new b.Notice(r("notices.invalidProfileObject"));return}let a=this.plugin.settings.activeProfile,l=this.plugin.settings.profiles[a];if(!l){new b.Notice(r("notices.profileNotFound"));return}let c="vars"in i?i.vars:{},d="snippets"in i?i.snippets:[],p="themeType"in i?i.themeType:"auto";e==="replace"&&(l.vars=c,l.snippets=d,l.themeType=p),await this.plugin.saveSettings(),l.vars&&Object.keys(l.vars).forEach(u=>{this.plugin.pendingVarUpdates[u]=l.vars[u]}),this.plugin.applyPendingNow(),this.settingTab.display(),this.close(),new b.Notice(r("notices.profileImportedSuccess"))}},Tt=class extends W{constructor(o,e,t){super(o,e),this.onSubmit=t}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("modals.newProfile.title")});let e="",t="auto";new b.Setting(o).setName(r("modals.newProfile.nameLabel")).addText(c=>{c.setPlaceholder(r("modals.newProfile.namePlaceholder")).onChange(d=>{e=d})}),new b.Setting(o).setName(r("profileManager.themeType")).setDesc(r("profileManager.themeTypeDesc")).addDropdown(c=>{c.addOption("auto",r("profileManager.themeAuto")),c.addOption("dark",r("profileManager.themeDark")),c.addOption("light",r("profileManager.themeLight")),c.setValue(t),c.onChange(d=>{t=d})});let s=o.createDiv({cls:"modal-button-container"});s.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close());let a=s.createEl("button",{text:r("buttons.create"),cls:"mod-cta"}),l=()=>{let c=e.trim();c?(this.onSubmit({name:c,themeType:t}),this.close(),new b.Notice(r("notices.profileCreated",c))):new b.Notice(r("notices.varNameEmpty"))};a.addEventListener("click",l),o.querySelector('input[type="text"]')?.addEventListener("keydown",c=>{c.key==="Enter"&&(c.preventDefault(),l())})}onClose(){this.contentEl.empty()}},ie=class extends W{constructor(o,e,t,s,i,a={}){super(o,e),this.title=t,this.message=s,this.onConfirm=i,this.confirmButtonText=a.buttonText||r("buttons.delete"),this.confirmButtonClass=a.buttonClass||"mod-warning"}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:this.title}),o.createEl("p").append(this.message);let e=o.createDiv({cls:"modal-button-container"});e.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),e.createEl("button",{text:this.confirmButtonText,cls:this.confirmButtonClass}).addEventListener("click",()=>{this.onConfirm(),this.close()})}onClose(){this.contentEl.empty()}},_e=class extends W{constructor(e,t,s,i=null){super(e,t);this.isSaving=!1;this.settingTab=s,this.existingProfileData=i,this.isEditing=!!i,this.profileName=i?i.name:""}_handleFileImport(){let e=document.createElement("input");e.type="file",e.accept=".css",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],s=await t.text();this.cssTextarea.value=s,new b.Notice(r("notices.fileLoaded",t.name))})().catch(t=>{console.error("Failed to load CSS file:",t)})},e.click()}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty();let t=e.createDiv({cls:"cm-title-container"}),s=this.isEditing?r("modals.cssImport.titleEdit"):r("modals.cssImport.title");this.modalTitleEl=t.createEl("h3",{text:s});let i=this.app.customCss.themes||{},a=Object.keys(i),l=a.length>0?a[0]:"",c=new b.Setting(e).setName(r("modals.cssImport.importFromTheme")).setDesc(r("modals.cssImport.importFromThemeDesc"));c.settingEl.addClass("cm-theme-importer-setting"),c.addDropdown(f=>{a.length>0?(a.forEach(h=>{f.addOption(h,h)}),f.onChange(h=>{l=h})):(f.addOption("",r("modals.cssImport.noThemes")),f.setDisabled(!0))}),c.addButton(f=>{f.setButtonText(r("buttons.import")).setCta().setDisabled(a.length===0).onClick(async()=>{if(!l)return;let h=`${this.app.vault.configDir}/themes/${l}/theme.css`;try{let E=await this.app.vault.adapter.read(h);this.cssTextarea.value=E,this.nameInput.setValue(l),this.profileName=l,new b.Notice(r("notices.themeCssLoaded",l))}catch(E){new b.Notice(r("notices.themeReadFailed",l)),console.error(`Color Master: Failed to read theme CSS at ${h}`,E)}})});let d=r("modals.newProfile.nameLabel");this.nameSetting=new b.Setting(e).setName(d).addText(f=>{this.nameInput=f;let h=r("modals.newProfile.namePlaceholder");f.setValue(this.isEditing&&this.existingProfileData?this.existingProfileData.name:"").setPlaceholder(h).onChange(E=>{this.profileName=E.trim()})}),this.cssTextarea=e.createEl("textarea",{cls:"cm-search-input cm-large-textarea",attr:{rows:"18",placeholder:r("modals.snippetEditor.cssPlaceholder")}}),e.createDiv({text:r("modals.cssImport.note"),cls:"cm-modal-warning-note"}),new b.Setting(e).setName(r("modals.cssImport.importFromFile")).setDesc(r("modals.cssImport.importFromFileDesc")).addButton(f=>{f.setButtonText(r("buttons.chooseFile")).onClick(()=>{this._handleFileImport()})});let p=this.isEditing&&this.existingProfileData?`profile-${this.existingProfileData.name}`:null,u=this.isEditing&&this.existingProfileData?this.existingProfileData.css:"";if(p){let f=this.plugin.cssHistory[p]?.undoStack.last();this.cssTextarea.value=f??u,(!this.plugin.cssHistory[p]||this.plugin.cssHistory[p].undoStack.length===0)&&this.plugin.pushCssHistory(p,u)}else this.cssTextarea.value=u;let g=fe((f,h)=>{this.plugin.pushCssHistory(f,h)},500);this.cssTextarea.addEventListener("input",()=>{p&&g(p,this.cssTextarea.value)}),this.cssTextarea.addEventListener("keydown",f=>{if(p&&f.ctrlKey){if(f.key.toLowerCase()==="z"){f.preventDefault();let h=this.plugin.undoCssHistory(p);h!==null&&(this.cssTextarea.value=h)}else if(f.key.toLowerCase()==="y"){f.preventDefault();let h=this.plugin.redoCssHistory(p);h!==null&&(this.cssTextarea.value=h)}}});let m=e.createDiv({cls:"modal-button-container"});m.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),m.createEl("button",{text:this.isEditing?r("buttons.update"):r("buttons.create"),cls:"mod-cta"}).addEventListener("click",()=>{this.handleSave().catch(f=>{console.error("Failed to save CSS snippet:",f)})}),setTimeout(()=>this.nameInput.inputEl.focus(),0)}async handleSave(){if(this.isEditing&&!this.existingProfileData){console.error("Attempted to save in editing mode without an existing snippet.");return}let e=this.cssTextarea.value.trim(),t=(this.profileName||"").trim();if(!t){new b.Notice(r("notices.varNameEmpty"));return}if(!this.plugin.settings.profiles[this.plugin.settings.activeProfile])return;if(Object.keys(this.plugin.settings.profiles||{}).some(g=>g.toLowerCase()===t.toLowerCase()&&(!this.isEditing||this.existingProfileData&&this.existingProfileData.name.toLowerCase()!==t.toLowerCase()))){new b.Notice(r("notices.profileNameExists",t));return}let a=this.contentEl.querySelector(".mod-cta");a&&(a.textContent=r("modals.addBackground.processing")+"...",a.disabled=!0);let l=this.app.customCss,c=l?.theme,d="__cm_temp_clean_slate__";this.plugin.settings.profiles[d]=JSON.parse(JSON.stringify(ot)),this.plugin.settings.activeProfile=d,await this.plugin.applyStyles(),c&&l.setTheme(""),document.body.offsetHeight,await new Promise(g=>setTimeout(g,0));let p=document.createElement("style");p.id="cm-temp-import-style",p.textContent=e,document.head.appendChild(p),await new Promise(g=>requestAnimationFrame(g)),await new Promise(g=>setTimeout(g,0));let u=await this.plugin.captureCurrentComputedVars();if(p.remove(),c&&l.setTheme(c),delete this.plugin.settings.profiles[d],this.isEditing&&this.existingProfileData){let g=this.existingProfileData.name,m=this.plugin.settings.profiles[g]||{};g!==t&&(this.plugin.settings.pinnedSnapshots[g]&&(this.plugin.settings.pinnedSnapshots[t]=this.plugin.settings.pinnedSnapshots[g],delete this.plugin.settings.pinnedSnapshots[g]),delete this.plugin.settings.profiles[g]),this.plugin.settings.profiles[t]={...m,isCssProfile:!0,customCss:e,vars:u},this.plugin.settings.activeProfile=t,new b.Notice(r("notices.profileUpdated",t))}else this.plugin.settings.profiles[t]={vars:u,themeType:"auto",isCssProfile:!0,customCss:e,snippets:[],noticeRules:{text:[],background:[]}},this.plugin.settings.activeProfile=t,new b.Notice(r("notices.profileCreatedFromCss",t));this.isSaving=!0,this.plugin.pendingVarUpdates={},await this.plugin.saveSettings(),this.plugin.applyCssSnippets(),this.settingTab.display(),this.close()}onClose(){if(!this.isSaving){let e=this.isEditing&&this.existingProfileData?`profile-${this.existingProfileData.name}`:null;e&&this.plugin.cssHistory[e]&&delete this.plugin.cssHistory[e]}this.contentEl.empty()}},et=class extends W{constructor(e,t,s,i=null){super(e,t);this.isSaving=!1;this.settingTab=s,this.existingSnippet=i,this.isEditing=!!i,this.snippetName=i?i.name:"",this.isGlobalSnippet=i?!!i.isGlobal:!1}_debounce(e,t){let s;return(...i)=>{clearTimeout(s),s=window.setTimeout(()=>e.apply(this,i),t)}}_handleFileImport(){let e=document.createElement("input");e.type="file",e.accept=".css",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],s=await t.text();this.cssTextarea.inputEl.value=s,new b.Notice(r("notices.fileLoaded",t.name))})().catch(t=>{console.error("Failed to load CSS file:",t)})},e.click()}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty();let t=e.createDiv({cls:"cm-title-container"}),s=this.isEditing?r("modals.snippetEditor.titleEdit"):r("modals.snippetEditor.title");this.modalTitleEl=t.createEl("h3",{text:s});let i=this.app.customCss.snippets||[],a=i.length>0?i[0]:"",l=new b.Setting(e).setName(r("modals.snippetEditor.importFromSnippet")).setDesc(r("modals.snippetEditor.importFromSnippetDesc"));l.settingEl.addClass("cm-theme-importer-setting"),l.addDropdown(m=>{i.length>0?(i.forEach(f=>{m.addOption(f,f)}),m.onChange(f=>{a=f})):(m.addOption("",r("modals.snippetEditor.noSnippets")),m.setDisabled(!0))}),l.addButton(m=>{m.setButtonText(r("buttons.import")).setCta().setDisabled(i.length===0).onClick(async()=>{if(!a)return;let f=`${this.app.vault.configDir}/snippets/${a}.css`;try{let h=await this.app.vault.adapter.read(f);this.cssTextarea.setValue(h),this.nameInput.setValue(a),this.snippetName=a,new b.Notice(r("notices.snippetLoaded",a))}catch(h){new b.Notice(r("notices.snippetReadFailed",a)),console.error(`Color Master: Failed to read snippet CSS at ${f}`,h)}})});let c=r("modals.snippetEditor.nameLabel");this.nameSetting=new b.Setting(e).setName(c).addText(m=>{this.nameInput=m;let f=r("modals.snippetEditor.namePlaceholder");m.setValue(this.isEditing&&this.existingSnippet?this.existingSnippet.name:"").setPlaceholder(f).onChange(h=>{this.snippetName=h.trim()})}),new b.Setting(e).setName(r("snippets.globalName")).setDesc(r("snippets.globalDesc")).addToggle(m=>{m.setValue(this.isGlobalSnippet).onChange(f=>{this.isGlobalSnippet=f})}),this.cssTextarea=new b.TextAreaComponent(e),e.createDiv({text:r("modals.cssImport.note"),cls:"cm-modal-warning-note"}),new b.Setting(e).setName(r("modals.cssImport.importFromFile")).setDesc(r("modals.cssImport.importFromFileDesc")).addButton(m=>{m.setButtonText(r("buttons.chooseFile")).onClick(()=>{this._handleFileImport()})}),this.cssTextarea.inputEl.classList.add("cm-search-input","cm-large-textarea"),this.cssTextarea.inputEl.rows=18,this.cssTextarea.setPlaceholder(r("modals.snippetEditor.cssPlaceholder"));let d=this.isEditing&&this.existingSnippet?this.existingSnippet.id:null,p=this.isEditing&&this.existingSnippet?this.existingSnippet.css:"";if(d){let m=this.plugin.cssHistory[d]?.undoStack.last();this.cssTextarea.setValue(m??p),(!this.plugin.cssHistory[d]||this.plugin.cssHistory[d].undoStack.length===0)&&this.plugin.pushCssHistory(d,p)}else this.cssTextarea.setValue(p);let u=fe((m,f)=>{this.plugin.pushCssHistory(m,f)},500);this.cssTextarea.onChange(m=>{d&&u(d,m)}),this.cssTextarea.inputEl.addEventListener("keydown",m=>{if(d&&m.ctrlKey){if(m.key.toLowerCase()==="z"){m.preventDefault();let f=this.plugin.undoCssHistory(d);f!==null&&this.cssTextarea.setValue(f)}else if(m.key.toLowerCase()==="y"){m.preventDefault();let f=this.plugin.redoCssHistory(d);f!==null&&this.cssTextarea.setValue(f)}}});let g=e.createDiv({cls:"modal-button-container"});g.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),g.createEl("button",{text:this.isEditing?r("buttons.update"):r("buttons.create"),cls:"mod-cta"}).addEventListener("click",()=>this.handleSave()),setTimeout(()=>this.nameInput.inputEl.focus(),0)}handleSave(){let e=this.cssTextarea.getValue().trim(),t=(this.snippetName||"").trim();if(!t){new b.Notice(r("notices.varNameEmpty"));return}if(!e){new b.Notice(r("notices.cssContentEmpty"));return}let s=this.plugin.settings.profiles[this.plugin.settings.activeProfile];if(!s)return;Array.isArray(this.plugin.settings.globalSnippets)||(this.plugin.settings.globalSnippets=[]);let i=this.isGlobalSnippet?this.plugin.settings.globalSnippets:s.snippets;if(i.some(l=>l.name.toLowerCase()===t.toLowerCase()&&(!this.isEditing||this.existingSnippet&&this.existingSnippet.id!==l.id))){new b.Notice(r("notices.snippetNameExists",t));return}if(this.isEditing&&this.existingSnippet){let l=!!this.existingSnippet.isGlobal,c=l?this.plugin.settings.globalSnippets:s.snippets,d=this.isGlobalSnippet?this.plugin.settings.globalSnippets:s.snippets,p=c.findIndex(u=>u.id===this.existingSnippet.id);if(p>-1){if(l===this.isGlobalSnippet)c[p].name=t,c[p].css=e;else{let[u]=c.splice(p,1);u.name=t,u.css=e,u.isGlobal=this.isGlobalSnippet,d.push(u)}new b.Notice(r("notices.snippetUpdated",t))}}else i.push({id:`snippet-${Date.now()}`,name:t,css:e,enabled:!0,isGlobal:this.isGlobalSnippet}),new b.Notice(r("notices.snippetCreated",t));this.isSaving=!0,this.plugin.saveSettings().then(()=>{this.plugin.applyCssSnippets(),this.settingTab.display(),this.close()}).catch(l=>{console.error("Failed to save settings:",l)})}onClose(){if(!this.isSaving){let e=this.isEditing&&this.existingSnippet?this.existingSnippet.id:null;e&&this.plugin.cssHistory[e]&&delete this.plugin.cssHistory[e]}this.contentEl.empty()}},Dt=class extends W{constructor(e,t,s,i){super(e,t);this.newlyAddedRuleId=null;this.sortable=null;this.settingTab=s,this.ruleType=i;let a=this.plugin.settings.profiles[this.plugin.settings.activeProfile];this.localRules=JSON.parse(JSON.stringify(a?.noticeRules?.[this.ruleType]||[])),this.localRules.length===0&&this.localRules.push({id:`rule-${Date.now()}`,keywords:"",color:this.ruleType==="text"?"#ffffff":"#444444",isRegex:!1,highlightOnly:!1})}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),this.modalEl.classList.add("color-master-modal","cm-rules-modal");let t=this.ruleType==="text"?r("modals.noticeRules.titleText"):r("modals.noticeRules.titleBg"),s=e.createDiv({cls:"cm-rules-modal-header"}),i=s.createDiv({cls:"cm-rules-modal-header-icon"});(0,b.setIcon)(i,"bell"),s.createEl("h3",{text:t});let a=e.createDiv({cls:"cm-rules-header"});a.createEl("p",{text:r("modals.noticeRules.desc"),cls:"cm-rules-modal-desc"});let l=a.createDiv();new b.Setting(l).addButton(p=>{p.setButtonText(r("modals.noticeRules.addNewRule")).setCta().onClick(()=>{let u={id:`rule-${Date.now()}`,keywords:"",color:this.ruleType==="text"?"#ffffff":"#444444",isRegex:!1,highlightOnly:!1};this.localRules.push(u),this.newlyAddedRuleId=u.id,this.displayRules()})}).settingEl.classList.add("cm-rules-add-button-setting"),this.rulesContainer=e.createDiv("cm-rules-container"),this.displayRules();let d=e.createDiv({cls:"modal-button-container"});d.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),d.createEl("button",{text:r("buttons.apply"),cls:"mod-cta"}).addEventListener("click",()=>{(async()=>{this.rulesContainer.querySelectorAll(".cm-tag-input-field").forEach((g,m)=>{let f=g.value.trim().replace(/,/g,"");if(f){let h=this.localRules[m];if(h){let E=typeof h.keywords=="string"&&h.keywords?h.keywords.split(",").map(S=>S.trim()).filter(Boolean):[];E.includes(f)||(h.keywords=[...E,f].join(","))}}});let u=this.plugin.settings.profiles[this.plugin.settings.activeProfile];u.noticeRules||(u.noticeRules={text:[],background:[]}),u.noticeRules[this.ruleType]=this.localRules,await this.plugin.saveSettings(),this.plugin.liveNoticeRules=null,this.plugin.liveNoticeRuleType=null,new b.Notice(r("notices.settingsSaved")),this.close()})().catch(p=>{console.error("Failed to save notice rules:",p)})})}displayRules(){let e=this.rulesContainer;e.empty(),this.localRules.forEach((t,s)=>{let i=e.createDiv({cls:"cm-rule-item"});i.dataset.ruleId=t.id,this.newlyAddedRuleId&&t.id===this.newlyAddedRuleId&&(i.classList.add("newly-added"),this.newlyAddedRuleId=null);let a=i.createDiv({cls:"cm-rule-actions"}),l=a.createDiv({cls:"cm-rule-action-buttons"}),c=new b.ButtonComponent(l).setIcon("grip-vertical").setTooltip(r("tooltips.dragReorder"));c.buttonEl.classList.add("cm-drag-handle"),c.buttonEl.addEventListener("mousedown",m=>{m.stopPropagation()}),a.createDiv({cls:"cm-rule-order-number",text:`${s+1}`});let d=i.createDiv({cls:"cm-rule-input-wrapper"});this._createTagInput(d,t);let p=i.createDiv({cls:"cm-color-container"}),u=p.createEl("input",{type:"color"});u.value=t.color,t.color&&t.color.toLowerCase()==="transparent"&&u.classList.add("is-transparent"),u.addEventListener("input",m=>{t.color=m.target.value,this.plugin.liveNoticeRules=this.localRules,this.plugin.liveNoticeRuleType=this.ruleType,u.classList.remove("is-transparent")}),new b.ButtonComponent(p).setIcon("eraser").setClass("cm-rule-icon-button").setTooltip(r("tooltips.setTransparent")).onClick(()=>{t.color="transparent",u.classList.add("is-transparent")});let g=new b.ButtonComponent(i).setIcon("regex").setClass("cm-rule-icon-button").setTooltip(r("modals.noticeRules.useRegex")).onClick(()=>{t.isRegex=!t.isRegex,g.buttonEl.classList.toggle("is-active",t.isRegex)});if(g.buttonEl.classList.toggle("is-active",t.isRegex),this.ruleType==="text"){let m=new b.ButtonComponent(i).setIcon("highlighter").setClass("cm-rule-icon-button").setTooltip(r("modals.noticeRules.highlightOnly")).onClick(()=>{t.highlightOnly=!t.highlightOnly,m.buttonEl.classList.toggle("is-active",t.highlightOnly)});m.buttonEl.classList.toggle("is-active",t.highlightOnly)}new b.ButtonComponent(i).setIcon("bell").setClass("cm-rule-icon-button").setTooltip(r("tooltips.testRule")).onClick(()=>{this._handleTestRule(t)}),new b.ButtonComponent(i).setIcon("trash").setClass("cm-rule-icon-button").setWarning().onClick(()=>{this._handleDeleteRule(s)})}),this._initDrag()}_initDrag(){if(this.rulesContainer){if(this.sortable){try{this.sortable.destroy()}catch(e){console.warn("Could not destroy sortable instance",e)}this.sortable=null}if(!Ve){console.warn("Color Master: SortableJS not found, drag & drop disabled.");return}this.sortable=new Ve(this.rulesContainer,{handle:".cm-drag-handle",animation:160,ghostClass:"cm-rule-ghost",dataIdAttr:"data-rule-id",onEnd:e=>{let{oldIndex:t,newIndex:s}=e;if(t===s||t==null||s==null)return;let[i]=this.localRules.splice(t,1);i&&this.localRules.splice(s,0,i),this.displayRules()}})}}onClose(){this.contentEl.empty(),this.plugin.liveNoticeRules=null,this.plugin.liveNoticeRuleType=null}_createTagInput(e,t){let s=e.createDiv({cls:"cm-tag-input-container"}),i=()=>{s.empty();let a=typeof t.keywords=="string"&&t.keywords?t.keywords.split(",").map(d=>d.trim()).filter(Boolean):[];a.forEach((d,p)=>{let u=s.createDiv({cls:"cm-tag-item"});u.dataset.keyword=d,u.createSpan({cls:"cm-tag-text",text:d}),u.createSpan({cls:"cm-tag-remove",text:"\xD7"}).addEventListener("click",m=>{m.stopPropagation(),a.splice(p,1),t.keywords=a.join(","),i()})});let l=s.createEl("input",{type:"text",cls:"cm-tag-input-field"});l.placeholder=r("modals.noticeRules.keywordPlaceholder");let c=()=>{let d=l.value.trim().replace(/,/g,"");if(!d)return;let p=typeof t.keywords=="string"&&t.keywords?t.keywords.split(",").map(m=>m.trim()).filter(Boolean):[],u=p.map(m=>m.toLowerCase()),g=d.toLowerCase();if(!u.includes(g))t.keywords=[...p,d].join(","),i();else{let m=s.querySelector(`.cm-tag-item[data-keyword="${p[u.indexOf(g)]}"]`);m&&(m.classList.add("cm-tag-duplicate-flash"),setTimeout(()=>{m.classList.remove("cm-tag-duplicate-flash")},700)),l.value=""}};l.addEventListener("keydown",d=>{d.key==="Enter"||d.key===" "?(d.preventDefault(),c()):d.key==="Backspace"&&l.value===""&&a.length>0&&(a.pop(),t.keywords=a.join(","),i())}),l.addEventListener("blur",c),l.focus()};s.addEventListener("click",()=>{s.querySelector(".cm-tag-input-field")?.focus()}),i()}_handleDeleteRule(e){let t=this.rulesContainer.children[e];t&&(t.classList.add("removing"),setTimeout(()=>{if(this.localRules.length===1){this.localRules.splice(e,1);let s={id:`rule-${Date.now()}`,keywords:"",color:this.ruleType==="text"?"#ffffff":"#444444",isRegex:!1,highlightOnly:!1};this.localRules.push(s),this.newlyAddedRuleId=s.id}else this.localRules.splice(e,1);this.displayRules()},100))}_handleTestRule(e){let t=e.keywords||"";if(!t.trim()){new b.Notice(r("notices.noKeywordsToTest"));return}let s=t.split(",").map(d=>d.trim()).filter(Boolean);if(s.length===0){new b.Notice(r("notices.noKeywordsToTest"));return}(e._lastTestIndex===void 0||e._lastTestIndex===null)&&(e._lastTestIndex=-1),e._lastTestIndex++,e._lastTestIndex>=s.length&&(e._lastTestIndex=0);let i=s[e._lastTestIndex],a=new DocumentFragment,l=r("notices.testSentence",i).split(new RegExp(`(${i})`,"i"));a.append(l[0]);let c=a.createSpan({cls:"cm-test-keyword",text:l[1]});a.append(c),a.append(l[2]||""),new b.Notice(a)}},Lt=class extends W{constructor(e,t,s,i){super(e,t);this.varName="";this.varValue="";this.displayName="";this.description="";this.varType="color";this.sizeUnit="px";this.settingTab=s,this.onSubmit=i}renderValueInput(e){e.empty();let t=new b.Setting(e).setName(r("modals.customVar.varValue")).setDesc(r("modals.customVar.varValueDesc"));switch(this.varType){case"color":{this.varValue!==""&&!this.varValue.match(/^(#|rgb|hsl|transparent|var\(--)/i)&&(this.varValue="");let s=t.controlEl.createEl("input",{type:"color"}),i=t.controlEl.createEl("input",{type:"text",cls:"color-master-text-input"});s.value=this.varValue,i.value=this.varValue,s.addEventListener("input",a=>{let l=a.target.value;i.value=l,this.varValue=l}),i.addEventListener("change",a=>{let l=a.target.value;s.value=l,this.varValue=l});break}case"size":{this.varValue.match(/^(-?\d+)(\.\d+)?(px|em|rem|%)$/)||(this.varValue="10px");let s=this.varValue.match(/(-?\d+)(\.\d+)?(\D+)/),i=s?(s[1]||"")+(s[2]||""):"10",a=s?s[3]||"":"px";["px","em","rem","%"].includes(a)||(a="px"),this.sizeUnit=a;let l=t.controlEl.createEl("input",{type:"number",cls:"color-master-text-input"});l.setCssProps({width:"80px"}),l.value=i;let c=new b.DropdownComponent(t.controlEl);c.addOption("px","px"),c.addOption("em","em"),c.addOption("rem","rem"),c.addOption("%","%"),c.setValue(this.sizeUnit);let d=()=>{this.varValue=(l.value||"0")+this.sizeUnit};l.addEventListener("change",d),c.onChange(p=>{this.sizeUnit=p,d()});break}case"text":{this.varType!=="text"&&(this.varValue=""),t.addTextArea(s=>{s.setValue(this.varValue).setPlaceholder(r("modals.customVar.textValuePlaceholder")).onChange(i=>{this.varValue=i}),s.inputEl.setCssProps({width:"100%"}),s.inputEl.classList.add("cm-textarea-size")});break}case"number":{isNaN(parseFloat(this.varValue))&&(this.varValue="0"),t.addText(s=>{s.inputEl.type="number",s.setValue(this.varValue).onChange(i=>{this.varValue=i})});break}}}onOpen(){let{contentEl:e}=this;e.empty(),this.modalEl.classList.add("color-master-modal"),super.onOpen(),e.createEl("h3",{text:r("modals.customVar.title")}),e.createEl("p",{text:r("modals.customVar.desc")}),new b.Setting(e).setName(r("modals.customVar.displayName")).setDesc(r("modals.customVar.displayNameDesc")).addText(t=>t.setPlaceholder(r("modals.customVar.displayNamePlaceholder")).setValue(this.displayName).onChange(s=>{this.displayName=s})),new b.Setting(e).setName(r("modals.customVar.varName")).setDesc(r("modals.customVar.varNameDesc")).addText(t=>t.setPlaceholder(r("modals.customVar.varNamePlaceholder")).setValue(this.varName).onChange(s=>{s.length>0&&!s.startsWith("--")?s.startsWith("-")?this.varName="-"+s:this.varName="--"+s:this.varName=s})),new b.Setting(e).setName(r("modals.customVar.varType")).setDesc(r("modals.customVar.varTypeDesc")).addDropdown(t=>{t.addOption("color",r("modals.customVar.types.color")).addOption("size",r("modals.customVar.types.size")).addOption("text",r("modals.customVar.types.text")).addOption("number",r("modals.customVar.types.number")).setValue(this.varType).onChange(s=>{switch(this.varType=s,s){case"color":this.varValue="";break;case"size":this.varValue="10px";break;case"number":this.varValue="0";break;case"text":this.varValue="";break}this.renderValueInput(this.valueInputContainer)})}),this.valueInputContainer=e.createDiv("cm-value-input-container"),this.renderValueInput(this.valueInputContainer),new b.Setting(e).setName(r("modals.customVar.description")).setDesc(r("modals.customVar.descriptionDesc")).addTextArea(t=>t.setPlaceholder(r("modals.customVar.descriptionPlaceholder")).setValue(this.description).onChange(s=>{this.description=s})),new b.Setting(e).setClass("modal-button-container").addButton(t=>t.setButtonText(r("buttons.cancel")).onClick(()=>this.close())).addButton(t=>t.setButtonText(r("modals.customVar.addVarButton")).setCta().onClick(()=>{let s=this.varName.trim();if(!s.startsWith("--")){new b.Notice(r("notices.varNameFormat"));return}if(!this.displayName.trim()){new b.Notice(r("notices.varNameEmpty"));return}let i=Object.keys(de(X)),a=this.plugin.settings.profiles[this.plugin.settings.activeProfile],l=Object.keys(a.vars||{});if(new Set([...i,...l]).has(s)){new b.Notice(r("notices.varExists",s));return}this.onSubmit({displayName:this.displayName.trim(),varName:s,varValue:this.varValue.trim(),description:this.description.trim(),varType:this.varType}),this.close()}))}onClose(){this.contentEl.empty()}},Pt=class extends W{constructor(o,e){super(o,e)}onOpen(){super.onOpen(),this.modalEl.classList.add("color-master-modal");let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("settings.languageSettingsModalTitle")}),new b.Setting(o).setName(r("settings.rtlLayoutName")).setDesc(r("settings.rtlLayoutDesc")).addToggle(e=>{e.setValue(this.plugin.settings.useRtlLayout).onChange(async t=>{this.plugin.settings.useRtlLayout=t,await this.plugin.saveSettings(),this.plugin.settingTabInstance?.display()})})}onClose(){let{contentEl:o}=this;o.empty()}},Nt=class extends W{constructor(o,e){super(o,e)}onOpen(){super.onOpen(),this.modalEl.classList.add("color-master-modal");let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("options.iconizeModalTitle")}),new b.Setting(o).setName(r("options.overrideIconizeName")).setDesc(r("options.overrideIconizeDesc")).addToggle(e=>{e.setValue(this.plugin.settings.overrideIconizeColors).onChange(async t=>{if(t){let s=["obsidian-icon-folder","iconize"],i=this.app.plugins;if(!s.some(l=>!!i.getPlugin(l))){new b.Notice(r("notices.iconizeNotFound")),e.setValue(!1);return}}this.plugin.settings.overrideIconizeColors=t,await this.plugin.saveSettings()})}),new b.Setting(o).setName(r("options.cleanupIntervalName")).setDesc(r("options.cleanupIntervalDesc")).addSlider(e=>{e.setLimits(1,10,1).setValue(this.plugin.settings.cleanupInterval).setDynamicTooltip().onChange(async t=>{this.plugin.settings.cleanupInterval=t,await this.plugin.saveSettings(),this.plugin.resetIconizeWatcher()})})}onClose(){let{contentEl:o}=this;o.empty()}},It=class extends W{constructor(e,t){super(e,t);this.debouncedSaveSettings=fe(e=>{(async()=>{let t=this.plugin.settings.profiles[this.plugin.settings.activeProfile];t&&(t.jpgQuality=e,await this.plugin.saveSettings(),new b.Notice(r("notices.jpgQualitySet",e)))})().catch(t=>{console.error("Failed to save JPG quality:",t)})},0)}onOpen(){super.onOpen(),this.modalEl.classList.add("color-master-modal");let{contentEl:e}=this,t=this.plugin.settings.profiles[this.plugin.settings.activeProfile];e.empty(),e.createEl("h3",{text:r("options.backgroundModalSettingsTitle")}),new b.Setting(e).setName(r("options.backgroundEnableName")).setDesc(r("options.backgroundEnableDesc")).addToggle(u=>{let g=t?.backgroundEnabled!==!1;u.setValue(g).onChange(async m=>{let f=this.plugin.settings.profiles[this.plugin.settings.activeProfile];f&&(f.backgroundEnabled=m,await this.plugin.saveSettings()),this.onOpen()})});let s=new b.Setting(e).setName(r("options.settingType")),i,a,l=e.createDiv("cm-settings-group");l.setCssProps({display:"none"});let c=e.createDiv("cm-settings-group");c.setCssProps({display:"none"}),new b.Setting(l).setName(r("options.convertImagesName")).setDesc(r("options.convertImagesDesc")).addToggle(u=>{u.setValue(t?.convertImagesToJpg||!1).onChange(async g=>{t.convertImagesToJpg=g,g&&!t.jpgQuality&&(t.jpgQuality=85),await this.plugin.saveSettings(),this.onOpen()})}),t?.convertImagesToJpg===!0&&new b.Setting(l).setName(r("options.jpgQualityName")).setDesc(r("options.jpgQualityDesc")).addSlider(u=>{u.setLimits(1,100,1).setValue(t?.jpgQuality||85).setDynamicTooltip().onChange(g=>{this.debouncedSaveSettings(g)})}),new b.Setting(c).setName(r("options.videoOpacityName")).setDesc(r("options.videoOpacityDesc")).addSlider(u=>{u.setLimits(.1,1,.1).setValue(t.videoOpacity||.5).setDynamicTooltip().onChange(async g=>{t.videoOpacity=g,await this.plugin.saveSettings()}),u.sliderEl.oninput=g=>{let m=parseFloat(g.target.value),f=document.querySelector("#cm-background-video");f&&f.setCssProps({opacity:m.toString()})}}),new b.Setting(c).setName(r("options.videoMuteName")).setDesc(r("options.videoMuteDesc")).addToggle(u=>u.setValue(t.videoMuted!==!1).onChange(async g=>{t.videoMuted=g,await this.plugin.saveSettings();let m=document.querySelector("#cm-background-video");m&&(m.muted=g)}));let d=u=>{u==="image"?(i.setCta(),a.buttonEl.classList.remove("mod-cta"),l.setCssProps({display:"block"}),c.setCssProps({display:"none"})):(i.buttonEl.classList.remove("mod-cta"),a.setCta(),l.setCssProps({display:"none"}),c.setCssProps({display:"block"}))};s.addButton(u=>{i=u,u.setButtonText(r("options.settingTypeImage")).onClick(()=>d("image"))}),s.addButton(u=>{a=u,u.setButtonText(r("options.settingTypeVideo")).onClick(()=>d("video"))});let p=t?.backgroundType||"image";d(p)}debounce(e,t){let s;return(...i)=>{let a=()=>{s=null,e(...i)};s&&clearTimeout(s),s=setTimeout(a,t)}}onClose(){let{contentEl:e}=this;e.empty()}},Ot=class extends W{constructor(o,e,t,s,i){super(o,e),this.arrayBuffer=t,this.fileName=s,this.onResolve=i}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("modals.fileConflict.title")}),o.createEl("p",{text:r("modals.fileConflict.desc",this.fileName)});let e=o.createDiv({cls:"modal-button-container"});new b.ButtonComponent(e).setButtonText(r("modals.fileConflict.replaceButton")).onClick(()=>{this.onResolve("replace"),this.close()}),new b.ButtonComponent(e).setButtonText(r("modals.fileConflict.keepButton")).setCta().onClick(()=>{this.onResolve("keep"),this.close()})}onClose(){this.contentEl.empty()}},Mt=class extends W{constructor(o,e,t){super(o,e),this.settingTab=t}async handlePastedFile(o){new b.Notice(r("notices.pastedImage",o.name)),await this.processFileWithProgress(o)}async handlePastedUrl(o){let e=this.contentEl.querySelector(".cm-paste-box");if(o.startsWith("data:image"))try{e&&(e.textContent=r("modals.addBackground.processing")+"...");let t=await(0,b.requestUrl)({url:o}),s=t.arrayBuffer,i=t.headers["content-type"]||"image/png",a=`pasted-image-${Date.now()}.${i.split("/")[1]}`;new b.Notice(r("notices.pastedBase64Image")),await this.plugin.setBackgroundMedia(s,a,"prompt"),this.close();return}catch(t){new b.Notice(r("notices.backgroundLoadError")),console.error("Color Master: Error handling pasted data URL:",t),this.close();return}if(o.startsWith("http://")||o.startsWith("https://")){new b.Notice(r("notices.downloadingFromUrl",o)),e&&(e.textContent=r("modals.addBackground.processing")+"..."),await this.plugin.setBackgroundMediaFromUrl(o),this.close();return}new b.Notice(r("notices.pasteError"))}async processFileWithProgress(o){await Promise.resolve();let e=new FileReader,t=this.contentEl.querySelector(".cm-paste-box");e.onprogress=s=>{if(s.lengthComputable&&t){let i=Math.round(s.loaded/s.total*100);t.textContent=r("modals.addBackground.processing")+`${i}%`}},e.onload=async()=>{t&&(t.textContent=r("modals.addBackground.processing")+" 100%");let s=e.result;await this.plugin.setBackgroundMedia(s,o.name,"prompt"),this.close()},e.onerror=()=>{new b.Notice(r("notices.backgroundLoadError")),this.close()},t&&(t.textContent=r("modals.addBackground.processing")+"0%"),e.readAsArrayBuffer(o)}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("modals.addBackground.title")}),new b.Setting(o).setName(r("modals.addBackground.importFromFile")).setDesc(r("modals.addBackground.importFromFileDesc")).addButton(t=>{let s=document.createElement("input");s.type="file",s.accept="image/*, video/mp4, video/webm",t.setCta().setButtonText(r("buttons.chooseFile")).onClick(()=>{s.click()}),s.onchange=async()=>{if(!s.files||s.files.length===0)return;let i=s.files[0];await this.processFileWithProgress(i)}}),o.createEl("hr");let e=o.createDiv({cls:"cm-paste-box",text:r("modals.addBackground.pasteBoxPlaceholder")});e.setAttribute("contenteditable","true"),e.addEventListener("paste",t=>{t.preventDefault();let s=t.clipboardData;if(!s)return;if(s.files&&s.files.length>0){let a=s.files[0];if(a.type.startsWith("image/")||a.type.startsWith("video/")){this.handlePastedFile(a).catch(l=>{console.error("Failed to handle pasted file:",l)});return}}let i=s.getData("text/plain");if(i&&(i.startsWith("http://")||i.startsWith("https://")||i.startsWith("data:image"))){this.handlePastedUrl(i).catch(a=>{console.error("Failed to handle pasted URL:",a)});return}new b.Notice(r("notices.backgroundPasteError"))}),e.addEventListener("dragover",t=>{t.preventDefault(),e.classList.add("is-over"),e.textContent=r("modals.addBackground.dropToAdd")}),e.addEventListener("dragleave",()=>{e.classList.remove("is-over"),e.textContent=r("modals.addBackground.pasteBoxPlaceholder")}),e.addEventListener("drop",t=>{if(t.preventDefault(),e.classList.remove("is-over"),e.textContent=r("modals.addBackground.pasteBoxPlaceholder"),!t.dataTransfer)return;if(t.dataTransfer.files&&t.dataTransfer.files.length>0){let i=t.dataTransfer.files[0];if(i.type.startsWith("image/")){this.handlePastedFile(i);return}}let s=t.dataTransfer.getData("text/uri-list")||t.dataTransfer.getData("text/plain");if(s&&(s.startsWith("http")||s.startsWith("data:image"))){this.handlePastedUrl(s);return}new b.Notice(r("notices.backgroundPasteError"))})}onClose(){this.contentEl.empty()}},Bt=class extends W{constructor(e,t,s,i){super(e,t);this.videoPlayers=[];this.settingTab=s,this.closeCallback=i}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),this.videoPlayers=[],e.createEl("h3",{text:r("modals.backgroundBrowser.title")}),this.galleryEl=e.createDiv({cls:"cm-image-gallery"}),this._renderImages().catch(t=>{console.error("Failed to render images:",t)})}async _renderImages(){await this.displayImages()}async displayImages(){this.galleryEl.empty();let e=`${this.app.vault.configDir}/backgrounds`,t=[".png",".jpg",".jpeg",".gif",".webp",".svg",".mp4",".webm"],s=[];try{await this.app.vault.adapter.exists(e)&&(s=(await this.app.vault.adapter.list(e)).files)}catch(p){console.warn("Color Master: Error listing background folder.",p)}let i=s.filter(p=>t.some(u=>p.toLowerCase().endsWith(u)));if(i.length===0){this.galleryEl.createDiv({cls:"cm-image-browser-empty",text:r("modals.backgroundBrowser.noImages")});return}let l=this.plugin.settings.profiles[this.plugin.settings.activeProfile]?.backgroundPath,c=p=>{let u=decodeURIComponent(p||""),g=u.lastIndexOf(".");return g>0&&g{(0,b.setIcon)(_,O.muted?"volume-x":"volume-2"),_.setCssProps({opacity:"0"})};$(),_.addEventListener("click",Y=>{Y.stopPropagation(),O.muted=!O.muted,$(),_.setCssProps({opacity:O.muted?"0.8":"1"})}),h.addEventListener("click",()=>{for(let Y of this.videoPlayers)if(Y!==O&&!Y.paused){Y.pause();let ae=Y.closest(".cm-media-preview-container");if(ae){let Ne=ae.querySelector(".cm-media-play-overlay"),ze=ae.querySelector(".cm-media-mute-toggle");Ne?.setCssProps({opacity:"1"}),ze?.setCssProps({opacity:"0"})}}O.paused?(O.play().catch(Y=>{console.error("Failed to play video:",Y)}),A.setCssProps({opacity:"0"}),_.setCssProps({opacity:O.muted?"0.8":"1"})):(_.setCssProps({opacity:"0"}),O.pause(),A.setCssProps({opacity:"1"}))})}else h.createEl("img",{cls:"cm-image-card-preview",attr:{src:g,"data-path":p}});let w=u.createDiv({cls:"setting-item cm-image-card-name-input"}).createDiv({cls:"setting-item-control"}).createDiv({cls:"cm-name-input-container"}),v=w.createEl("input",{type:"text",cls:"cm-name-input-basename"}),y=w.createSpan({cls:"cm-name-input-extension"}),x=p,k=m||"",{basename:F,ext:U}=c(k);v.value=F,y.setText(U),v.addEventListener("focus",O=>O.target.select());let I=async()=>{let O=v.value.trim(),A=c(k).basename;if(O&&O!==A){let _=O+U,$=await this.plugin.renameBackgroundMedia(x,_);if($&&typeof $=="string"){x=$,k=$.split("/").pop()||"",F=c(k).basename;let ae=u.querySelector(".cm-image-card-preview"),Ne=u.querySelector(".cm-image-card-select-btn"),ze=u.querySelector(".cm-image-card-delete-btn");ae&&(ae.src=this.app.vault.adapter.getResourcePath($)),Ne&&(Ne.onclick=()=>this.selectMedia($)),ze&&(ze.onclick=()=>this.deleteMedia($,u))}else v.value=A}else v.value=A};v.addEventListener("keydown",O=>{O.key==="Enter"&&(O.preventDefault(),v.blur())}),v.addEventListener("focusout",()=>{I().catch(O=>{console.error("Failed to save snippet name:",O)})});let T=u.createDiv({cls:"cm-image-card-controls"});new b.ButtonComponent(T).setButtonText(r("buttons.select")).setCta().onClick(()=>this.selectMedia(x)).buttonEl.classList.add("cm-image-card-select-btn"),new b.ButtonComponent(T).setIcon("trash").setClass("mod-warning").onClick(()=>this.deleteMedia(x,u)).buttonEl.classList.add("cm-image-card-delete-btn"),d.appendChild(u)}this.galleryEl.appendChild(d)}async selectMedia(e){let t=e.split(".").pop()?.toLowerCase(),s=t==="mp4"||t==="webm"?"video":"image";await this.plugin.selectBackgroundMedia(e,s),this.settingTab.display(),this.closeCallback(),this.close()}deleteMedia(e,t){let s=this.plugin.settings.profiles,i=Object.keys(s).filter(l=>s[l].backgroundPath===e),a=new DocumentFragment;if(a.append(r("modals.confirmation.deleteGlobalBgDesc")),i.length>0){let l=a.createEl("ul",{cls:"cm-profile-list-modal"});i.forEach(c=>{l.createEl("li").createEl("strong",{text:c})})}new ie(this.app,this.plugin,r("modals.confirmation.deleteBackgroundTitle"),a,()=>{(async()=>{await this.plugin.removeBackgroundMediaByPath(e),new b.Notice(r("notices.bgDeleted")),t.remove(),this.galleryEl.childElementCount===0&&this.galleryEl.createDiv({cls:"cm-image-browser-empty",text:r("modals.backgroundBrowser.noImages")}),this.settingTab.display()})().catch(l=>{console.error("Failed to delete background:",l)})},{buttonText:r("buttons.deleteAnyway"),buttonClass:"mod-warning"}).open()}onClose(){for(let e of this.videoPlayers)e.pause();this.videoPlayers=[],this.contentEl.empty()}},Ft=class extends W{constructor(e,t){super(e,t);this.defaultResetOptions={deleteProfiles:!1,deleteSnippets:!1,deleteSettings:!1,deleteBackgrounds:!1,deleteLanguages:!1};this.resetOptions={...this.plugin.settings.advancedResetOptions||this.defaultResetOptions,deleteBackgrounds:this.plugin.settings.advancedResetOptions?.deleteBackgrounds||this.defaultResetOptions.deleteBackgrounds}}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),e.createEl("h3",{text:r("modals.advancedReset.title")}),e.createEl("p",{text:r("modals.advancedReset.desc")}),e.addClass("cm-advanced-reset-options"),new b.Setting(e).setName(r("modals.advancedReset.profilesLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.profilesDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteProfiles).onChange(i=>{this.resetOptions.deleteProfiles=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.snippetsLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.snippetsDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteSnippets).onChange(i=>{this.resetOptions.deleteSnippets=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.settingsLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.settingsDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteSettings).onChange(i=>{this.resetOptions.deleteSettings=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.backgroundsLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.backgroundsDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteBackgrounds).onChange(i=>{this.resetOptions.deleteBackgrounds=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.languagesLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.languagesDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteLanguages??!1).onChange(i=>{this.resetOptions.deleteLanguages=i,this.validateButton()}),s.toggleEl.blur()});let t=e.createDiv({cls:"modal-button-container"});new b.ButtonComponent(t).setButtonText(r("buttons.cancel")).onClick(()=>this.close()),this.deleteButton=new b.ButtonComponent(t).setButtonText(r("buttons.delete")).setWarning().onClick(()=>{Object.values(this.resetOptions).every(s=>s===!1)||(this.plugin.settings.advancedResetOptions=this.resetOptions,this.plugin.resetPluginData(this.resetOptions).catch(s=>{console.error("Failed to reset plugin data:",s)}),this.close())}),this.validateButton()}validateButton(){let e=Object.values(this.resetOptions).some(t=>t===!0);this.deleteButton.setDisabled(!e),this.deleteButton.setButtonText(e?r("buttons.delete"):r("buttons.selectOption"))}onClose(){this.contentEl.empty()}},At=class extends W{constructor(e,t,s){super(e,t);this.langName="";this.langCode="";this.isRtl=!1;this.settingTab=s}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),e.createEl("h3",{text:r("modals.addLang.title")}),e.createEl("p",{text:r("modals.addLang.desc")}),new b.Setting(e).setName(r("modals.addLang.nameLabel")).setDesc(r("modals.addLang.nameDesc")).addText(s=>{s.setPlaceholder(r("modals.addLang.namePlaceholder")).onChange(i=>{this.langName=i.trim()})}),new b.Setting(e).setName(r("modals.addLang.codeLabel")).setDesc(r("modals.addLang.codeDesc")).addText(s=>{s.setPlaceholder(r("modals.addLang.codePlaceholder")).onChange(i=>{this.langCode=i.trim().toLowerCase().replace(/[^a-z0-9_-]/g,""),s.inputEl.value!==this.langCode&&s.setValue(this.langCode)})}),new b.Setting(e).setName(r("modals.addLang.rtlLabel")).setDesc(r("modals.addLang.rtlDesc")).addToggle(s=>{s.setValue(this.isRtl).onChange(i=>{this.isRtl=i})});let t=e.createDiv({cls:"modal-button-container"});new b.ButtonComponent(t).setButtonText(r("buttons.cancel")).onClick(()=>this.close()),new b.ButtonComponent(t).setButtonText(r("buttons.create")).setCta().onClick(()=>this.handleCreate())}async handleCreate(){if(!this.langName){new b.Notice(r("notices.langNameEmpty"));return}if(!this.langCode){new b.Notice(r("notices.langCodeEmpty"));return}if(["en","ar","fa","fr"].includes(this.langCode)){new b.Notice(r("notices.langCodeCore",this.langCode));return}if(this.plugin.settings.customLanguages||(this.plugin.settings.customLanguages={}),this.plugin.settings.customLanguages[this.langCode]){new b.Notice(r("notices.langCodeExists",this.langCode));return}if(Object.values(this.plugin.settings.customLanguages).some(a=>a.languageName.toLowerCase()===this.langName.toLowerCase())){new b.Notice(r("notices.langNameExists",this.langName));return}if(Object.values(me).map(a=>a.toLowerCase()).includes(this.langName.toLowerCase())){new b.Notice(r("notices.langNameCore",this.langName));return}this.plugin.settings.customLanguages[this.langCode]={languageName:this.langName,translations:{},isRtl:this.isRtl},this.plugin.settings.language=this.langCode,await this.plugin.saveSettings(),Ce(this.plugin.settings),new b.Notice(r("notices.langCreated",this.langName)),this.settingTab.display(),this.close(),new tt(this.app,this.plugin,this.settingTab,this.langCode).open()}onClose(){this.contentEl.empty()}},tt=class extends W{constructor(e,t,s,i){super(e,t);this.isRtl=!1;this.searchQuery="";this.caseSensitive=!1;this.filterMissing=!1;this.settingTab=s,this.langCode=i,this.fallbackStrings=hn(),this.nestedFallback=lt(this.fallbackStrings);let a=this.plugin.settings.customLanguages?.[i],l=me[i];if(l){this.isCoreLanguage=!0,this.langName=l;let c=Se(Ie[i]),d={};for(let p in c)typeof c[p]=="string"&&(d[p]=c[p]);a&&a.translations?(this.translations={...d,...a.translations},this.isRtl=a.isRtl??(i==="ar"||i==="fa")):(this.translations=d,this.isRtl=i==="ar"||i==="fa")}else a?(this.langName=a.languageName,this.translations=JSON.parse(JSON.stringify(a.translations||{})),this.isCoreLanguage=!1,this.isRtl=a.isRtl||!1):(this.langName=i,this.translations={},this.isCoreLanguage=!1)}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),this.modalEl.classList.add("color-master-modal","cm-translator-modal","cm-translator-tree-modal"),e.createEl("h3",{text:r("modals.translator.title",this.langName)}),this.debouncedRender=fe(()=>{this.renderTranslationTree()},250),this.renderControls(e),this.listContainer=e.createDiv("cm-translator-list"),this.renderTranslationTree(),new b.Setting(e).addButton(s=>{s.setButtonText(r("buttons.apply")).setCta().onClick(()=>this.handleSave())}).addButton(s=>{s.setButtonText(r("buttons.cancel")).onClick(()=>this.close())}).settingEl.classList.add("cm-translator-main-controls","modal-button-container")}renderControls(e){let t=e.createDiv("cm-translator-controls"),s=t.createDiv({cls:"cm-search-bar-container"}),i=new b.SearchComponent(s).setPlaceholder(r("modals.translator.searchPlaceholder")).setValue(this.searchQuery).onChange(p=>{this.searchQuery=p,this.debouncedRender()});this.searchInput=i.inputEl,s.addClass("cm-search-input-container");let a=s.createDiv({cls:"cm-search-actions"}),l=a.createEl("button",{cls:"cm-search-action-btn",text:"Aa"});l.setAttr("aria-label",r("settings.ariaCase")),l.classList.toggle("is-active",this.caseSensitive),l.addEventListener("click",()=>{this.caseSensitive=!this.caseSensitive,l.classList.toggle("is-active",this.caseSensitive),this.debouncedRender()});let c=a.createEl("button",{cls:"cm-search-action-btn"});(0,b.setIcon)(c,"filter"),c.setAttr("aria-label",r("modals.translator.showMissing")),c.classList.toggle("is-active",this.filterMissing),c.addEventListener("click",()=>{this.filterMissing=!this.filterMissing,c.classList.toggle("is-active",this.filterMissing),this.debouncedRender()});let d=t.createDiv("cm-translator-io-controls");new b.Setting(d).addButton(p=>p.setIcon("copy").setTooltip(r("modals.translator.copyJson")).onClick(()=>this._copyJson())).addButton(p=>p.setIcon("paste").setTooltip(r("modals.translator.pasteJson")).onClick(()=>this._pasteJson())).addButton(p=>p.setIcon("download").setTooltip(r("modals.translator.importFile")).onClick(()=>this._importLanguageFile())).addButton(p=>p.setIcon("upload").setTooltip(r("modals.translator.exportFile")).onClick(()=>this._exportLanguageFile()))}renderTranslationTree(){this.listContainer.empty();let e={index:1},t=this.caseSensitive?this.searchQuery:this.searchQuery.toLowerCase();this.renderGroup(this.listContainer,this.nestedFallback,"",e,t)===0&&(this.searchQuery||this.filterMissing)&&this.listContainer.createEl("p",{cls:"cm-translator-empty",text:r("modals.translator.noMatches")})}renderGroup(e,t,s,i,a){let l=0,c=Object.keys(t).sort((d,p)=>{let u=t[d],g=t[p],m=typeof u=="object"&&u!==null,f=typeof g=="object"&&g!==null;return m&&!f?-1:!m&&f?1:d.localeCompare(p)});for(let d of c){let p=s?`${s}.${d}`:d,u=t[d],g=this.translations[p],m=this.caseSensitive?d:d.toLowerCase(),f="";typeof u=="string"?f=u:typeof u=="function"&&(f=r("modals.translator.dynamicValue"));let h=this.caseSensitive?f:f.toLowerCase(),E=typeof g=="string"?this.caseSensitive?g:g.toLowerCase():"",S=!a||m.includes(a)||h.includes(a)||E.includes(a);if(typeof u=="object"&&u!==null){let w=e.createEl("details",{cls:"cm-translator-group"});w.createEl("summary",{cls:"cm-translator-group-title"}).createSpan({text:d});let y=w.createDiv("cm-translator-group-content"),x=this.renderGroup(y,u,p,i,a);x>0?(l+=x,(a||this.filterMissing)&&(w.open=!0)):w.remove()}else if(typeof u=="string"||typeof u=="function"){let w=!g;if((!this.filterMissing||w)&&S){l++;let y=e.createDiv({cls:"cm-translator-item setting-item"});y.createSpan({cls:"cm-translator-index",text:`${i.index++}.`});let x=y.createDiv("setting-item-info"),F=x.createDiv("setting-item-name cm-translator-key").createSpan();this.highlightMatch(F,d,a);let U=x.createDiv({cls:"setting-item-description"}),I=f.length>100;if((p.endsWith(".desc")||p.endsWith("Desc")||p.includes("langInfo"))&&I){let A=f.substring(0,100)+"...";this.highlightMatch(U,A,a);let _=x.createEl("a",{cls:"cm-translator-toggle",text:r("modals.translator.showMore")}),$=!1;_.onclick=()=>{$=!$;let Y=$?f:A;this.highlightMatch(U,Y,a),_.setText($?r("modals.translator.showLess"):r("modals.translator.showMore"))}}else this.highlightMatch(U,f,a);let P=y.createDiv("setting-item-control");(this.isLongString(f)?new b.TextAreaComponent(P):new b.TextComponent(P)).setValue(g||"").setPlaceholder(f).onChange(A=>{A?this.translations[p]=A:delete this.translations[p]})}}}return l}highlightMatch(e,t,s){if(e.empty(),!s){e.setText(t);return}try{let i=this.caseSensitive?"g":"gi",a=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=new RegExp(a,i),c=0,d;for(;(d=l.exec(t))!==null;)d.index>c&&e.appendText(t.substring(c,d.index)),e.createSpan({cls:"cm-search-match",text:d[0]}),c=l.lastIndex;c50||e.includes(` -`)}async handleSave(){this.plugin.settings.customLanguages||(this.plugin.settings.customLanguages={});let e=this.translations;if(this.isCoreLanguage){let s=Se(Ie[this.langCode]),i={};for(let a in this.translations){let l=this.translations[a],c=s[a];l!==c&&l!==void 0&&(i[a]=l)}e=i}let t=this.langName;this.plugin.settings.customLanguages[this.langCode]={languageName:t,translations:e,isRtl:this.isRtl},await this.plugin.saveSettings(),this.plugin.settings.language===this.langCode&&Ce(this.plugin.settings),new b.Notice(r("notices.langSaved",this.langName)),this.settingTab.display(),this.close()}_exportLanguageFile(){let e=lt(this.translations),t=JSON.stringify(e,null,2),s=new Blob([t],{type:"application/json"}),i=URL.createObjectURL(s),a=document.createElement("a");a.href=i,a.download=`${this.langCode}.json`,a.click(),URL.revokeObjectURL(i),a.remove(),new b.Notice(r("notices.langExported",this.langCode))}_importLanguageFile(){let e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0];try{let s=await t.text(),i=JSON.parse(s),a=Se(i);this.translations={...this.translations,...a},new b.Notice(r("notices.langImported",t.name)),this.renderTranslationTree()}catch(s){new b.Notice(r("notices.invalidJson")),console.error("Failed to import language file:",s)}})().catch(t=>{console.error("Unhandled file import error:",t)})},e.click()}_copyJson(){let e=lt(this.translations),t=JSON.stringify(e,null,2);navigator.clipboard.writeText(t).catch(s=>{console.error("Failed to copy JSON to clipboard:",s)}),new b.Notice(r("notices.langCopiedJson"))}_pasteJson(){(async()=>{try{let e=await navigator.clipboard.readText();if(!e)return;let t=JSON.parse(e),s=Se(t),i=0;for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&this.fallbackStrings[a]!==void 0&&(this.translations[a]=s[a],i++);new b.Notice(r("notices.langPastedJson",i)),this.renderTranslationTree()}catch(e){new b.Notice(r("notices.invalidJson")),console.error("Failed to paste JSON from clipboard:",e)}})().catch(e=>{console.error("Unhandled paste JSON error:",e)})}onClose(){this.contentEl.empty()}};function Jn(n,o,e){let t=o.plugin,i=t.settings.profiles[t.settings.activeProfile].vars;for(let[c,d]of Object.entries(X)){let p,u=c.toLowerCase();u==="interactive elements"?p="interactive":u==="ui elements"?p="ui":u==="graph view"?p="graph":u==="plugin integrations"?p="pluginintegrations":p=u.replace(/ /g,"");let g=r(`categories.${p}`)||c,m=["cm-category-container"],f=n.createDiv({cls:m.join(" ")});f.dataset.category=c,f.createEl("h3",{text:g});for(let[h,E]of Object.entries(d)){let S=e[h]||"",w=r(`colors.descriptions.${h}`)||"",v=new $e.Setting(n).setName(r(`colors.names.${h}`)||h).setDesc(w);p==="pluginintegrations"&&h==="--iconize-icon-color"&&(Ue(t.app)||v.nameEl.createSpan({text:r("options.badgeNotInstalled"),cls:"cm-not-installed-badge"}).setAttr("aria-label",r("tooltips.iconizeNotInstalled"))),h==="--iconize-icon-color"&&v.addExtraButton(T=>{T.setIcon("settings").setTooltip(r("tooltips.iconizeSettings")).onClick(()=>{new Nt(o.app,t).open()})}),c==="Notices"&&v.addExtraButton(T=>{T.setIcon("settings").onClick(()=>{let P=h.includes("-text-")?"text":"background";new Dt(o.app,t,o,P).open()})}),v.settingEl.classList.add("cm-var-row"),v.settingEl.dataset.var=h,v.settingEl.dataset.category=c,v.nameEl.classList.add("cm-var-name");let y=st[h];if(y){let T=i[h]||S,P=i[y]||e[y]||"#ffffff";h==="--text-highlight-bg"&&([T,P]=[P,T]);let V=rt(P,T),O=at(V),A=v.controlEl.createDiv({cls:`cm-accessibility-checker ${O.cls}`});A.dataset.varName=h,A.setText(`${O.text} (${O.score})`)}let x=v.controlEl.createEl("input",{type:"color"}),k=v.controlEl.createEl("input",{type:"text",cls:"color-master-text-input"}),F=Object.prototype.hasOwnProperty.call(i,h),U=F?i[h]:S;v.settingEl.classList.add(F?"is-modified":"is-pristine"),k.value=U,o.updateColorPickerAppearance(k,x),x.addEventListener("input",T=>{let P=T.target.value;k.value=P,t.settings.colorUpdateFPS>0&&(t.pendingVarUpdates[h]=P)});let I=T=>{k.value=T,o.updateColorPickerAppearance(k,x);let P=t.settings.profiles[t.settings.activeProfile],V=Object.prototype.hasOwnProperty.call(i,h)?i[h]:S;V.toLowerCase()!==T.toLowerCase()&&(P.history=P.history||{},P.history[h]=P.history[h]||[],P.history[h].unshift(V),P.history[h]=P.history[h].slice(0,5)),T.trim()===""||T.toLowerCase()===S.toLowerCase()?(v.settingEl.classList.remove("is-modified"),v.settingEl.classList.add("is-pristine"),delete i[h]):(v.settingEl.classList.remove("is-pristine"),v.settingEl.classList.add("is-modified"),i[h]=T);let O=T.trim()===""||T.toLowerCase()===S.toLowerCase()?"":T;if(t.settings.colorUpdateFPS===0){t.pendingVarUpdates[h]=O,t.applyPendingNow(),t.saveSettings();return}t.pendingVarUpdates[h]=O,t.saveSettings(),o.updateAccessibilityCheckers(),setTimeout(()=>o.app.workspace.trigger("css-change"),50)};x.addEventListener("change",T=>{I(T.target.value)}),k.addEventListener("change",T=>{I(T.target.value)}),v.addExtraButton(T=>{T.setIcon("eraser").setTooltip(r("tooltips.setTransparent")).onClick(()=>{let P="transparent";k.value=P,I(P),o.updateColorPickerAppearance(k,x)})}),v.addExtraButton(T=>{T.setIcon("reset").setTooltip(r("tooltips.undoChange")).onClick(async()=>{let V=t.settings.profiles[t.settings.activeProfile].history?.[h],O=e[h]||E||"#ffffff";if(V&&V.length>0){let _=V.shift()??O;i[h]=_,k.value=_,o.updateColorPickerAppearance(k,x),_.trim()===""?(v.settingEl.classList.remove("is-modified"),v.settingEl.classList.add("is-pristine"),delete i[h]):(v.settingEl.classList.remove("is-pristine"),v.settingEl.classList.add("is-modified")),await t.saveSettings(),o.updateAccessibilityCheckers(),new $e.Notice(r("notices.colorRestored",_))}else new $e.Notice(r("notices.noColorHistory"))})})}}let a=new Set(Object.keys(de(X))),l={};for(let c in i)a.has(c)||(l[c]=i[c]);if(Object.keys(l).length>0){let c=n.createDiv({cls:"cm-category-container"});c.dataset.category="Custom",c.createEl("h3",{text:r("categories.custom"),cls:"cm-section-heading"});let d=t.settings.profiles[t.settings.activeProfile];for(let[p,u]of Object.entries(l)){let g=d.customVarMetadata?.[p],m=g?.type||"color",f=g?.name||p,h=g?.desc||r("categories.customDesc"),E=u!=="",S=new $e.Setting(c).setName(f).setDesc(h);S.settingEl.classList.add("cm-var-row",E?"is-modified":"is-pristine"),S.settingEl.dataset.var=p,S.settingEl.dataset.category="Custom",S.nameEl.classList.add("cm-var-name");let w=v=>{d.vars[p]=v,v===""?(S.settingEl.classList.remove("is-modified"),S.settingEl.classList.add("is-pristine")):(S.settingEl.classList.remove("is-pristine"),S.settingEl.classList.add("is-modified")),t.settings.colorUpdateFPS>0?t.pendingVarUpdates[p]=v:(document.body.setCssProps({[p]:v||null}),t.saveSettings()),t.settings.colorUpdateFPS>0&&t.saveSettings()};switch(m){case"color":{let v=S.controlEl.createEl("input",{type:"color"}),y=S.controlEl.createEl("input",{type:"text",cls:"color-master-text-input"});y.value=u,o.updateColorPickerAppearance(y,v),v.addEventListener("input",x=>{let k=x.target.value;y.value=k,t.settings.colorUpdateFPS>0&&(t.pendingVarUpdates[p]=k)}),v.addEventListener("change",x=>{w(x.target.value),o.updateColorPickerAppearance(y,v)}),y.addEventListener("change",x=>{let k=x.target.value;w(k),o.updateColorPickerAppearance(y,v)}),S.addExtraButton(x=>{x.setIcon("eraser").setTooltip(r("tooltips.setTransparent")).onClick(()=>{let k="transparent";y.value=k,w(k),o.updateColorPickerAppearance(y,v)})});break}case"size":{let v=u.match(/(-?\d*\.?\d+)\s*(px|em|rem|%|vw|vh|auto)?/),y=v?.[1]||"10",x=v?.[2]||"px";u==="auto"&&(y="",x="auto");let k=S.controlEl.createEl("input",{type:"number",cls:"color-master-text-input"});k.value=y,k.setCssProps({width:"80px"});let F=S.controlEl.createEl("select",{cls:"dropdown cm-search-small"}),U=["px","em","rem","%","vw","vh","auto"];U.includes(x)||(x="px"),U.forEach(T=>{F.createEl("option",{text:T,value:T})}),F.value=x;let I=()=>{let T=k.value||"0",P=F.value,V=P==="auto"?"auto":`${T}${P}`;k.disabled=P==="auto",w(V)};k.addEventListener("change",I),F.addEventListener("change",I),k.disabled=x==="auto";break}case"text":{S.controlEl.classList.add("cm-full-width-control");let v=S.controlEl.createEl("input",{type:"text",cls:"cm-wide-text-input"});v.value=u,v.placeholder="Enter text value...",v.addEventListener("change",y=>{w(y.target.value)});break}case"number":{let v=S.controlEl.createEl("input",{type:"number",cls:"color-master-text-input"});v.value=u,v.setCssProps({width:"100px"}),v.addEventListener("change",y=>{w(y.target.value)});break}default:{S.controlEl.classList.add("cm-full-width-control");let v=S.controlEl.createEl("input",{type:"text",cls:"cm-wide-text-input"});v.value=u,v.addEventListener("change",y=>{w(y.target.value)});break}}S.addExtraButton(v=>{v.setIcon("trash").setTooltip(r("tooltips.deleteCustomVar")).onClick(async()=>{delete d.vars[p],document.body.setCssProps({[p]:null}),d.customVarMetadata?.[p]&&delete d.customVarMetadata[p],await t.saveSettings(),o.display()})})}}}function qn(n,o){let e=n.createDiv("cm-profile-actions");e.createEl("button",{text:r("buttons.exportFile"),cls:"cm-profile-action-btn"}).addEventListener("click",()=>o._exportProfileToFile()),e.createEl("button",{text:r("buttons.copyJson"),cls:"cm-profile-action-btn"}).addEventListener("click",()=>{o._copyProfileToClipboard().catch(s=>{console.error("Failed to copy profile to clipboard:",s)})}),e.createDiv({cls:"cm-profile-action-spacer"}),e.createEl("button",{text:r("buttons.importCss"),cls:"cm-profile-action-btn cm-paste-css-btn"}).addEventListener("click",()=>{new _e(o.app,o.plugin,o,null).open()}),e.createEl("button",{text:r("buttons.importJson"),cls:"cm-profile-action-btn mod-cta"}).addEventListener("click",()=>new kt(o.app,o.plugin,o).open())}var sn=require("obsidian");var Mo="https://github.com/YazanAmmar/obsidian-color-master",Bo="https://github.com/YazanAmmar/obsidian-color-master/issues",Fo="https://github.com/YazanAmmar/SyncEveryThing",Ao="https://t.me/ThemeEngine";function Ro(n){return Object.keys(n.plugin.settings.profiles||{}).length}function Vo(n){let o=n.plugin.settings,e=o.profiles||{},t=o.globalSnippets?o.globalSnippets.length:0;for(let s in e){let i=e[s];i&&Array.isArray(i.snippets)&&(t+=i.snippets.length)}return t}function _o(n){let o=new Set(Object.keys(de(X))),e=n.plugin.settings.profiles[n.plugin.settings.activeProfile];return e&&e.vars&&Object.keys(e.vars).forEach(t=>o.add(t)),o.size}function $o(){try{if(X&&X["Plugin Integrations"])return Object.keys(X["Plugin Integrations"]).length}catch(n){console.error("Color Master: Failed to calculate plugin integrations.",n)}return 0}function Gn(n,o){let e=n.createDiv("cm-like-card"),s=e.createDiv("cm-like-card-header").createDiv("cm-like-card-header-text");s.createEl("h3",{text:r("plugin.name")}),s.createEl("p",{text:r("likeCard.description")});let i=e.createDiv("cm-like-card-stats"),a=Ro(o),l=Vo(o),c=_o(o),d=$o(),p=o.plugin.settings.installDate||new Date().toISOString(),u=Math.max(1,Math.floor((Date.now()-new Date(p).getTime())/(1e3*60*60*24))),g=(h,E,S)=>{let w=i.createDiv("cm-stat-item"),v=w.createDiv("cm-stat-icon");(0,sn.setIcon)(v,h);let y=w.createDiv("cm-stat-text");y.createDiv({cls:"cm-stat-value",text:String(S)}),y.createDiv({cls:"cm-stat-label",text:E})};g("folder-tree",r("likeCard.profilesAndSnippets"),`${a} / ${l}`),g("palette",r("likeCard.customizableColors"),c),g("plug-zap",r("categories.pluginintegrations"),d),g("calendar-clock",r("likeCard.daysOfUse"),u);let m=e.createDiv("cm-like-card-actions"),f=(h,E,S)=>{let w=m.createEl("a",{cls:"cm-action-button",href:S,attr:{"aria-label":E,target:"_blank",rel:"noopener noreferrer"}});(0,sn.setIcon)(w,h)};f("github",r("likeCard.githubButton"),Mo),f("bug",r("likeCard.reportIssueButton"),Bo),f("git-pull-request-arrow",r("likeCard.syncVaultButton"),Fo),f("send",r("likeCard.telegramButton"),Ao)}var ce=require("obsidian");function Wn(n,o){let e=o.plugin,t=e.settings.profiles[e.settings.activeProfile];n.createEl("h3",{text:r("options.heading")}),n.createEl("hr");let s=n.createDiv("cm-advanced-settings-grid"),i=new ce.Setting(s).setName(r("options.liveUpdateName")).setDesc(r("options.liveUpdateDesc")).addSlider(p=>{p.setLimits(0,60,1).setValue(e.settings.colorUpdateFPS).setDynamicTooltip().onChange(async u=>{e.settings.colorUpdateFPS=u,await e.saveSettings(),e.restartColorUpdateLoop(),new ce.Notice(r("notices.fpsUpdated",u))})});i.nameEl.appendChild(i.controlEl),i.settingEl.classList.add("cm-card-with-header-control");let a=new ce.Setting(s).setName(r("options.addCustomVarName")).setDesc(r("options.addCustomVarDesc")).addButton(p=>{p.setButtonText(r("options.addNewVarButton")).setClass("cm-add-variable-button").onClick(()=>{new Lt(o.app,e,o,u=>{(async()=>{t.customVarMetadata||(t.customVarMetadata={}),t.vars[u.varName]=u.varValue,t.customVarMetadata[u.varName]={name:u.displayName,desc:u.description,type:u.varType},await e.saveSettings(),new ce.Notice(r("notices.varAdded",u.varName)),o.display()})().catch(g=>{console.error("Failed to add custom variable:",g)})}).open()})});a.nameEl.appendChild(a.controlEl),a.settingEl.classList.add("cm-card-with-header-control");let l=new ce.Setting(s).setName(r("options.resetPluginName")).setDesc(r("options.resetPluginDesc")).addButton(p=>{p.setButtonText(r("options.resetPluginButton")).setWarning().onClick(()=>{new Ft(o.app,e).open()}),(0,ce.setIcon)(p.buttonEl,"database-backup"),p.buttonEl.classList.add("cm-reset-plugin-icon-button")});l.nameEl.appendChild(l.controlEl),l.settingEl.classList.add("cm-card-with-header-control");let c=l.controlEl.querySelector(".setting-editor-button");c&&(c.textContent="");let d=new ce.Setting(s).setName(r("options.backgroundName")).setDesc(r("options.backgroundDesc"));d.nameEl.appendChild(d.controlEl),d.settingEl.classList.add("cm-card-with-header-control"),d.addButton(p=>{p.setIcon("plus").setTooltip(r("tooltips.addBg")).setClass("cm-control-icon-button").onClick(()=>{new Mt(o.app,e,o).open()})}).addButton(p=>{p.setIcon("package-search").setTooltip(r("tooltips.browseBg")).setClass("cm-control-icon-button").onClick(()=>{new Bt(o.app,e,o,()=>{}).open()})}).addButton(p=>{p.setIcon("trash").setTooltip(r("tooltips.removeBg")).setClass("cm-control-icon-button").onClick(()=>{let g=e.settings.profiles[e.settings.activeProfile]?.backgroundPath;if(!g){new ce.Notice(r("notices.noBgToRemove"));return}let m=[];for(let h in e.settings.profiles)e.settings.profiles[h].backgroundPath===g&&m.push(h);let f=new DocumentFragment;if(f.append(r("modals.confirmation.deleteGlobalBgDesc")),m.length>0){let h=f.createEl("ul",{cls:"cm-profile-list-modal"});m.forEach(E=>{h.createEl("li").createEl("strong",{text:E})})}new ie(o.app,e,r("modals.confirmation.deleteGlobalBgTitle"),f,()=>{(async()=>{await e.removeBackgroundMediaByPath(g),new ce.Notice(r("notices.bgDeleted"))})().catch(h=>{console.error("Failed to delete background image:",h)})},{buttonText:r("buttons.deleteAnyway"),buttonClass:"mod-warning"}).open()})}).addButton(p=>{p.setIcon("settings").setTooltip(r("tooltips.bgSettings")).setClass("cm-control-icon-button").onClick(()=>{new It(o.app,e).open()})})}var re=require("obsidian");function Kn(n,o){let e=o.plugin;n.createEl("h3",{text:r("profileManager.heading"),cls:"cm-section-heading"});let t=e.settings.activeProfile,s=e.settings.profiles[t],i=s?.isCssProfile,a=new re.Setting(n).setName(r("profileManager.activeProfile")).setDesc(r("profileManager.activeProfileDesc")).setClass("cm-profile-manager-controls").addDropdown(c=>{for(let d in e.settings.profiles){let p=d;e.settings.profiles[d]?.isCssProfile&&(p+=" (CSS)"),c.addOption(d,p)}c.setValue(t),c.onChange(async d=>{e.removeInjectedCustomCss(),e.settings.activeProfile=d,e.pendingVarUpdates={},await e.saveSettings(),o.display()})}).addButton(c=>{let d=e.settings.profiles[e.settings.activeProfile];if(!d){c.buttonEl.hide();return}c.buttonEl.classList.add("cm-control-button");let p=u=>{switch(u){case"light":c.setIcon("sun").setTooltip(r("profileManager.tooltipThemeLight"));break;case"dark":c.setIcon("moon").setTooltip(r("profileManager.tooltipThemeDark"));break;case"auto":default:c.setIcon("sun-moon").setTooltip(r("profileManager.tooltipThemeAuto"));break}};p(d.themeType),c.buttonEl.addEventListener("click",()=>{(async()=>{let u=d.themeType,g;u==="light"?(g="dark",new re.Notice(r("notices.themeSwitchedDark"))):u==="dark"?(g="auto",new re.Notice(r("notices.themeSwitchedAuto"))):(g="light",new re.Notice(r("notices.themeSwitchedLight"))),d.themeType=g,p(g),await e.saveSettings()})().catch(u=>{console.error("Failed to switch theme type:",u)})})}).addButton(c=>{i&&s?c.setIcon("pencil").setTooltip(r("tooltips.editCssProfile")).onClick(()=>{let d={name:t,css:s.customCss||"",isProfile:!0};new _e(o.app,e,o,d).open()}):c.buttonEl.hide(),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{o.pinBtn=c,c.setIcon("pin").setTooltip(r("tooltips.pinSnapshot")).onClick(async()=>{await e.pinProfileSnapshot(e.settings.activeProfile),new re.Notice(r("notices.profilePinned")),o._updatePinButtons(),e.settings.profiles[e.settings.activeProfile].vars={},e.pendingVarUpdates={},o.display()}),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{o.resetPinBtn=c,c.setIcon("history").setTooltip(r("tooltips.resetToPinned")).onClick(()=>{let d=e.settings.activeProfile;new ie(o.app,e,r("modals.confirmation.resetProfileTitle"),r("modals.confirmation.resetProfileDesc"),()=>{(async()=>{await e.resetProfileToPinned(d),new re.Notice(r("notices.profileReset")),o.display()})().catch(p=>{console.error("Failed to reset profile:",p)})},{buttonText:r("buttons.reset"),buttonClass:"mod-cta"}).open()}),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{c.setButtonText(r("buttons.new")).onClick(()=>{new Tt(o.app,e,d=>{(async()=>{if(!d||!d.name)return;if(e.settings.profiles[d.name]){new re.Notice(r("notices.profileNameExists",d.name));return}let p={},u=d.themeType,g=u;u==="auto"&&(g=document.body.classList.contains("theme-dark")?"dark":"light"),e.settings.profiles[d.name]={vars:p,themeType:g,snippets:[],noticeRules:{text:[],background:[]}},e.settings.activeProfile=d.name,e.pendingVarUpdates={},await e.saveSettings(),o.display()})().catch(p=>{console.error("Failed to create new profile:",p)})}).open()}),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{c.setButtonText(r("buttons.delete")).onClick(()=>{if(Object.keys(e.settings.profiles).length<=1){new re.Notice(r("notices.cannotDeleteLastProfile"));return}let d=r("modals.deleteProfile.confirmation",e.settings.activeProfile);new ie(o.app,e,r("modals.deleteProfile.title"),d,()=>{e.removeInjectedCustomCss(),delete e.settings.profiles[e.settings.activeProfile],e.settings.activeProfile=Object.keys(e.settings.profiles)[0],e.pendingVarUpdates={},e.saveSettings(),o.display(),new re.Notice(r("notices.profileDeleted"))}).open()}),c.buttonEl.classList.add("cm-control-button")}),l=e.app.customCss.theme;if(l){let c=a.nameEl.createSpan({cls:"cm-theme-warning-icon"});(0,re.setIcon)(c,"alert-triangle"),c.setAttr("aria-label",r("settings.themeWarningTooltip",l))}a.settingEl.classList.add("cm-active-profile-controls"),o._updatePinButtons()}var K=require("obsidian");function zo(n,o){let e=o.plugin;if(o.snippetSortable&&o.snippetSortable.destroy(),!Ve){console.warn("Color Master: SortableJS library not found.");return}let t=e.settings.snippetsLocked||!1;o.snippetSortable=new Ve(n,{handle:".cm-snippet-drag-handle",animation:160,ghostClass:"cm-snippet-ghost",dragClass:"cm-snippet-dragged",disabled:t,onEnd:s=>{(async()=>{let{oldIndex:i,newIndex:a}=s;if(i===a)return;let l=e.settings.globalSnippets||[],c=e.settings.profiles[e.settings.activeProfile].snippets||[],d=l.length;if(i=d){o.display(),new K.Notice(r("notices.snippetScopeMove"));return}let[p]=l.splice(i,1);l.splice(a,0,p)}else{if(a{console.error("Failed to reorder snippets:",i)})}})}function Qn(n,o){let e=o.plugin,t=n.createDiv({cls:"cm-snippets-header"}),s=e.settings.snippetsLocked||!1;t.createEl("h3",{text:r("snippets.heading")});let i=new K.Setting(t).setClass("cm-snippets-add-button");i.addExtraButton(u=>{u.setIcon(s?"lock":"lock-open").setTooltip(s?r("tooltips.unlockSnippets"):r("tooltips.lockSnippets")).onClick(async()=>{e.settings.snippetsLocked=!s,await e.saveSettings(),o.display(),new K.Notice(s?r("notices.snippetsUnlocked"):r("notices.snippetsLocked"))}),u.extraSettingsEl.classList.add("cm-snippet-lock-btn"),s&&u.extraSettingsEl.classList.add("is-locked")}),i.addButton(u=>{u.setButtonText(r("snippets.createButton")).setCta().onClick(()=>{new et(o.app,e,o,null).open()})});let a=e.settings.profiles[e.settings.activeProfile];if(!a)return;let l=e.settings.globalSnippets||[],c=Array.isArray(a.snippets)?a.snippets:[],d=n.createDiv({cls:"cm-snippets-list-container"});if(l.length===0&&c.length===0){d.createDiv("cm-snippets-empty-state").setText(r("snippets.noSnippetsDesc"));return}let p=(u,g,m)=>{let f=d.createDiv({cls:"setting-item cm-snippet-item"}),h=f.createDiv({cls:"cm-snippet-drag-container"}),E=h.createDiv({cls:"cm-snippet-drag-handle"});(0,K.setIcon)(E,"grip-vertical"),s&&E.classList.add("is-locked"),h.createEl("span",{cls:"cm-snippet-divider",text:"|"}),h.createDiv({cls:"cm-snippet-order-number",text:`${g+1}`});let w=f.createDiv("setting-item-info").createDiv({cls:"setting-item-name"});w.createSpan({text:u.name}),m&&w.createSpan({text:r("snippets.global"),cls:"cm-snippet-global-badge"});let v=f.createDiv("setting-item-control");new K.ToggleComponent(v).setValue(u.enabled).onChange(async y=>{u.enabled=y,await e.saveSettings()}),new K.ButtonComponent(v).setIcon("pencil").setTooltip(r("tooltips.editSnippet")).onClick(()=>{new et(o.app,e,o,u).open()}),new K.ButtonComponent(v).setIcon("copy").setTooltip(r("tooltips.copySnippetCss")).onClick(async y=>{if(!u.css){new K.Notice(r("notices.snippetEmpty"));return}await navigator.clipboard.writeText(u.css),new K.Notice(r("notices.snippetCssCopied"));let x=y.currentTarget;x&&((0,K.setIcon)(x,"check"),x.classList.add("is-success"),x.disabled=!0,setTimeout(()=>{x.classList.remove("is-success"),(0,K.setIcon)(x,"copy"),x.disabled=!1},1e3))}),new K.ButtonComponent(v).setIcon("trash").setTooltip(r("tooltips.deleteSnippet")).onClick(()=>{new ie(o.app,e,r("modals.confirmation.deleteSnippetTitle",u.name),r("modals.confirmation.deleteSnippetDesc"),()=>{(async()=>{let y=m?e.settings.globalSnippets:e.settings.profiles[e.settings.activeProfile].snippets,x=y.findIndex(k=>k.id===u.id);x>-1&&y.splice(x,1),await e.saveSettings(),o.display(),new K.Notice(r("notices.snippetDeleted"))})().catch(y=>{console.error("Failed to delete snippet:",y)})}).open()})};l.forEach((u,g)=>p(u,g,!0)),c.forEach((u,g)=>p(u,g+l.length,!1)),zo(d,o)}var Rt=class extends R.PluginSettingTab{constructor(e,t){super(e,t);this.resetPinBtn=null;this.pinBtn=null;this.plugin=t,this.snippetSortable=null}updateColorPickerAppearance(e,t){let s=e.value.toLowerCase().trim();if(s==="transparent"||s==="")t.classList.add("is-transparent"),t.value="#ffffff";else if(s.startsWith("#")&&(s.length===9||s.length===5)){t.classList.remove("is-transparent");let i="#ffffff";if(s.length===9)i=s.substring(0,7);else if(s.length===5){let a=s[1],l=s[2],c=s[3];i=`#${a}${a}${l}${l}${c}${c}`}try{t.value=i}catch{console.warn(`Color Master: Invalid HEX for color picker: ${i}`),t.value="#ffffff"}}else{t.classList.remove("is-transparent");try{t.value=s}catch{t.value="#ffffff"}}}_clearSearchAndFilters(){if(!this.searchInput||!this.sectionSelect)return;this.searchInput.value="",this.sectionSelect.value="",this._searchState.query="",this._searchState.section="",this.plugin.settings.lastSearchQuery="",this.plugin.settings.lastSearchSection="",this.plugin.saveData(this.plugin.settings).catch(s=>{console.error("Failed to save search input state:",s)});let e=this.containerEl.querySelector('button[data-cm-action="filter"]'),t=this.containerEl.querySelector(".cm-search-filter-options");e&&e.classList.remove("is-active"),t&&t.classList.add("is-hidden"),this._applySearchFilter()}initSearchUI(e){this._searchState={query:this.plugin.settings.lastSearchQuery||"",regex:!1,caseSensitive:!1,section:this.plugin.settings.lastSearchSection||""};let t=e.createDiv({cls:"cm-search-bar-container"}),s=t.createDiv({cls:"cm-search-input-container"}),i=new R.SearchComponent(s).setPlaceholder(r("settings.searchPlaceholder")).setValue(this._searchState.query).onChange(g=>{this._searchState.regex||(this._searchState.query=g,this.plugin.settings.lastSearchQuery=g,this.plugin.saveData(this.plugin.settings).catch(m=>{console.error("Failed to save search/filter reset state:",m)}),u())});this.searchInput=i.inputEl,this.searchInput.addEventListener("keydown",g=>{g.key==="Enter"&&this._searchState.regex&&(this._searchState.query=g.target.value,u())});let a=t.createDiv({cls:"cm-search-actions"});this.caseToggle=a.createEl("button",{cls:"cm-search-action-btn"}),this.caseToggle.textContent="Aa",this.caseToggle.setAttr("aria-label",r("settings.ariaCase")),this.regexToggle=a.createEl("button",{cls:"cm-search-action-btn"}),(0,R.setIcon)(this.regexToggle,"regex"),this.regexToggle.setAttr("aria-label",r("settings.ariaRegex"));let l=a.createDiv({cls:"cm-search-filter-options is-hidden"}),c=new R.DropdownComponent(l).addOption("",r("settings.allSections")).onChange(async g=>{this._searchState.section=g,this.plugin.settings.lastSearchSection=g,await this.plugin.saveData(this.plugin.settings),l.classList.toggle("is-filter-active",g!==""),u()});c.setValue(this._searchState.section),this._searchState.section&&l.classList.remove("is-hidden");try{Object.keys(X||{}).forEach(g=>{let m,f=g.toLowerCase();f==="interactive elements"?m="interactive":f==="ui elements"?m="ui":f==="graph view"?m="graph":f==="plugin integrations"?m="pluginintegrations":m=f.replace(/ /g,"");let h=r(`categories.${m}`)||g;c.addOption(g,h)})}catch{}let d=this.plugin.settings.profiles[this.plugin.settings.activeProfile];d?.customVarMetadata&&Object.keys(d.customVarMetadata).length>0&&c.addOption("Custom",r("categories.custom")),c.selectEl.classList.add("cm-search-small"),this.sectionSelect=c.selectEl;let p=a.createEl("button",{cls:"cm-search-action-btn"});(0,R.setIcon)(p,"sliders-horizontal"),p.dataset.cmAction="filter",this._searchState.section&&p.classList.add("is-active");let u=fe(()=>this._applySearchFilter(),180);this.caseToggle.addEventListener("click",()=>{this._searchState.caseSensitive=!this._searchState.caseSensitive,this.caseToggle.toggleClass("is-active",this._searchState.caseSensitive),u()}),this.regexToggle.addEventListener("click",()=>{this._searchState.regex=!this._searchState.regex,this.regexToggle.toggleClass("is-active",this._searchState.regex),this._searchState.regex?i.setPlaceholder(r("settings.regexPlaceholder")):i.setPlaceholder(r("settings.searchPlaceholder")),this._searchState.query=this.searchInput.value,u()}),p.addEventListener("click",()=>{p.classList.contains("is-active")?this._clearSearchAndFilters():(l.classList.remove("is-hidden"),p.classList.add("is-active"))}),this.sectionSelect.addEventListener("change",g=>{this._searchState.section=g.target.value,u()})}_applySearchFilter(){let e=this._searchState,t=this.plugin.settings.profiles[this.plugin.settings.activeProfile];if(this.staticContentContainer){let l=e.query.trim().length>0||e.section!=="";this.staticContentContainer.toggleClass("cm-hidden",l)}let s=Array.from(this.containerEl.querySelectorAll(".cm-var-row, .cm-searchable-row")),i=null;if(e.query&&e.query.trim()&&e.regex)try{i=new RegExp(e.query,e.caseSensitive?"":"i")}catch{i=null}s.forEach(l=>{let c=l.dataset.var||"",d=l.dataset.name||"",p=l.querySelector("input[type='text']"),u=p?p.value.trim():"",g="",m="",f=t?.customVarMetadata?.[c];if(f?(g=f.name,m=f.desc):(g=r(`colors.names.${c}`)||d,m=r(`colors.descriptions.${c}`)||""),e.section&&e.section!==l.dataset.category){l.classList.add("cm-hidden");return}if(e.query&&e.query.trim()){let h=e.query.trim(),E=!1;if(e.regex&&i)E=i.test(c)||i.test(u)||i.test(g)||i.test(m);else{let S=e.caseSensitive?h:h.toLowerCase(),w=e.caseSensitive?c:c.toLowerCase(),v=e.caseSensitive?u:u.toLowerCase(),y=e.caseSensitive?g:g.toLowerCase(),x=e.caseSensitive?m:m.toLowerCase();E=w.includes(S)||v.includes(S)||y.includes(S)||x.includes(S)}if(!E){l.classList.add("cm-hidden");return}}l.classList.remove("cm-hidden"),this._highlightRowMatches(l,e)}),this.containerEl.querySelectorAll(".cm-category-container").forEach(l=>{let c=l.dataset.category;this.containerEl.querySelector(`.cm-var-row[data-category="${c}"]:not(.cm-hidden)`)?l.classList.remove("cm-hidden"):l.classList.add("cm-hidden")})}_highlightRowMatches(e,t){let s=t.query.trim(),i=c=>{if(!c)return;c.dataset.originalText||(c.dataset.originalText=c.textContent||"");let d=c.dataset.originalText;if(c.empty(),!s){c.setText(d);return}let p=t.caseSensitive?"g":"gi",u;try{u=t.regex?new RegExp(s,p):new RegExp(s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),p);let g=0,m;for(;(m=u.exec(d))!==null;)m.index>g&&c.appendText(d.substring(g,m.index)),c.createSpan({cls:"cm-search-match",text:m[0]}),g=u.lastIndex;g{let a=i.dataset.varName;if(!a)return;let l=st[a];if(!l)return;let c=e[a]||t[a],d=e[l]||t[l];a==="--text-highlight-bg"&&([c,d]=[d,c]);let p=rt(d,c),u=at(p);i.className=`cm-accessibility-checker ${u.cls}`,i.setText(`${u.text} (${u.score})`)})}display(){this.renderDisplay().catch(e=>{console.error("Error in SettingsTab.renderDisplay:",e)})}async renderDisplay(){let e=await this.plugin.getThemeDefaults(),{containerEl:t}=this;t.classList.add("color-master-settings-tab"),t.empty(),t.classList.add("color-master-hidden");let s=this.plugin.settings.language,i=this.plugin.settings.customLanguages?.[s],a=s==="ar"||s==="fa",l=i?.isRtl===!0,c=a||l,d=this.plugin.settings.useRtlLayout,p=c&&d,u=!!i,g=!!me[s];this.containerEl.setAttribute("dir",p?"rtl":"ltr"),new R.Setting(t).setName(r("plugin.name")).setHeading(),new R.Setting(t).setName(r("settings.enablePlugin")).setDesc(r("settings.enablePluginDesc")).addToggle(v=>{v.setValue(this.plugin.settings.pluginEnabled).onChange(async y=>{this.plugin.settings.pluginEnabled=y,y?this.plugin.enableObservers():this.plugin.disableObservers(),await this.plugin.saveSettings(),this.plugin.restartColorUpdateLoop(),new R.Notice(y?r("notices.pluginEnabled"):r("notices.pluginDisabled"))})});let m=new R.Setting(t).setName(r("settings.language")).setDesc(r("settings.languageDesc")),f=m.nameEl.createSpan({cls:"cm-setting-icon"});(0,R.setIcon)(f,"languages"),m.nameEl.prepend(f);let h=m.controlEl.createDiv({cls:"cm-flyout-menu-container"}),E=h.createDiv({cls:"cm-flyout-menu-buttons"});new R.ButtonComponent(h).setIcon("settings").setTooltip(r("tooltips.langMenu")).setClass("cm-flyout-trigger-btn").onClick(()=>{E.toggleClass("is-open",!E.classList.contains("is-open"))}).buttonEl.classList.add("cm-control-icon-button"),new R.ButtonComponent(E).setIcon("info").setTooltip(r("tooltips.langInfo")).setClass("cm-control-icon-button").onClick(()=>{new xt(this.app,this.plugin).open()}),new R.ButtonComponent(E).setIcon("pencil").setTooltip(r("tooltips.editLang")).setClass("cm-control-icon-button").onClick(()=>{let v=this.plugin.settings.language;new tt(this.app,this.plugin,this,v).open()}),new R.ButtonComponent(E).setIcon("plus").setTooltip(r("modals.addLang.title")).setClass("cm-control-icon-button").onClick(()=>{new At(this.app,this.plugin,this).open()}),c&&new R.ButtonComponent(E).setIcon("settings-2").setTooltip(r("settings.languageSettingsModalTitle")).setClass("cm-control-icon-button").onClick(()=>{new Pt(this.app,this.plugin).open()}),g&&u&&new R.ButtonComponent(E).setIcon("history").setTooltip(r("tooltips.restoreDefaultLang")).setClass("mod-warning").onClick(()=>{new ie(this.app,this.plugin,r("modals.confirmation.restoreLangTitle"),r("modals.confirmation.restoreLangDesc",me[s]),()=>{(async()=>{this.plugin.settings.customLanguages&&(delete this.plugin.settings.customLanguages[s],Ce(this.plugin.settings),await this.plugin.saveSettings(),this.display(),new R.Notice(r("notices.langRestored")))})().catch(y=>{console.error("Failed to restore language:",y)})},{buttonText:r("buttons.restore"),buttonClass:"mod-warning"}).open()}).buttonEl.classList.add("cm-control-icon-button"),u&&!g&&new R.ButtonComponent(E).setIcon("trash").setTooltip(r("buttons.delete")+` (${i.languageName})`).setClass("mod-warning").onClick(()=>{new ie(this.app,this.plugin,r("modals.confirmation.deleteLangTitle"),r("modals.confirmation.deleteLangDesc",i.languageName),()=>{(async()=>{this.plugin.settings.customLanguages&&(delete this.plugin.settings.customLanguages[s],this.plugin.settings.language="en",Ce(this.plugin.settings),await this.plugin.saveSettings(),this.display(),new R.Notice(r("notices.langDeleted",i.languageName)))})().catch(y=>{console.error("Failed to delete custom language:",y)})},{buttonText:r("buttons.delete"),buttonClass:"mod-warning"}).open()}).buttonEl.classList.add("cm-control-icon-button"),m.addDropdown(v=>{let y=this.plugin.settings.customLanguages||{};for(let k in me){let F=me[k];y[k]&&(F=y[k].languageName),v.addOption(k,F)}let x=Object.keys(y);for(let k of x){if(me[k])continue;let F=y[k].languageName;v.addOption(k,F)}v.setValue(this.plugin.settings.language),v.onChange(async k=>{this.plugin.settings.language=k,Ce(this.plugin.settings),await this.plugin.saveSettings(),this.display()})}),this.initSearchUI(t),this.staticContentContainer=t.createDiv({cls:"cm-static-sections"}),Kn(this.staticContentContainer,this),qn(this.staticContentContainer,this),Wn(this.staticContentContainer,this),this.staticContentContainer.createEl("hr"),Qn(this.staticContentContainer,this),Jn(this.containerEl,this,e),t.createEl("hr"),Gn(t,this),this._applySearchFilter(),this._searchState.query&&setTimeout(()=>{let v=this.containerEl.querySelector(".cm-var-row:not(.cm-hidden)");v&&v.scrollIntoView({behavior:"smooth",block:"center"})},0);let w=this.containerEl.closest(".vertical-tab-content");if(!w)console.warn("Color Master: Could not find scroll container.");else{let v=fe(()=>{this.plugin.settings.lastScrollPosition=w.scrollTop,this.plugin.saveData(this.plugin.settings).catch(y=>{console.error("Failed to save scroll position:",y)})},200);this.plugin.registerDomEvent(w,"scroll",v),!this._searchState.query&&this.plugin.settings.lastScrollPosition&&w.scrollTo({top:this.plugin.settings.lastScrollPosition,behavior:"auto"})}t.classList.remove("color-master-hidden")}};var Yn,Vt=class extends H.Plugin{constructor(){super(...arguments);this.iconizeWatcherInterval=null;this.colorUpdateInterval=null;this.pendingVarUpdates={};this.settingTabInstance=null;this.liveNoticeRules=null;this.liveNoticeRuleType=null;this.cssHistory={};this.cachedThemeDefaults=null;this.lastCachedThemeMode=null}startColorUpdateLoop(){this.stopColorUpdateLoop();let e=this.settings.colorUpdateFPS;if(!this.settings.pluginEnabled||!e||e<=0)return;let t=1e3/e;this.colorUpdateInterval=window.setInterval(()=>{let s=Object.keys(this.pendingVarUpdates);if(s.length===0)return;let i=s.includes("--iconize-icon-color");for(let a of s){let l=this.pendingVarUpdates[a]??null;document.body.setCssProps({[a]:l})}if(this.pendingVarUpdates={},this.app.workspace.trigger("css-change"),i)try{this.forceIconizeColors()}catch(a){console.warn("forceIconizeColors failed in update loop",a)}},t)}stopColorUpdateLoop(){this.colorUpdateInterval&&(window.clearInterval(this.colorUpdateInterval),this.colorUpdateInterval=null)}restartColorUpdateLoop(){this.stopColorUpdateLoop(),this.startColorUpdateLoop()}_clearBackgroundMedia(){document.body.setCssProps({"--cm-background-image":null}),document.body.classList.remove("cm-workspace-background-active"),document.body.classList.remove("cm-settings-background-active");let e=document.getElementById("cm-background-video");e&&e.remove()}async applyTransparencyToVars(){let e=this.settings.profiles?.[this.settings.activeProfile];if(!e)return!1;let t=this.settings.activeProfile,i=Te[t]||Te.Default,a=["--background-primary","--background-secondary","--background-modifier-border","--titlebar-background-focused","--background-modifier-hover"],l=!1;for(let c of a)if(e.vars[c]!=="transparent"){let d=i[c];(!e.vars[c]||e.vars[c]===d)&&(e.vars[c]="transparent",l=!0,this.settings.colorUpdateFPS>0&&(this.pendingVarUpdates[c]="transparent"))}return l&&(await this.saveData(this.settings),this.settingTabInstance&&this.settingTabInstance.containerEl.offsetHeight>0&&this.settingTabInstance.display()),l}async applyBackgroundMedia(){let e=this.settings.profiles?.[this.settings.activeProfile];if(this._clearBackgroundMedia(),!e||e.backgroundEnabled===!1||!e.backgroundPath){e&&e.backgroundEnabled===!1&&await this._restoreDefaultBackgroundVars();return}await this.applyTransparencyToVars();let t=e.backgroundPath,s=e.backgroundType;if(s==="image"){let i=this.app.vault.adapter.getResourcePath(t);document.body.setCssProps({"--cm-background-image":`url("${i}")`}),document.body.classList.add("cm-workspace-background-active")}else if(s==="video"){let i=this.app.vault.adapter.getResourcePath(t),a=document.querySelector("#cm-background-video");a||(a=document.createElement("video"),a.id="cm-background-video",document.body.appendChild(a)),a.src=i,a.autoplay=!0,a.loop=!0,a.muted=e.videoMuted!==!1,a.playsInline=!0,a.setCssProps({opacity:(e.videoOpacity||.5).toString()}),a.load(),document.body.classList.add("cm-workspace-background-active")}}async _restoreDefaultBackgroundVars(){let e=this.settings.profiles?.[this.settings.activeProfile];if(!e)return!1;let t=this.settings.activeProfile,i=Te[t]||Te.Default,a=["--background-primary","--background-secondary","--background-modifier-border","--titlebar-background-focused","--background-modifier-hover"],l=!1;for(let c of a)if(e.vars[c]==="transparent"){let d=i[c];d&&(e.vars[c]=d,l=!0,this.settings.colorUpdateFPS>0&&(this.pendingVarUpdates[c]=d))}return l?(await this.saveData(this.settings),this.settingTabInstance&&this.settingTabInstance.containerEl.offsetHeight>0&&this.settingTabInstance.display(),this.settings.colorUpdateFPS===0&&this.applyPendingNow(),!0):!1}async _ensureBackgroundsFolderExists(){let e=`${this.app.vault.configDir}/backgrounds`;try{await this.app.vault.adapter.exists(e)||(await this.app.vault.adapter.mkdir(e),console.debug(`Color Master: Created global backgrounds folder at ${e}`))}catch(t){console.error("Color Master: Failed to create backgrounds folder on startup.",t)}}async removeBackgroundMediaByPath(e){if(!e)return;let t=["--background-primary","--background-secondary","--background-modifier-border","--titlebar-background-focused","--background-modifier-hover"],s=!1;for(let i in this.settings.profiles){let a=this.settings.profiles[i];if(a.backgroundPath===e){a.backgroundPath="",a.backgroundType=void 0,a.backgroundEnabled=!1;let l=Te[i]||Te.Default;for(let c of t)if(a.vars[c]==="transparent"){let d=l[c];d?a.vars[c]=d:delete a.vars[c]}s=!0}}try{await this.app.vault.adapter.exists(e)&&await this.app.vault.adapter.remove(e)}catch(i){console.warn(`Color Master: Could not delete background file '${e}'.`,i)}if(s){await this.saveSettings();let i=this.settings.profiles[this.settings.activeProfile];if(i.backgroundPath===""){for(let a of t){let l=i.vars[a];l&&(this.pendingVarUpdates[a]=l)}this.applyPendingNow()}}this.settingTabInstance&&this.settingTabInstance.display()}async setBackgroundMedia(e,t,s="prompt"){let i=this.settings.profiles?.[this.settings.activeProfile];if(!i)return;let{arrayBuffer:a,fileName:l}=await Cn(i,e,t),c=l.split(".").pop()?.toLowerCase(),d=c==="mp4"||c==="webm"?"video":"image",p=`${this.app.vault.configDir}/backgrounds`,u=`${p}/${l}`;try{await this.app.vault.adapter.exists(p)||await this.app.vault.adapter.mkdir(p);let g=await this.app.vault.adapter.exists(u);if(g&&s==="prompt"){new Ot(this.app,this,a,l,f=>{(async()=>{await this.setBackgroundMedia(a,l,f)})().catch(h=>{console.error("Failed to set background media:",h)})}).open();return}g&&s==="keep"&&(u=await yn(this.app.vault.adapter,u)),g&&s==="replace"&&await this.app.vault.adapter.remove(u),await this.app.vault.createBinary(u,a);let m=i.backgroundPath;i.backgroundPath=u,i.backgroundType=d,await this.saveSettings(),new H.Notice(r("notices.bgSet")),m&&m!==u&&s==="replace"&&await this.app.vault.adapter.exists(m)&&await this.app.vault.adapter.remove(m),this.settingTabInstance&&this.settingTabInstance.display()}catch(g){new H.Notice(r("notices.backgroundLoadError")),console.error("Color Master: Error setting background media:",g)}}applyCustomCssForProfile(e){try{e||(e=this.settings.activeProfile);let t=this.settings.profiles?.[e];if(this.removeInjectedCustomCss(),!t||!t.isCssProfile||!t.customCss)return;let s=document.createElement("style");s.id="cm-custom-css-for-profile",s.textContent=t.customCss,document.head.appendChild(s)}catch(t){console.warn("applyCustomCssForProfile failed",t)}}removeInjectedCustomCss(){try{let e=document.getElementById("cm-custom-css-for-profile");e&&e.remove()}catch(e){console.warn(e)}}applyCssSnippets(){this.removeCssSnippets();let e=this.settings.profiles[this.settings.activeProfile];if(!e)return;let t=this.settings.globalSnippets||[],s=Array.isArray(e.snippets)?e.snippets:[],a=[...t,...s].filter(Boolean).filter(l=>l.enabled&&l.css).map(l=>{let c=l.css.replace(/\bbody\s*(?=\{)/g,"body.theme-dark, body.theme-light");return`/* Snippet: ${l.name} ${l.isGlobal?"(Global)":""} */ +Cela vous permet \xE9galement de corriger les fautes de frappe ou d'am\xE9liorer les traductions des langues de base pour votre propre usage.`}},notices:{pluginEnabled:"Ma\xEEtre des Couleurs activ\xE9",pluginDisabled:"Ma\xEEtre des Couleurs d\xE9sactiv\xE9",profilePinned:"Couleurs du profil \xE9pingl\xE9es avec succ\xE8s !",profileReset:"Le profil a \xE9t\xE9 r\xE9initialis\xE9 \xE0 la capture \xE9pingl\xE9e.",noPinnedSnapshot:"Aucune capture \xE9pingl\xE9e trouv\xE9e pour ce profil.",profileNotFound:"Le profil actif n'a pas pu \xEAtre trouv\xE9.",noProfilesFound:"Aucun profil trouv\xE9.",activeProfileSwitched:n=>`Profil actif : ${n}`,graphColorsApplied:"Couleurs du graphique appliqu\xE9es !",invalidJson:"JSON invalide.",jsonMustHaveName:"Le JSON import\xE9 doit avoir une propri\xE9t\xE9 'name' pour cr\xE9er un nouveau profil.",profileCreatedSuccess:n=>`Le profil "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s.`,profileImportedSuccess:"Profil import\xE9 avec succ\xE8s.",noActiveProfileToCopy:"Aucun profil actif \xE0 copier.",noActiveProfileToExport:"Aucun profil actif \xE0 exporter.",snippetCssCopied:"CSS de l'extrait copi\xE9 dans le presse-papiers !",snippetEmpty:"Cet extrait est vide.",cssContentEmpty:"Le contenu CSS ne peut pas \xEAtre vide.",snippetNameExists:n=>`Le nom d'extrait "${n}" existe d\xE9j\xE0.`,profileNameExists:n=>`Le nom de profil "${n}" existe d\xE9j\xE0.`,profileUpdated:n=>`Profil "${n}" mis \xE0 jour.`,snippetUpdated:n=>`Extrait "${n}" mis \xE0 jour.`,snippetCreated:n=>`L'extrait "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s !`,snippetDeleted:"Extrait supprim\xE9 avec succ\xE8s.",snippetScopeMove:"Utilisez la fen\xEAtre de modification pour d\xE9placer un extrait.",profileCreatedFromCss:n=>`Le profil "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s !`,noColorHistory:"Aucun historique de couleur \xE0 restaurer.",colorRestored:n=>`Restaur\xE9 : ${n}`,textboxEmpty:"La zone de texte est vide. Collez du JSON ou importez d'abord un fichier.",fileLoaded:n=>`Fichier "${n}" charg\xE9 dans la zone de texte.`,exportSuccess:"Profil export\xE9 avec succ\xE8s !",jsonCopied:"JSON du profil copi\xE9 dans le presse-papiers avec succ\xE8s !",resetSuccess:"Les donn\xE9es de Color Master ont \xE9t\xE9 supprim\xE9es. Veuillez recharger Obsidian pour appliquer les changements.",fpsUpdated:n=>`FPS de la mise \xE0 jour en direct d\xE9fini sur : ${n}`,invalidProfileObject:"Le JSON ne semble pas \xEAtre un objet de profil valide.",profileCreated:n=>`Le profil "${n}" a \xE9t\xE9 cr\xE9\xE9 avec succ\xE8s !`,settingsSaved:"Param\xE8tres appliqu\xE9s avec succ\xE8s !",testSentence:n=>`La couleur de notification pour "${n}" ressemble \xE0 ceci :`,varNameEmpty:"Le nom de la variable ne peut pas \xEAtre vide.",varNameFormat:"Le nom de la variable doit commencer par '--'.",varExists:n=>`La variable "${n}" existe d\xE9j\xE0.`,varAdded:n=>`La variable "${n}" a \xE9t\xE9 ajout\xE9e avec succ\xE8s.`,iconizeNotFound:"Plugin Iconize non trouv\xE9. Veuillez l'installer et l'activer pour utiliser cette fonctionnalit\xE9.",themeCssLoaded:n=>`CSS du th\xE8me "${n}" charg\xE9 avec succ\xE8s.`,themeReadFailed:n=>`Impossible de lire le fichier du th\xE8me "${n}". Il est peut-\xEAtre prot\xE9g\xE9 ou manquant.`,snippetLoaded:n=>`CSS de l'extrait "${n}" charg\xE9 avec succ\xE8s.`,snippetReadFailed:n=>`Impossible de lire le fichier de l'extrait "${n}".`,themeSwitchedLight:"Passage en mode Clair",themeSwitchedDark:"Passage en mode Sombre",themeSwitchedAuto:"Passage en mode Auto",bgSet:"L'arri\xE8re-plan a \xE9t\xE9 d\xE9fini avec succ\xE8s.",bgRemoved:"L'arri\xE8re-plan a \xE9t\xE9 supprim\xE9.",backgroundLoadError:"\xC9chec du chargement de l'arri\xE8re-plan.",noBgToRemove:"Il n'y a pas d'arri\xE8re-plan actif \xE0 supprimer for ce profil.",bgDeleted:"L'arri\xE8re-plan et son fichier ont \xE9t\xE9 supprim\xE9s.",backgroundUrlLoadError:"\xC9chec du t\xE9l\xE9chargement de l'arri\xE8re-plan depuis l'URL.",backgroundPasteError:"Le contenu coll\xE9 n'est pas un fichier d'arri\xE8re-plan ou une URL valide.",downloadingFromUrl:n=>`T\xE9l\xE9chargement depuis ${n}...`,pastedBase64Image:"Image Base64 coll\xE9e",pastedImage:n=>`Image "${n}" coll\xE9e`,invalidFilename:"Nom de fichier invalide.",filenameExists:n=>`Le nom de fichier "${n}" existe d\xE9j\xE0.`,renameSuccess:n=>`Renomm\xE9 en "${n}"`,renameError:"Erreur lors du changement de nom du fichier.",profileDeleted:"Profil supprim\xE9 avec succ\xE8s.",jpgQualitySet:n=>`Qualit\xE9 JPG r\xE9gl\xE9e sur ${n}%`,cannotDeleteLastProfile:"Vous ne pouvez pas supprimer le dernier profil.",noKeywordsToTest:"Cette r\xE8gle n'a pas de mots-cl\xE9s \xE0 tester.",langNameEmpty:"Le nom de la langue ne peut pas \xEAtre vide.",langCodeEmpty:"Le code de la langue ne peut pas \xEAtre vide.",langCodeCore:n=>`Le code "${n}" est r\xE9serv\xE9 \xE0 une langue de base. Veuillez en choisir un autre.`,langCodeExists:n=>`Une langue personnalis\xE9e avec le code "${n}" existe d\xE9j\xE0.`,langNameExists:n=>`Une langue personnalis\xE9e portant le nom "${n}" existe d\xE9j\xE0.`,langNameCore:n=>`Le nom "${n}" est r\xE9serv\xE9 \xE0 une langue de base. Veuillez en choisir un autre.`,langCreated:n=>`Langue cr\xE9\xE9e avec succ\xE8s : ${n}`,langSaved:n=>`Traductions enregistr\xE9es avec succ\xE8s pour : ${n}`,langExported:n=>`${n}.json export\xE9 avec succ\xE8s`,langImported:n=>`Traductions import\xE9es avec succ\xE8s depuis ${n}`,langCopiedJson:"Traductions JSON copi\xE9es dans le presse-papiers.",langPastedJson:n=>`${n} traductions appliqu\xE9es avec succ\xE8s.`,langDeleted:n=>`Langue supprim\xE9e : ${n}`,langRestored:"Langue restaur\xE9e aux valeurs par d\xE9faut.",deleteBackgroundsError:n=>`\xC9chec de la suppression du dossier des arri\xE8re-plans : ${n}`,snippetsLocked:"Extraits verrouill\xE9s (Glissement d\xE9sactiv\xE9).",snippetsUnlocked:"Extraits d\xE9verrouill\xE9s."},tooltips:{editCssProfile:"Modifier le profil CSS",pinSnapshot:"\xC9pingler les couleurs actuelles comme une capture",pinSnapshotDate:n=>`Couleurs \xE9pingl\xE9es le ${n}. Cliquez pour r\xE9-\xE9pingler.`,resetToPinned:"R\xE9initialiser aux couleurs \xE9pingl\xE9es",editSnippet:"Modifier l'extrait",copySnippetCss:"Copier le CSS dans le presse-papiers",deleteSnippet:"Supprimer l'extrait",setTransparent:"Rendre transparent",undoChange:"Annuler la derni\xE8re modification",dragReorder:"Glisser pour r\xE9organiser",testRule:"Tester cette r\xE8gle avec un mot-cl\xE9 al\xE9atoire",deleteCustomVar:"Supprimer la variable personnalis\xE9e",iconizeSettings:"Param\xE8tres d'Iconize",themeLight:"Th\xE8me : Forcer le mode Clair (Cliquer pour passer au Sombre)",themeDark:"Th\xE8me : Forcer le mode Sombre (Cliquer pour passer en Auto)",themeAuto:"Th\xE8me : Auto (Suit Obsidian) (Cliquer pour passer au Clair)",addBg:"Ajouter un arri\xE8re-plan",removeBg:"Supprimer l'arri\xE8re-plan",bgSettings:"Param\xE8tres d'arri\xE8re-plan",browseBg:"Parcourir les arri\xE8re-plans stock\xE9s",iconizeNotInstalled:"Plugin non install\xE9 ou d\xE9sactiv\xE9. Veuillez installer et activer 'Iconize' pour utiliser cette fonctionnalit\xE9.",editLang:"Modifier la langue s\xE9lectionn\xE9e",langMenu:"Options de langue",langInfo:"Pourquoi cr\xE9er/modifier des langues ?",restoreDefaultLang:"Restaurer les traductions par d\xE9faut",lockSnippets:"Verrouiller le glissement",unlockSnippets:"D\xE9verrouiller le glissement"},commands:{toggleTheme:"Changer le th\xE8me du profil actif",enableDisable:"Activer & D\xE9sactiver",cycleNext:"Profil suivant",cyclePrevious:"Profil pr\xE9c\xE9dent",openSettings:"Ouvrir les param\xE8tres"},likeCard:{tagline:"Personnalisez votre Obsidian \u2014 modifiez, enregistrez et partagez vos profils de couleurs",description:"Moteur de th\xE8mes pour Obsidian \u2014 contr\xF4lez les th\xE8mes et les palettes de couleurs",profilesAndSnippets:"Profils et extraits",customizableColors:"Couleurs personnalisables",daysOfUse:"Jours d'utilisation",githubButton:"Mettre une \xE9toile sur GitHub",reportIssueButton:"Signaler un probl\xE8me",syncVaultButton:"Synchroniser votre coffre",telegramButton:"Telegram"},colors:{names:{"--iconize-icon-color":"Couleur des ic\xF4nes Iconize","--background-primary":"Arri\xE8re-plan principal","--background-primary-alt":"Arri\xE8re-plan principal (Alt)","--background-secondary":"Arri\xE8re-plan secondaire","--background-secondary-alt":"Arri\xE8re-plan secondaire (Alt)","--background-modifier-border":"Bordure","--background-modifier-border-hover":"Bordure (Survol)","--background-modifier-border-focus":"Bordure (Focus)","--background-modifier-flair":"Arri\xE8re-plan Flair","--background-modifier-hover":"Arri\xE8re-plan (Survol)","--background-modifier-active":"Arri\xE8re-plan (Actif)","--text-normal":"Texte normal","--text-muted":"Texte estomp\xE9","--text-faint":"Texte faible","--text-on-accent":"Texte sur accent","--text-accent":"Texte accentu\xE9","--text-accent-hover":"Texte accentu\xE9 (Survol)","--text-selection":"S\xE9lection de texte","--checklist-done-color":"T\xE2che coch\xE9e","--tag-color":"Texte des tags","--tag-color-hover":"Texte des tags (Survol)","--tag-bg":"Fond des tags","--h1-color":"Couleur H1","--h2-color":"Couleur H2","--h3-color":"Couleur H3","--h4-color":"Couleur H4","--h5-color":"Couleur H5","--h6-color":"Couleur H6","--hr-color":"Ligne horizontale","--blockquote-border-color":"Bordure de citation","--blockquote-color":"Texte de citation","--blockquote-bg":"Fond de citation","--code-normal":"Texte de code en ligne","--code-background":"Fond de code en ligne","--text-highlight-bg":"Fond de texte surlign\xE9","--interactive-normal":"Interactif Normal","--interactive-hover":"Interactif (Survol)","--interactive-accent":"Interactif Accent","--interactive-accent-hover":"Interactif Accent (Survol)","--interactive-success":"Couleur de succ\xE8s","--interactive-error":"Couleur d'erreur","--interactive-warning":"Couleur d'avertissement","--titlebar-background":"Fond de la barre de titre","--titlebar-background-focused":"Fond de la barre de titre (Focus)","--titlebar-text-color":"Texte de la barre de titre","--sidebar-background":"Fond de la barre lat\xE9rale","--sidebar-border-color":"Bordure de la barre lat\xE9rale","--header-background":"Fond de l'en-t\xEAte","--header-border-color":"Bordure de l'en-t\xEAte","--vault-name-color":"Nom du coffre","--cm-notice-text-default":"Texte de notification par d\xE9faut","--cm-notice-bg-default":"Fond de notification par d\xE9faut","--graph-line":"Ligne du graphique","--graph-node":"N\u0153ud du graphique","--graph-text":"Texte du graphique","--graph-node-unresolved":"N\u0153ud non r\xE9solu","--graph-node-focused":"N\u0153ud focalis\xE9","--graph-node-tag":"N\u0153ud de tag","--graph-node-attachment":"N\u0153ud de pi\xE8ce jointe","--scrollbar-thumb-bg":"Curseur de la barre de d\xE9filement","--scrollbar-bg":"Fond de la barre de d\xE9filement","--divider-color":"S\xE9parateur"},descriptions:{"--iconize-icon-color":"D\xE9finit la couleur de toutes les ic\xF4nes ajout\xE9es par le plugin Iconize. Cela remplacera les propres param\xE8tres de couleur d'Iconize.","--background-primary":"Couleur de fond principale pour toute l'application, en particulier pour les volets d'\xE9dition et de notes.","--background-primary-alt":"Une couleur de fond alternative, souvent utilis\xE9e pour la ligne active dans l'\xE9diteur.","--background-secondary":"Arri\xE8re-plan secondaire, g\xE9n\xE9ralement utilis\xE9 pour les barres lat\xE9rales et autres panneaux d'interface.","--background-secondary-alt":"Un arri\xE8re-plan secondaire alternatif, utilis\xE9 pour le fichier actif de l'explorateur de fichiers.","--background-modifier-border":"La couleur des bordures sur divers \xE9l\xE9ments de l'interface comme les boutons et les entr\xE9es.","--background-modifier-border-hover":"La couleur de la bordure lorsque vous survolez un \xE9l\xE9ment.","--background-modifier-border-focus":"La couleur de la bordure pour un \xE9l\xE9ment focalis\xE9, comme un champ de texte s\xE9lectionn\xE9.","--background-modifier-flair":"Couleur de fond pour les \xE9l\xE9ments sp\xE9ciaux de l'interface, comme l'\xE9tat 'Synchronisation' ou 'Indexation'.","--background-modifier-hover":"La couleur de fond des \xE9l\xE9ments lorsque vous les survolez (par exemple, les \xE9l\xE9ments de liste).","--background-modifier-active":"La couleur de fond d'un \xE9l\xE9ment lorsqu'il est activement cliqu\xE9 ou s\xE9lectionn\xE9.","--text-normal":"La couleur de texte par d\xE9faut pour toutes les notes et la plupart de l'interface.","--text-muted":"Une couleur de texte l\xE9g\xE8rement estomp\xE9e, utilis\xE9e pour des informations moins importantes comme les m\xE9tadonn\xE9es de fichier.","--text-faint":"La couleur de texte la plus estomp\xE9e, pour un texte d'interface tr\xE8s subtil ou des \xE9l\xE9ments d\xE9sactiv\xE9s.","--text-on-accent":"Couleur de texte qui appara\xEEt sur des fonds accentu\xE9s (comme sur un bouton principal).","--text-accent":"La couleur d'accentuation principale pour le texte, utilis\xE9e pour les liens et les \xE9l\xE9ments d'interface mis en \xE9vidence.","--text-accent-hover":"La couleur du texte accentu\xE9 (comme les liens) lorsque vous le survolez.","--text-selection":"La couleur de fond du texte que vous avez s\xE9lectionn\xE9 avec votre curseur.","--checklist-done-color":"La couleur de la coche et du texte pour une t\xE2che termin\xE9e.","--tag-color":"D\xE9finit la couleur du texte des #tags.","--tag-color-hover":"D\xE9finit la couleur du texte des #tags lors du survol.","--tag-bg":"D\xE9finit la couleur de fond des #tags, permettant une forme de 'pilule'.","--h1-color":"La couleur du texte des titres H1.","--h2-color":"La couleur du texte des titres H2.","--h3-color":"La couleur du texte des titres H3.","--h4-color":"La couleur du texte des titres H4.","--h5-color":"La couleur du texte des titres H5.","--h6-color":"La couleur du texte des titres H6.","--hr-color":"La couleur de la ligne de s\xE9paration horizontale cr\xE9\xE9e avec `---`.","--blockquote-border-color":"La couleur de la bordure verticale sur le c\xF4t\xE9 gauche d'une citation.","--blockquote-color":"La couleur du texte pour le contenu \xE0 l'int\xE9rieur d'une citation.","--blockquote-bg":"D\xE9finit la couleur de fond des \xE9l\xE9ments de citation (>).","--code-normal":"D\xE9finit la couleur du texte \xE0 l'int\xE9rieur du code en ligne (entre apostrophes inverses).","--code-background":"D\xE9finit la couleur de fond pour les blocs de code en ligne.","--text-highlight-bg":"D\xE9finit la couleur de fond pour le texte surlign\xE9 (==comme ceci==).","--interactive-normal":"La couleur de fond pour les \xE9l\xE9ments interactifs comme les boutons.","--interactive-hover":"La couleur de fond pour les \xE9l\xE9ments interactifs lors du survol.","--interactive-accent":"La couleur d'accentuation pour les \xE9l\xE9ments interactifs importants (par exemple, le bouton 'Cr\xE9er').","--interactive-accent-hover":"La couleur d'accentuation pour les \xE9l\xE9ments interactifs importants lors du survol.","--interactive-success":"Couleur indiquant une op\xE9ration r\xE9ussie (par exemple, vert).","--interactive-error":"Couleur indiquant une erreur (par exemple, rouge).","--interactive-warning":"Couleur indiquant un avertissement (par exemple, jaune).","--titlebar-background":"La couleur de fond de la barre de titre de la fen\xEAtre principale.","--titlebar-background-focused":"La couleur de fond de la barre de titre lorsque la fen\xEAtre est active.","--titlebar-text-color":"La couleur du texte dans la barre de titre.","--sidebar-background":"Cible sp\xE9cifiquement l'arri\xE8re-plan des barres lat\xE9rales.","--sidebar-border-color":"La couleur de la bordure \xE0 c\xF4t\xE9 des barres lat\xE9rales.","--header-background":"L'arri\xE8re-plan pour les en-t\xEAtes dans les volets (par exemple, l'en-t\xEAte du titre de la note).","--header-border-color":"La couleur de la bordure sous les en-t\xEAtes de volet.","--vault-name-color":"La couleur du nom de votre coffre dans le coin sup\xE9rieur gauche.","--cm-notice-text-default":"D\xE9finit la couleur de texte par d\xE9faut pour toutes les notifications, sauf si elle est remplac\xE9e par une r\xE8gle.","--cm-notice-bg-default":"D\xE9finit la couleur de fond par d\xE9faut pour toutes les notifications, sauf si elle est remplac\xE9e par une r\xE8gle.","--graph-line":"La couleur des lignes de connexion entre les notes dans la vue graphique.","--graph-node":"La couleur des n\u0153uds circulaires pour les notes existantes.","--graph-text":"La couleur des \xE9tiquettes de texte sur les n\u0153uds du graphique.","--graph-node-unresolved":"La couleur des n\u0153uds pour les notes qui n'existent pas encore (liens non r\xE9solus).","--graph-node-focused":"Couleur du n\u0153ud qui est focalis\xE9 ou survol\xE9 (n\u0153ud en surbrillance).","--graph-node-tag":"Couleur des n\u0153uds repr\xE9sentant les tags lorsque les tags sont affich\xE9s dans le graphique.","--graph-node-attachment":"Couleur des n\u0153uds repr\xE9sentant les pi\xE8ces jointes (par exemple, image ou autres fichiers li\xE9s).","--scrollbar-thumb-bg":"La couleur de la partie d\xE9pla\xE7able de la barre de d\xE9filement.","--scrollbar-bg":"La couleur de la piste de la barre de d\xE9filement (l'arri\xE8re-plan).","--divider-color":"La couleur pour les lignes de s\xE9paration g\xE9n\xE9rales de l'interface, comme les bordures entre les param\xE8tres."}}};var pn,Ie={en:cn,ar:ln,fa:dn,fr:un},nt={},He={};function gn(n){pn=n,nt=Se(Ie[an]),Ce(n.settings)}function Ce(n){let o=n.language,e=n.customLanguages?.[o];if(Ie[o]){console.debug(`Color Master: Loading core language "${o}"`);let t=Se(Ie[o]);e&&e.translations?(console.debug(`Color Master: Applying ${Object.keys(e.translations).length} overrides for "${o}"`),He={...t,...e.translations}):He=t}else e?(console.debug(`Color Master: Loading custom language "${o}"`),He=e.translations):(console.debug(`Color Master: Language "${o}" not found, using default.`),He=nt)}var r=(n,...o)=>{if(!pn)return console.error("ColorMaster: 'T' is not initialized yet."),n;let e=He[n];return e===void 0&&(e=nt[n]),e===void 0?(console.warn(`ColorMaster: Missing translation for key: ${n}`),n):typeof e=="function"?e(...o):e};function Se(n,o="",e={}){for(let t in n)if(Object.prototype.hasOwnProperty.call(n,t)){let s=o?`${o}.${t}`:t,i=n[t];typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof i!="function"?Se(i,s,e):Array.isArray(i)||(e[s]=i)}return e}function hn(){return nt}function mn(n){n.addCommand({id:"toggle",name:r("commands.enableDisable"),callback:async()=>{n.settings.pluginEnabled=!n.settings.pluginEnabled,await n.saveSettings(),new we.Notice(n.settings.pluginEnabled?r("notices.pluginEnabled"):r("notices.pluginDisabled"))}}),n.addCommand({id:"profile-next",name:r("commands.cycleNext"),callback:async()=>{let o=Object.keys(n.settings.profiles||{});if(o.length===0){new we.Notice(r("notices.noProfilesFound"));return}let e=o.indexOf(n.settings.activeProfile),t=o[(e+1)%o.length];n.settings.activeProfile=t,await n.saveSettings(),new we.Notice(r("notices.activeProfileSwitched",t))}}),n.addCommand({id:"profile-prev",name:r("commands.cyclePrevious"),callback:async()=>{let o=Object.keys(n.settings.profiles||{});if(o.length===0){new we.Notice(r("notices.noProfilesFound"));return}let t=(o.indexOf(n.settings.activeProfile)-1+o.length)%o.length,s=o[t];n.settings.activeProfile=s,await n.saveSettings(),new we.Notice(r("notices.activeProfileSwitched",s))}}),n.addCommand({id:"open-settings",name:r("commands.openSettings"),callback:()=>{let o=n.app;o.setting.open(),o.setting.openTabById(n.manifest.id)}}),n.addCommand({id:"toggle-theme",name:r("commands.toggleTheme"),callback:async()=>{let o=n.settings.activeProfile,e=n.settings.profiles[o];if(!e){new we.Notice(r("notices.profileNotFound"));return}let t=e.themeType||"auto",s,i;t==="light"?(s="dark",i=r("notices.themeSwitchedDark")):t==="dark"?(s="auto",i=r("notices.themeSwitchedAuto")):(s="light",i=r("notices.themeSwitchedLight")),e.themeType=s,await n.saveSettings(),new we.Notice(i)}})}var X={"Plugin Integrations":{"--iconize-icon-color":"#00aaff"},Backgrounds:{"--background-primary":"#1e1e1e","--background-primary-alt":"#252525","--background-secondary":"#2a2a2a","--background-secondary-alt":"#303030","--background-modifier-border":"#444444","--background-modifier-border-hover":"#555555","--background-modifier-border-focus":"#007acc","--background-modifier-flair":"#3a3a3a","--background-modifier-hover":"#3a3a3a","--background-modifier-active":"#4a4a4a"},Text:{"--text-normal":"#e0e0e0","--text-muted":"#999999","--text-faint":"#666666","--text-on-accent":"#ffffff","--text-accent":"#00aaff","--text-accent-hover":"#33bbff","--text-selection":"#007acc66","--h1-color":"#e0e0e0","--h2-color":"#d0d0d0","--h3-color":"#c0c0c0","--h4-color":"#b0b0b0","--h5-color":"#a0a0a0","--h6-color":"#909090"},Markdown:{"--hr-color":"#444444","--blockquote-border-color":"#007acc","--blockquote-color":"#d0d0d0","--blockquote-bg":"transparent","--tag-color":"#33bbff","--tag-color-hover":"#33bbff","--tag-bg":"#1e1e1e","--checklist-done-color":"#33bbff","--code-normal":"#e0e0e0","--code-background":"#2d2d2d","--text-highlight-bg":"#2c6887"},Notices:{"--cm-notice-text-default":"#e0e0e0","--cm-notice-bg-default":"#2a2a2a"},"Interactive Elements":{"--interactive-normal":"#5a5a5a","--interactive-hover":"#6a6a6a","--interactive-accent":"#007acc","--interactive-accent-hover":"#3399dd","--interactive-success":"#28a745","--interactive-error":"#dc3545","--interactive-warning":"#ffc107"},"UI Elements":{"--titlebar-background":"#252525","--titlebar-background-focused":"#303030","--titlebar-text-color":"#e0e0e0","--sidebar-background":"#252525","--sidebar-border-color":"#333333","--header-background":"#2a2a2a","--header-border-color":"#333333","--vault-name-color":"#e0e0e0"},"Graph View":{"--graph-line":"#444444","--graph-node":"#999999","--graph-text":"#e0e0e0","--graph-node-unresolved":"#dc3545","--graph-node-focused":"#ffffff","--graph-node-tag":"#86efac","--graph-node-attachment":"#60a5fa"},Misc:{"--scrollbar-thumb-bg":"#444444","--scrollbar-bg":"#2a2a2a","--divider-color":"#444444"}},ot={vars:{},themeType:"auto",snippets:[],convertImagesToJpg:!1,jpgQuality:85},fn={vars:{"--iconize-icon-color":"#00ff00","--background-primary":"#000000","--background-primary-alt":"#0a0a0a","--background-secondary":"#050505","--background-secondary-alt":"#101010","--background-modifier-border":"#223322","--background-modifier-border-hover":"#44ff44","--background-modifier-border-focus":"#00ff00","--background-modifier-flair":"#111111","--background-modifier-hover":"#1a1a1a","--background-modifier-active":"#002a00","--text-normal":"#f0f0f0","--text-muted":"#666666","--text-faint":"#444444","--text-on-accent":"#000000","--text-accent":"#00ff00","--text-accent-hover":"#88ff88","--text-selection":"#00ff004d","--text-highlight-bg":"#00640080","--interactive-normal":"#1c1c1c","--interactive-hover":"#2c2c2c","--interactive-accent":"#008a00","--interactive-accent-hover":"#00ff00","--interactive-success":"#28a745","--interactive-error":"#dc3545","--interactive-warning":"#ffc107","--titlebar-background":"#000000","--titlebar-background-focused":"#000000","--titlebar-text-color":"#f0f0f0","--sidebar-background":"#000000","--sidebar-border-color":"#002a00","--header-background":"#050505","--header-border-color":"#223322","--vault-name-color":"#00ff00","--scrollbar-thumb-bg":"#222222","--scrollbar-bg":"#000000","--divider-color":"#223322","--checklist-done-color":"#00ff00","--graph-line":"#000000","--graph-node":"#00ff00","--graph-text":"#ffffff","--graph-node-unresolved":"#00ff00","--graph-node-focused":"#000000","--graph-node-tag":"#000000","--graph-node-attachment":"#54ee20","--blockquote-color":"#54ee20","--tag-color":"#0bd62d"},themeType:"dark",snippets:[],convertImagesToJpg:!1,jpgQuality:85},bn={vars:{"--iconize-icon-color":"#FF8C00","--background-primary":"#F5F5F5","--background-primary-alt":"#f2eded","--background-secondary":"#f2eded","--background-secondary-alt":"#F0F0F0","--background-modifier-border":"#E0E0E0","--background-modifier-border-hover":"#FF8C00","--background-modifier-border-focus":"#F57C00","--background-modifier-flair":"#FFFFFF","--background-modifier-hover":"#EEEEEE","--background-modifier-active":"#E0E0E0","--text-normal":"#3c3434","--text-muted":"#ff7300","--text-faint":"#ff7b00","--text-on-accent":"#FFFFFF","--text-accent":"#F57C00","--text-accent-hover":"#FF9800","--text-selection":"#f27602","--text-highlight-bg":"#E0E0E0","--interactive-normal":"#F5F5F5","--interactive-hover":"#EEEEEE","--interactive-accent":"#FF8C00","--interactive-accent-hover":"#FFA726","--interactive-success":"#4CAF50","--interactive-error":"#F44336","--interactive-warning":"#FFC107","--titlebar-background":"#FFFFFF","--titlebar-background-focused":"#F7F7F7","--titlebar-text-color":"#e0e0e0","--sidebar-background":"#FFFFFF","--sidebar-border-color":"#E0E0E0","--header-background":"#FDFDFD","--header-border-color":"#E0E0E0","--vault-name-color":"#F57C00","--scrollbar-thumb-bg":"#BDBDBD","--scrollbar-bg":"#F5F5F5","--divider-color":"#E0E0E0","--checklist-done-color":"#757575","--graph-line":"#F57C00","--graph-node":"#999999","--graph-text":"#e0e0e0","--graph-node-unresolved":"#F57C00","--graph-node-focused":"#ffffff","--graph-node-tag":"#F57C00","--graph-node-attachment":"#F57C00"},themeType:"light",snippets:[],convertImagesToJpg:!1,jpgQuality:85},Te={Default:ot.vars,"OLED Matrix":fn.vars,"Citrus Zest":bn.vars},io={Default:ot,"OLED Matrix":fn,"Citrus Zest":bn},_t={advancedResetOptions:{deleteProfiles:!1,deleteSnippets:!1,deleteBackgrounds:!1,deleteSettings:!1},pluginEnabled:!0,language:"auto",useRtlLayout:!0,overrideIconizeColors:!0,cleanupInterval:5,colorUpdateFPS:10,activeProfile:"Default",profiles:JSON.parse(JSON.stringify(io)),globalSnippets:[],pinnedSnapshots:{}},st={"--text-normal":"--background-primary","--text-muted":"--background-primary","--text-faint":"--background-primary","--text-accent":"--background-primary","--text-accent-hover":"--background-primary","--h1-color":"--background-primary","--h2-color":"--background-primary","--h3-color":"--background-primary","--h4-color":"--background-primary","--h5-color":"--background-primary","--h6-color":"--background-primary","--blockquote-color":"--background-primary","--text-on-accent":"--interactive-accent","--vault-name-color":"--sidebar-background","--titlebar-text-color":"--titlebar-background","--graph-text":"--graph-node","--checklist-done-color":"--background-primary","--text-highlight-bg":"--text-normal","--tag-color":"--tag-bg"};var R=require("obsidian");function de(n){let o={};for(let e in n)o={...o,...n[e]};return o}function vn(n){let o=parseInt(n.startsWith("#")?n.substring(1):n,16),e=o>>16&255,t=o>>8&255,s=o>>0&255,i=[e,t,s].map(a=>(a/=255,a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)));return i[0]*.2126+i[1]*.7152+i[2]*.0722}function rt(n,o){let e=vn(n),t=vn(o),s=Math.max(e,t),i=Math.min(e,t);return(s+.05)/(i+.05)}function at(n){let o=n.toFixed(2);return n>=7?{text:"AAA",score:o,cls:"cm-accessibility-pass"}:n>=4.5?{text:"AA",score:o,cls:"cm-accessibility-pass"}:n>=3?{text:"AA Large",score:o,cls:"cm-accessibility-warn"}:{text:"Fail",score:o,cls:"cm-accessibility-fail"}}function ro(n,o){let e=n.plugins;return(Array.isArray(o)?o:[o]).some(s=>e.plugins[s])}function Ue(n){return ro(n,["obsidian-icon-folder","iconize"])}function fe(n,o=200){let e=null;return(...t)=>{e&&clearTimeout(e),e=setTimeout(()=>n.apply(this,t),o)}}async function yn(n,o){if(!await n.exists(o))return o;let e=o.split("/"),t=e.pop();if(!t)return o;let s=e.join("/"),i=t.split("."),a=i.length>1?i.pop():"",l=i.join("."),c=2,d=a?`${s}/${l}-${c}.${a}`:`${s}/${l}-${c}`;for(;await n.exists(d);)c++,d=a?`${s}/${l}-${c}.${a}`:`${s}/${l}-${c}`;return d}async function Cn(n,o,e){let t=e.split(".").pop()?.toLowerCase(),s=t==="jpg"||t==="jpeg",i=["png","webp","bmp"].includes(t||"");return!n||!n.convertImagesToJpg||s||!i?{arrayBuffer:o,fileName:e}:(console.debug(`Color Master: Converting ${e} to JPG...`),new Promise((a,l)=>{let c=new Blob([o]),d=URL.createObjectURL(c),p=new Image;p.onload=()=>{let u=document.createElement("canvas");u.width=p.width,u.height=p.height;let g=u.getContext("2d");if(!g)return URL.revokeObjectURL(d),l(new Error("Failed to get canvas context"));g.fillStyle="#FFFFFF",g.fillRect(0,0,u.width,u.height),g.drawImage(p,0,0),URL.revokeObjectURL(d);let m=(n.jpgQuality||85)/100;u.toBlob(f=>{if(!f){l(new Error("Failed to create JPG blob"));return}f.arrayBuffer().then(h=>{let E=e.substring(0,e.lastIndexOf("."))+".jpg";console.debug(`Color Master: Conversion complete. New size: ${h.byteLength} bytes`),a({arrayBuffer:h,fileName:E})}).catch(h=>{l(h instanceof Error?h:new Error(String(h)))})},"image/jpeg",m)},p.onerror=()=>{URL.revokeObjectURL(d),l(new Error("Failed to load image for conversion"))},p.src=d}))}function lt(n){let o={};for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e)){let t=e.split("."),s=o;for(let i=0;i"&&(o=o.substring(1)),n)try{if(n.matches)return n.matches(o);if(n.msMatchesSelector)return n.msMatchesSelector(o);if(n.webkitMatchesSelector)return n.webkitMatchesSelector(o)}catch{return!1}return!1}}function Mn(n){return n.host&&n!==document&&n.host.nodeType&&n.host!==n?n.host:n.parentNode}function pe(n,o,e,t){if(n){e=e||document;do{if(o!=null&&(o[0]===">"?n.parentNode===e&&bt(n,o):bt(n,o))||t&&n===e)return n;if(n===e)break}while(n=Mn(n))}return null}var xn=/\s+/g;function oe(n,o,e){if(n&&o)if(n.classList)n.classList[e?"add":"remove"](o);else{var t=(" "+n.className+" ").replace(xn," ").replace(" "+o+" "," ");n.className=(t+(e?" "+o:"")).replace(xn," ")}}function D(n,o,e){var t=n&&n.style;if(t){if(e===void 0)return document.defaultView&&document.defaultView.getComputedStyle?e=document.defaultView.getComputedStyle(n,""):n.currentStyle&&(e=n.currentStyle),o===void 0?e:e[o];!(o in t)&&o.indexOf("webkit")===-1&&(o="-webkit-"+o),t[o]=e+(typeof e=="string"?"":"px")}}function Ae(n,o){var e="";if(typeof n=="string")e=n;else do{var t=D(n,"transform");t&&t!=="none"&&(e=t+" "+e)}while(!o&&(n=n.parentNode));var s=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return s&&new s(e)}function Bn(n,o,e){if(n){var t=n.getElementsByTagName(o),s=0,i=t.length;if(e)for(;s=i:a=s<=i,!a)return t;if(t===ge())break;t=ke(t,!1)}return!1}function Re(n,o,e,t){for(var s=0,i=0,a=n.children;i2&&arguments[2]!==void 0?arguments[2]:{},s=t.evt,i=lo(t,So);Ze.pluginEvent.bind(L)(o,e,he({dragEl:C,parentEl:J,ghostEl:N,rootEl:z,nextEl:Pe,lastDownEl:gt,cloneEl:j,cloneHidden:xe,dragStarted:je,putSortable:Q,activeSortable:L.active,originalEvent:s,oldIndex:Fe,oldDraggableIndex:Ke,newIndex:se,newDraggableIndex:Ee,hideGhostForTarget:Hn,unhideGhostForTarget:Un,cloneNowHidden:function(){xe=!0},cloneNowShown:function(){xe=!1},dispatchSortableEvent:function(l){ee({sortable:e,name:l,originalEvent:s})}},i))};function ee(n){Co(he({putSortable:Q,cloneEl:j,targetEl:C,rootEl:z,oldIndex:Fe,oldDraggableIndex:Ke,newIndex:se,newDraggableIndex:Ee},n))}var C,J,N,z,Pe,gt,j,xe,Fe,se,Ke,Ee,ct,Q,Be=!1,vt=!1,yt=[],De,ue,Ht,Ut,Dn,Ln,je,Me,Qe,Ye=!1,dt=!1,ht,Z,jt=[],Qt=!1,Ct=[],wt=typeof document<"u",ut=en,Pn=Xe||ye?"cssFloat":"float",wo=wt&&!In&&!en&&"draggable"in document.createElement("div"),_n=(function(){if(wt){if(ye)return!1;var n=document.createElement("x");return n.style.cssText="pointer-events:auto",n.style.pointerEvents==="auto"}})(),$n=function(o,e){var t=D(o),s=parseInt(t.width)-parseInt(t.paddingLeft)-parseInt(t.paddingRight)-parseInt(t.borderLeftWidth)-parseInt(t.borderRightWidth),i=Re(o,0,e),a=Re(o,1,e),l=i&&D(i),c=a&&D(a),d=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+G(i).width,p=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+G(a).width;if(t.display==="flex")return t.flexDirection==="column"||t.flexDirection==="column-reverse"?"vertical":"horizontal";if(t.display==="grid")return t.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&l.float&&l.float!=="none"){var u=l.float==="left"?"left":"right";return a&&(c.clear==="both"||c.clear===u)?"vertical":"horizontal"}return i&&(l.display==="block"||l.display==="flex"||l.display==="table"||l.display==="grid"||d>=s&&t[Pn]==="none"||a&&t[Pn]==="none"&&d+p>s)?"vertical":"horizontal"},Eo=function(o,e,t){var s=t?o.left:o.top,i=t?o.right:o.bottom,a=t?o.width:o.height,l=t?e.left:e.top,c=t?e.right:e.bottom,d=t?e.width:e.height;return s===l||i===c||s+a/2===l+d/2},xo=function(o,e){var t;return yt.some(function(s){var i=s[ne].options.emptyInsertThreshold;if(!(!i||tn(s))){var a=G(s),l=o>=a.left-i&&o<=a.right+i,c=e>=a.top-i&&e<=a.bottom+i;if(l&&c)return t=s}}),t},zn=function(o){function e(i,a){return function(l,c,d,p){var u=l.options.group.name&&c.options.group.name&&l.options.group.name===c.options.group.name;if(i==null&&(a||u))return!0;if(i==null||i===!1)return!1;if(a&&i==="clone")return i;if(typeof i=="function")return e(i(l,c,d,p),a)(l,c,d,p);var g=(a?l:c).options.group.name;return i===!0||typeof i=="string"&&i===g||i.join&&i.indexOf(g)>-1}}var t={},s=o.group;(!s||Kt(s)!="object")&&(s={name:s}),t.name=s.name,t.checkPull=e(s.pull,!0),t.checkPut=e(s.put),t.revertClone=s.revertClone,o.group=t},Hn=function(){!_n&&N&&D(N,"display","none")},Un=function(){!_n&&N&&D(N,"display","")};wt&&!In&&document.addEventListener("click",function(n){if(vt)return n.preventDefault(),n.stopPropagation&&n.stopPropagation(),n.stopImmediatePropagation&&n.stopImmediatePropagation(),vt=!1,!1},!0);var Le=function(o){if(C){o=o.touches?o.touches[0]:o;var e=xo(o.clientX,o.clientY);if(e){var t={};for(var s in o)o.hasOwnProperty(s)&&(t[s]=o[s]);t.target=t.rootEl=e,t.preventDefault=void 0,t.stopPropagation=void 0,e[ne]._onDragOver(t)}}},ko=function(o){C&&C.parentNode[ne]._isOutsideThisEl(o.target)};function L(n,o){if(!(n&&n.nodeType&&n.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(n));this.el=n,this.options=o=ve({},o),n[ne]=this;var e={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(n.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return $n(n,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(a,l){a.setData("Text",l.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:L.supportPointer!==!1&&"PointerEvent"in window&&(!Ge||en),emptyInsertThreshold:5};Ze.initializePlugins(this,n,e);for(var t in e)!(t in o)&&(o[t]=e[t]);zn(o);for(var s in this)s.charAt(0)==="_"&&typeof this[s]=="function"&&(this[s]=this[s].bind(this));this.nativeDraggable=o.forceFallback?!1:wo,this.nativeDraggable&&(this.options.touchStartThreshold=1),o.supportPointer?B(n,"pointerdown",this._onTapStart):(B(n,"mousedown",this._onTapStart),B(n,"touchstart",this._onTapStart)),this.nativeDraggable&&(B(n,"dragover",this),B(n,"dragenter",this)),yt.push(this.el),o.store&&o.store.get&&this.sort(o.store.get(this)||[]),ve(this,bo())}L.prototype={constructor:L,_isOutsideThisEl:function(o){!this.el.contains(o)&&o!==this.el&&(Me=null)},_getDirection:function(o,e){return typeof this.options.direction=="function"?this.options.direction.call(this,o,e,C):this.options.direction},_onTapStart:function(o){if(o.cancelable){var e=this,t=this.el,s=this.options,i=s.preventOnFilter,a=o.type,l=o.touches&&o.touches[0]||o.pointerType&&o.pointerType==="touch"&&o,c=(l||o).target,d=o.target.shadowRoot&&(o.path&&o.path[0]||o.composedPath&&o.composedPath()[0])||c,p=s.filter;if(Mo(t),!C&&!(/mousedown|pointerdown/.test(a)&&o.button!==0||s.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&Ge&&c&&c.tagName.toUpperCase()==="SELECT")&&(c=pe(c,s.draggable,t,!1),!(c&&c.animated)&>!==c)){if(Fe=le(c),Ke=le(c,s.draggable),typeof p=="function"){if(p.call(this,o,c,this)){ee({sortable:e,rootEl:d,name:"filter",targetEl:c,toEl:t,fromEl:t}),te("filter",e,{evt:o}),i&&o.preventDefault();return}}else if(p&&(p=p.split(",").some(function(u){if(u=pe(d,u.trim(),t,!1),u)return ee({sortable:e,rootEl:u,name:"filter",targetEl:c,fromEl:t,toEl:t}),te("filter",e,{evt:o}),!0}),p)){i&&o.preventDefault();return}s.handle&&!pe(d,s.handle,t,!1)||this._prepareDragStart(o,l,c)}}},_prepareDragStart:function(o,e,t){var s=this,i=s.el,a=s.options,l=i.ownerDocument,c;if(t&&!C&&t.parentNode===i){var d=G(t);if(z=i,C=t,J=C.parentNode,Pe=C.nextSibling,gt=t,ct=a.group,L.dragged=C,De={target:C,clientX:(e||o).clientX,clientY:(e||o).clientY},Dn=De.clientX-d.left,Ln=De.clientY-d.top,this._lastX=(e||o).clientX,this._lastY=(e||o).clientY,C.style["will-change"]="all",c=function(){if(te("delayEnded",s,{evt:o}),L.eventCanceled){s._onDrop();return}s._disableDelayedDragEvents(),!En&&s.nativeDraggable&&(C.draggable=!0),s._triggerDragStart(o,e),ee({sortable:s,name:"choose",originalEvent:o}),oe(C,a.chosenClass,!0)},a.ignore.split(",").forEach(function(p){Bn(C,p.trim(),Jt)}),B(l,"dragover",Le),B(l,"mousemove",Le),B(l,"touchmove",Le),a.supportPointer?(B(l,"pointerup",s._onDrop),!this.nativeDraggable&&B(l,"pointercancel",s._onDrop)):(B(l,"mouseup",s._onDrop),B(l,"touchend",s._onDrop),B(l,"touchcancel",s._onDrop)),En&&this.nativeDraggable&&(this.options.touchStartThreshold=4,C.draggable=!0),te("delayStart",this,{evt:o}),a.delay&&(!a.delayOnTouchOnly||e)&&(!this.nativeDraggable||!(Xe||ye))){if(L.eventCanceled){this._onDrop();return}a.supportPointer?(B(l,"pointerup",s._disableDelayedDrag),B(l,"pointercancel",s._disableDelayedDrag)):(B(l,"mouseup",s._disableDelayedDrag),B(l,"touchend",s._disableDelayedDrag),B(l,"touchcancel",s._disableDelayedDrag)),B(l,"mousemove",s._delayedDragTouchMoveHandler),B(l,"touchmove",s._delayedDragTouchMoveHandler),a.supportPointer&&B(l,"pointermove",s._delayedDragTouchMoveHandler),s._dragStartTimer=setTimeout(c,a.delay)}else c()}},_delayedDragTouchMoveHandler:function(o){var e=o.touches?o.touches[0]:o;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){C&&Jt(C),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var o=this.el.ownerDocument;M(o,"mouseup",this._disableDelayedDrag),M(o,"touchend",this._disableDelayedDrag),M(o,"touchcancel",this._disableDelayedDrag),M(o,"pointerup",this._disableDelayedDrag),M(o,"pointercancel",this._disableDelayedDrag),M(o,"mousemove",this._delayedDragTouchMoveHandler),M(o,"touchmove",this._delayedDragTouchMoveHandler),M(o,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(o,e){e=e||o.pointerType=="touch"&&o,!this.nativeDraggable||e?this.options.supportPointer?B(document,"pointermove",this._onTouchMove):e?B(document,"touchmove",this._onTouchMove):B(document,"mousemove",this._onTouchMove):(B(C,"dragend",this),B(z,"dragstart",this._onDragStart));try{document.selection?mt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(o,e){if(Be=!1,z&&C){te("dragStarted",this,{evt:e}),this.nativeDraggable&&B(document,"dragover",ko);var t=this.options;!o&&oe(C,t.dragClass,!1),oe(C,t.ghostClass,!0),L.active=this,o&&this._appendGhost(),ee({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(ue){this._lastX=ue.clientX,this._lastY=ue.clientY,Hn();for(var o=document.elementFromPoint(ue.clientX,ue.clientY),e=o;o&&o.shadowRoot&&(o=o.shadowRoot.elementFromPoint(ue.clientX,ue.clientY),o!==e);)e=o;if(C.parentNode[ne]._isOutsideThisEl(o),e)do{if(e[ne]){var t=void 0;if(t=e[ne]._onDragOver({clientX:ue.clientX,clientY:ue.clientY,target:o,rootEl:e}),t&&!this.options.dragoverBubble)break}o=e}while(e=Mn(e));Un()}},_onTouchMove:function(o){if(De){var e=this.options,t=e.fallbackTolerance,s=e.fallbackOffset,i=o.touches?o.touches[0]:o,a=N&&Ae(N,!0),l=N&&a&&a.a,c=N&&a&&a.d,d=ut&&Z&&Tn(Z),p=(i.clientX-De.clientX+s.x)/(l||1)+(d?d[0]-jt[0]:0)/(l||1),u=(i.clientY-De.clientY+s.y)/(c||1)+(d?d[1]-jt[1]:0)/(c||1);if(!L.active&&!Be){if(t&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(ee({rootEl:J,name:"add",toEl:J,fromEl:z,originalEvent:o}),ee({sortable:this,name:"remove",toEl:J,originalEvent:o}),ee({rootEl:J,name:"sort",toEl:J,fromEl:z,originalEvent:o}),ee({sortable:this,name:"sort",toEl:J,originalEvent:o})),Q&&Q.save()):se!==Fe&&se>=0&&(ee({sortable:this,name:"update",toEl:J,originalEvent:o}),ee({sortable:this,name:"sort",toEl:J,originalEvent:o})),L.active&&((se==null||se===-1)&&(se=Fe,Ee=Ke),ee({sortable:this,name:"end",toEl:J,originalEvent:o}),this.save()))),this._nulling()},_nulling:function(){te("nulling",this),z=C=J=N=Pe=j=gt=xe=De=ue=je=se=Ee=Fe=Ke=Me=Qe=Q=ct=L.dragged=L.ghost=L.clone=L.active=null;var o=this.el;Ct.forEach(function(e){o.contains(e)&&(e.checked=!0)}),Ct.length=Ht=Ut=0},handleEvent:function(o){switch(o.type){case"drop":case"dragend":this._onDrop(o);break;case"dragenter":case"dragover":C&&(this._onDragOver(o),To(o));break;case"selectstart":o.preventDefault();break}},toArray:function(){for(var o=[],e,t=this.el.children,s=0,i=t.length,a=this.options;ss.right+i||n.clientY>t.bottom&&n.clientX>t.left:n.clientY>s.bottom+i||n.clientX>t.right&&n.clientY>t.top}function No(n,o,e,t,s,i,a,l){var c=t?n.clientY:n.clientX,d=t?e.height:e.width,p=t?e.top:e.left,u=t?e.bottom:e.right,g=!1;if(!a){if(l&&htp+d*i/2:cu-ht)return-Qe}else if(c>p+d*(1-s)/2&&cu-d*i/2)?c>p+d/2?1:-1:0}function Io(n){return le(C){console.error("Failed to render markdown:",i)});let s=o.createDiv({cls:"modal-button-container"});new b.ButtonComponent(s).setButtonText(r("buttons.apply")).setCta().onClick(()=>{this.close()})}onClose(){this.contentEl.empty()}},xt=class extends W{constructor(e,t,s){super(e,t);this.profileName="";this.settingTab=s}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),e.createEl("h3",{text:r("modals.jsonImport.title")}),new b.Setting(e).setName(r("modals.newProfile.nameLabel")).addText(l=>{this.nameInput=l,l.setPlaceholder(r("modals.newProfile.namePlaceholder")).onChange(c=>{this.profileName=c.trim()})}),e.createEl("hr"),e.createEl("p",{text:r("modals.jsonImport.desc1")}),this.textarea=e.createEl("textarea",{cls:"cm-search-input cm-import-textarea",attr:{rows:"20",placeholder:r("modals.jsonImport.placeholder")}});let t=fe(()=>{let l=this.textarea.value;if(l.trim())try{let c=JSON.parse(l);c&&typeof c.name=="string"&&c.name&&(this.nameInput.setValue(c.name),this.profileName=c.name)}catch{}},0);this.textarea.addEventListener("input",t),new b.Setting(e).setName(r("modals.jsonImport.settingName")).setDesc(r("modals.jsonImport.settingDesc")).addButton(l=>{l.setButtonText(r("buttons.chooseFile")).onClick(()=>{this._handleFileImport()})});let s=e.createDiv({cls:"modal-button-container"}),i=s.createEl("button",{text:r("modals.jsonImport.replaceActiveButton")}),a=s.createEl("button",{text:r("modals.jsonImport.createNewButton"),cls:"mod-cta"});i.addEventListener("click",()=>{this._applyImport("replace")}),a.addEventListener("click",()=>{this._applyCreate()})}_handleFileImport(){let e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],s=await t.text();this.textarea.value=s;try{let a=JSON.parse(s).name||t.name.replace(".profile.json","").replace(".json","");this.nameInput.setValue(a),this.profileName=a}catch{}new b.Notice(r("notices.fileLoaded",t.name))})().catch(t=>{console.error("Failed to load profile JSON:",t)})},e.click()}onClose(){this.contentEl.empty()}async _applyCreate(){let e=this.profileName;if(!e){new b.Notice(r("notices.varNameEmpty"));return}if(this.plugin.settings.profiles[e]){new b.Notice(r("notices.profileNameExists",e));return}let t=this.textarea.value.trim();if(!t){new b.Notice(r("notices.textboxEmpty"));return}let s;try{s=JSON.parse(t)}catch{new b.Notice(r("notices.invalidJson"));return}let i=s.profile?s.profile:s;i.noticeRules=i.noticeRules||{text:[],background:[]},this.plugin.settings.profiles[e]=i,this.plugin.settings.activeProfile=e,await this.plugin.saveSettings(),this.settingTab.display(),this.close(),new b.Notice(r("notices.profileCreatedSuccess",e))}async _applyImport(e){let t=this.textarea.value.trim();if(!t){new b.Notice(r("notices.textboxEmpty"));return}let s;try{s=JSON.parse(t)}catch{new b.Notice(r("notices.invalidJson"));return}let i=s.profile?s.profile:s;if(typeof i!="object"||i===null){new b.Notice(r("notices.invalidProfileObject"));return}let a=this.plugin.settings.activeProfile,l=this.plugin.settings.profiles[a];if(!l){new b.Notice(r("notices.profileNotFound"));return}let c="vars"in i?i.vars:{},d="snippets"in i?i.snippets:[],p="themeType"in i?i.themeType:"auto";e==="replace"&&(l.vars=c,l.snippets=d,l.themeType=p),await this.plugin.saveSettings(),l.vars&&Object.keys(l.vars).forEach(u=>{this.plugin.pendingVarUpdates[u]=l.vars[u]}),this.plugin.applyPendingNow(),this.settingTab.display(),this.close(),new b.Notice(r("notices.profileImportedSuccess"))}},kt=class extends W{constructor(o,e,t){super(o,e),this.onSubmit=t}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("modals.newProfile.title")});let e="",t="auto";new b.Setting(o).setName(r("modals.newProfile.nameLabel")).addText(c=>{c.setPlaceholder(r("modals.newProfile.namePlaceholder")).onChange(d=>{e=d})}),new b.Setting(o).setName(r("profileManager.themeType")).setDesc(r("profileManager.themeTypeDesc")).addDropdown(c=>{c.addOption("auto",r("profileManager.themeAuto")),c.addOption("dark",r("profileManager.themeDark")),c.addOption("light",r("profileManager.themeLight")),c.setValue(t),c.onChange(d=>{t=d})});let s=o.createDiv({cls:"modal-button-container"});s.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close());let a=s.createEl("button",{text:r("buttons.create"),cls:"mod-cta"}),l=()=>{let c=e.trim();c?(this.onSubmit({name:c,themeType:t}),this.close(),new b.Notice(r("notices.profileCreated",c))):new b.Notice(r("notices.varNameEmpty"))};a.addEventListener("click",l),o.querySelector('input[type="text"]')?.addEventListener("keydown",c=>{c.key==="Enter"&&(c.preventDefault(),l())})}onClose(){this.contentEl.empty()}},ie=class extends W{constructor(o,e,t,s,i,a={}){super(o,e),this.title=t,this.message=s,this.onConfirm=i,this.confirmButtonText=a.buttonText||r("buttons.delete"),this.confirmButtonClass=a.buttonClass||"mod-warning"}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:this.title}),o.createEl("p").append(this.message);let e=o.createDiv({cls:"modal-button-container"});e.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),e.createEl("button",{text:this.confirmButtonText,cls:this.confirmButtonClass}).addEventListener("click",()=>{this.onConfirm(),this.close()})}onClose(){this.contentEl.empty()}},_e=class extends W{constructor(e,t,s,i=null){super(e,t);this.isSaving=!1;this.settingTab=s,this.existingProfileData=i,this.isEditing=!!i,this.profileName=i?i.name:""}_handleFileImport(){let e=document.createElement("input");e.type="file",e.accept=".css",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],s=await t.text();this.cssTextarea.value=s,new b.Notice(r("notices.fileLoaded",t.name))})().catch(t=>{console.error("Failed to load CSS file:",t)})},e.click()}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty();let t=e.createDiv({cls:"cm-title-container"}),s=this.isEditing?r("modals.cssImport.titleEdit"):r("modals.cssImport.title");this.modalTitleEl=t.createEl("h3",{text:s});let i=this.app.customCss.themes||{},a=Object.keys(i),l=a.length>0?a[0]:"",c=new b.Setting(e).setName(r("modals.cssImport.importFromTheme")).setDesc(r("modals.cssImport.importFromThemeDesc"));c.settingEl.addClass("cm-theme-importer-setting"),c.addDropdown(f=>{a.length>0?(a.forEach(h=>{f.addOption(h,h)}),f.onChange(h=>{l=h})):(f.addOption("",r("modals.cssImport.noThemes")),f.setDisabled(!0))}),c.addButton(f=>{f.setButtonText(r("buttons.import")).setCta().setDisabled(a.length===0).onClick(async()=>{if(!l)return;let h=`${this.app.vault.configDir}/themes/${l}/theme.css`;try{let E=await this.app.vault.adapter.read(h);this.cssTextarea.value=E,this.nameInput.setValue(l),this.profileName=l,new b.Notice(r("notices.themeCssLoaded",l))}catch(E){new b.Notice(r("notices.themeReadFailed",l)),console.error(`Color Master: Failed to read theme CSS at ${h}`,E)}})});let d=r("modals.newProfile.nameLabel");this.nameSetting=new b.Setting(e).setName(d).addText(f=>{this.nameInput=f;let h=r("modals.newProfile.namePlaceholder");f.setValue(this.isEditing&&this.existingProfileData?this.existingProfileData.name:"").setPlaceholder(h).onChange(E=>{this.profileName=E.trim()})}),this.cssTextarea=e.createEl("textarea",{cls:"cm-search-input cm-large-textarea",attr:{rows:"18",placeholder:r("modals.snippetEditor.cssPlaceholder")}}),e.createDiv({text:r("modals.cssImport.note"),cls:"cm-modal-warning-note"}),new b.Setting(e).setName(r("modals.cssImport.importFromFile")).setDesc(r("modals.cssImport.importFromFileDesc")).addButton(f=>{f.setButtonText(r("buttons.chooseFile")).onClick(()=>{this._handleFileImport()})});let p=this.isEditing&&this.existingProfileData?`profile-${this.existingProfileData.name}`:null,u=this.isEditing&&this.existingProfileData?this.existingProfileData.css:"";if(p){let f=this.plugin.cssHistory[p]?.undoStack.last();this.cssTextarea.value=f??u,(!this.plugin.cssHistory[p]||this.plugin.cssHistory[p].undoStack.length===0)&&this.plugin.pushCssHistory(p,u)}else this.cssTextarea.value=u;let g=fe((f,h)=>{this.plugin.pushCssHistory(f,h)},500);this.cssTextarea.addEventListener("input",()=>{p&&g(p,this.cssTextarea.value)}),this.cssTextarea.addEventListener("keydown",f=>{if(p&&f.ctrlKey){if(f.key.toLowerCase()==="z"){f.preventDefault();let h=this.plugin.undoCssHistory(p);h!==null&&(this.cssTextarea.value=h)}else if(f.key.toLowerCase()==="y"){f.preventDefault();let h=this.plugin.redoCssHistory(p);h!==null&&(this.cssTextarea.value=h)}}});let m=e.createDiv({cls:"modal-button-container"});m.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),m.createEl("button",{text:this.isEditing?r("buttons.update"):r("buttons.create"),cls:"mod-cta"}).addEventListener("click",()=>{this.handleSave().catch(f=>{console.error("Failed to save CSS snippet:",f)})}),setTimeout(()=>this.nameInput.inputEl.focus(),0)}async handleSave(){if(this.isEditing&&!this.existingProfileData){console.error("Attempted to save in editing mode without an existing snippet.");return}let e=this.cssTextarea.value.trim(),t=(this.profileName||"").trim();if(!t){new b.Notice(r("notices.varNameEmpty"));return}if(!this.plugin.settings.profiles[this.plugin.settings.activeProfile])return;if(Object.keys(this.plugin.settings.profiles||{}).some(g=>g.toLowerCase()===t.toLowerCase()&&(!this.isEditing||this.existingProfileData&&this.existingProfileData.name.toLowerCase()!==t.toLowerCase()))){new b.Notice(r("notices.profileNameExists",t));return}let a=this.contentEl.querySelector(".mod-cta");a&&(a.textContent=r("modals.addBackground.processing")+"...",a.disabled=!0);let l=this.app.customCss,c=l?.theme,d="__cm_temp_clean_slate__";this.plugin.settings.profiles[d]=JSON.parse(JSON.stringify(ot)),this.plugin.settings.activeProfile=d,await this.plugin.applyStyles(),c&&l.setTheme(""),document.body.offsetHeight,await new Promise(g=>setTimeout(g,0));let p=document.createElement("style");p.id="cm-temp-import-style",p.textContent=e,document.head.appendChild(p),await new Promise(g=>requestAnimationFrame(g)),await new Promise(g=>setTimeout(g,0));let u=await this.plugin.captureCurrentComputedVars();if(p.remove(),c&&l.setTheme(c),delete this.plugin.settings.profiles[d],this.isEditing&&this.existingProfileData){let g=this.existingProfileData.name,m=this.plugin.settings.profiles[g]||{};g!==t&&(this.plugin.settings.pinnedSnapshots[g]&&(this.plugin.settings.pinnedSnapshots[t]=this.plugin.settings.pinnedSnapshots[g],delete this.plugin.settings.pinnedSnapshots[g]),delete this.plugin.settings.profiles[g]),this.plugin.settings.profiles[t]={...m,isCssProfile:!0,customCss:e,vars:u},this.plugin.settings.activeProfile=t,new b.Notice(r("notices.profileUpdated",t))}else this.plugin.settings.profiles[t]={vars:u,themeType:"auto",isCssProfile:!0,customCss:e,snippets:[],noticeRules:{text:[],background:[]}},this.plugin.settings.activeProfile=t,new b.Notice(r("notices.profileCreatedFromCss",t));this.isSaving=!0,this.plugin.pendingVarUpdates={},await this.plugin.saveSettings(),this.plugin.applyCssSnippets(),this.settingTab.display(),this.close()}onClose(){if(!this.isSaving){let e=this.isEditing&&this.existingProfileData?`profile-${this.existingProfileData.name}`:null;e&&this.plugin.cssHistory[e]&&delete this.plugin.cssHistory[e]}this.contentEl.empty()}},et=class extends W{constructor(e,t,s,i=null){super(e,t);this.isSaving=!1;this.settingTab=s,this.existingSnippet=i,this.isEditing=!!i,this.snippetName=i?i.name:"",this.isGlobalSnippet=i?!!i.isGlobal:!1}_debounce(e,t){let s;return(...i)=>{clearTimeout(s),s=window.setTimeout(()=>e.apply(this,i),t)}}_handleFileImport(){let e=document.createElement("input");e.type="file",e.accept=".css",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0],s=await t.text();this.cssTextarea.inputEl.value=s,new b.Notice(r("notices.fileLoaded",t.name))})().catch(t=>{console.error("Failed to load CSS file:",t)})},e.click()}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty();let t=e.createDiv({cls:"cm-title-container"}),s=this.isEditing?r("modals.snippetEditor.titleEdit"):r("modals.snippetEditor.title");this.modalTitleEl=t.createEl("h3",{text:s});let i=this.app.customCss.snippets||[],a=i.length>0?i[0]:"",l=new b.Setting(e).setName(r("modals.snippetEditor.importFromSnippet")).setDesc(r("modals.snippetEditor.importFromSnippetDesc"));l.settingEl.addClass("cm-theme-importer-setting"),l.addDropdown(m=>{i.length>0?(i.forEach(f=>{m.addOption(f,f)}),m.onChange(f=>{a=f})):(m.addOption("",r("modals.snippetEditor.noSnippets")),m.setDisabled(!0))}),l.addButton(m=>{m.setButtonText(r("buttons.import")).setCta().setDisabled(i.length===0).onClick(async()=>{if(!a)return;let f=`${this.app.vault.configDir}/snippets/${a}.css`;try{let h=await this.app.vault.adapter.read(f);this.cssTextarea.setValue(h),this.nameInput.setValue(a),this.snippetName=a,new b.Notice(r("notices.snippetLoaded",a))}catch(h){new b.Notice(r("notices.snippetReadFailed",a)),console.error(`Color Master: Failed to read snippet CSS at ${f}`,h)}})});let c=r("modals.snippetEditor.nameLabel");this.nameSetting=new b.Setting(e).setName(c).addText(m=>{this.nameInput=m;let f=r("modals.snippetEditor.namePlaceholder");m.setValue(this.isEditing&&this.existingSnippet?this.existingSnippet.name:"").setPlaceholder(f).onChange(h=>{this.snippetName=h.trim()})}),new b.Setting(e).setName(r("snippets.globalName")).setDesc(r("snippets.globalDesc")).addToggle(m=>{m.setValue(this.isGlobalSnippet).onChange(f=>{this.isGlobalSnippet=f})}),this.cssTextarea=new b.TextAreaComponent(e),e.createDiv({text:r("modals.cssImport.note"),cls:"cm-modal-warning-note"}),new b.Setting(e).setName(r("modals.cssImport.importFromFile")).setDesc(r("modals.cssImport.importFromFileDesc")).addButton(m=>{m.setButtonText(r("buttons.chooseFile")).onClick(()=>{this._handleFileImport()})}),this.cssTextarea.inputEl.classList.add("cm-search-input","cm-large-textarea"),this.cssTextarea.inputEl.rows=18,this.cssTextarea.setPlaceholder(r("modals.snippetEditor.cssPlaceholder"));let d=this.isEditing&&this.existingSnippet?this.existingSnippet.id:null,p=this.isEditing&&this.existingSnippet?this.existingSnippet.css:"";if(d){let m=this.plugin.cssHistory[d]?.undoStack.last();this.cssTextarea.setValue(m??p),(!this.plugin.cssHistory[d]||this.plugin.cssHistory[d].undoStack.length===0)&&this.plugin.pushCssHistory(d,p)}else this.cssTextarea.setValue(p);let u=fe((m,f)=>{this.plugin.pushCssHistory(m,f)},500);this.cssTextarea.onChange(m=>{d&&u(d,m)}),this.cssTextarea.inputEl.addEventListener("keydown",m=>{if(d&&m.ctrlKey){if(m.key.toLowerCase()==="z"){m.preventDefault();let f=this.plugin.undoCssHistory(d);f!==null&&this.cssTextarea.setValue(f)}else if(m.key.toLowerCase()==="y"){m.preventDefault();let f=this.plugin.redoCssHistory(d);f!==null&&this.cssTextarea.setValue(f)}}});let g=e.createDiv({cls:"modal-button-container"});g.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),g.createEl("button",{text:this.isEditing?r("buttons.update"):r("buttons.create"),cls:"mod-cta"}).addEventListener("click",()=>this.handleSave()),setTimeout(()=>this.nameInput.inputEl.focus(),0)}handleSave(){let e=this.cssTextarea.getValue().trim(),t=(this.snippetName||"").trim();if(!t){new b.Notice(r("notices.varNameEmpty"));return}if(!e){new b.Notice(r("notices.cssContentEmpty"));return}let s=this.plugin.settings.profiles[this.plugin.settings.activeProfile];if(!s)return;Array.isArray(this.plugin.settings.globalSnippets)||(this.plugin.settings.globalSnippets=[]);let i=this.isGlobalSnippet?this.plugin.settings.globalSnippets:s.snippets;if(i.some(l=>l.name.toLowerCase()===t.toLowerCase()&&(!this.isEditing||this.existingSnippet&&this.existingSnippet.id!==l.id))){new b.Notice(r("notices.snippetNameExists",t));return}if(this.isEditing&&this.existingSnippet){let l=!!this.existingSnippet.isGlobal,c=l?this.plugin.settings.globalSnippets:s.snippets,d=this.isGlobalSnippet?this.plugin.settings.globalSnippets:s.snippets,p=c.findIndex(u=>u.id===this.existingSnippet.id);if(p>-1){if(l===this.isGlobalSnippet)c[p].name=t,c[p].css=e;else{let[u]=c.splice(p,1);u.name=t,u.css=e,u.isGlobal=this.isGlobalSnippet,d.push(u)}new b.Notice(r("notices.snippetUpdated",t))}}else i.push({id:`snippet-${Date.now()}`,name:t,css:e,enabled:!0,isGlobal:this.isGlobalSnippet}),new b.Notice(r("notices.snippetCreated",t));this.isSaving=!0,this.plugin.saveSettings().then(()=>{this.plugin.applyCssSnippets(),this.settingTab.display(),this.close()}).catch(l=>{console.error("Failed to save settings:",l)})}onClose(){if(!this.isSaving){let e=this.isEditing&&this.existingSnippet?this.existingSnippet.id:null;e&&this.plugin.cssHistory[e]&&delete this.plugin.cssHistory[e]}this.contentEl.empty()}},Tt=class extends W{constructor(e,t,s,i){super(e,t);this.newlyAddedRuleId=null;this.sortable=null;this.settingTab=s,this.ruleType=i;let a=this.plugin.settings.profiles[this.plugin.settings.activeProfile];this.localRules=JSON.parse(JSON.stringify(a?.noticeRules?.[this.ruleType]||[])),this.localRules.length===0&&this.localRules.push({id:`rule-${Date.now()}`,keywords:"",color:this.ruleType==="text"?"#ffffff":"#444444",isRegex:!1,highlightOnly:!1})}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),this.modalEl.classList.add("color-master-modal","cm-rules-modal");let t=this.ruleType==="text"?r("modals.noticeRules.titleText"):r("modals.noticeRules.titleBg"),s=e.createDiv({cls:"cm-rules-modal-header"}),i=s.createDiv({cls:"cm-rules-modal-header-icon"});(0,b.setIcon)(i,"bell"),s.createEl("h3",{text:t});let a=e.createDiv({cls:"cm-rules-header"});a.createEl("p",{text:r("modals.noticeRules.desc"),cls:"cm-rules-modal-desc"});let l=a.createDiv();new b.Setting(l).addButton(p=>{p.setButtonText(r("modals.noticeRules.addNewRule")).setCta().onClick(()=>{let u={id:`rule-${Date.now()}`,keywords:"",color:this.ruleType==="text"?"#ffffff":"#444444",isRegex:!1,highlightOnly:!1};this.localRules.push(u),this.newlyAddedRuleId=u.id,this.displayRules()})}).settingEl.classList.add("cm-rules-add-button-setting"),this.rulesContainer=e.createDiv("cm-rules-container"),this.displayRules();let d=e.createDiv({cls:"modal-button-container"});d.createEl("button",{text:r("buttons.cancel")}).addEventListener("click",()=>this.close()),d.createEl("button",{text:r("buttons.apply"),cls:"mod-cta"}).addEventListener("click",()=>{(async()=>{this.rulesContainer.querySelectorAll(".cm-tag-input-field").forEach((g,m)=>{let f=g.value.trim().replace(/,/g,"");if(f){let h=this.localRules[m];if(h){let E=typeof h.keywords=="string"&&h.keywords?h.keywords.split(",").map(S=>S.trim()).filter(Boolean):[];E.includes(f)||(h.keywords=[...E,f].join(","))}}});let u=this.plugin.settings.profiles[this.plugin.settings.activeProfile];u.noticeRules||(u.noticeRules={text:[],background:[]}),u.noticeRules[this.ruleType]=this.localRules,await this.plugin.saveSettings(),this.plugin.liveNoticeRules=null,this.plugin.liveNoticeRuleType=null,new b.Notice(r("notices.settingsSaved")),this.close()})().catch(p=>{console.error("Failed to save notice rules:",p)})})}displayRules(){let e=this.rulesContainer;e.empty(),this.localRules.forEach((t,s)=>{let i=e.createDiv({cls:"cm-rule-item"});i.dataset.ruleId=t.id,this.newlyAddedRuleId&&t.id===this.newlyAddedRuleId&&(i.classList.add("newly-added"),this.newlyAddedRuleId=null);let a=i.createDiv({cls:"cm-rule-actions"}),l=a.createDiv({cls:"cm-rule-action-buttons"}),c=new b.ButtonComponent(l).setIcon("grip-vertical").setTooltip(r("tooltips.dragReorder"));c.buttonEl.classList.add("cm-drag-handle"),c.buttonEl.addEventListener("mousedown",m=>{m.stopPropagation()}),a.createDiv({cls:"cm-rule-order-number",text:`${s+1}`});let d=i.createDiv({cls:"cm-rule-input-wrapper"});this._createTagInput(d,t);let p=i.createDiv({cls:"cm-color-container"}),u=p.createEl("input",{type:"color"});u.value=t.color,t.color&&t.color.toLowerCase()==="transparent"&&u.classList.add("is-transparent"),u.addEventListener("input",m=>{t.color=m.target.value,this.plugin.liveNoticeRules=this.localRules,this.plugin.liveNoticeRuleType=this.ruleType,u.classList.remove("is-transparent")}),new b.ButtonComponent(p).setIcon("eraser").setClass("cm-rule-icon-button").setTooltip(r("tooltips.setTransparent")).onClick(()=>{t.color="transparent",u.classList.add("is-transparent")});let g=new b.ButtonComponent(i).setIcon("regex").setClass("cm-rule-icon-button").setTooltip(r("modals.noticeRules.useRegex")).onClick(()=>{t.isRegex=!t.isRegex,g.buttonEl.classList.toggle("is-active",t.isRegex)});if(g.buttonEl.classList.toggle("is-active",t.isRegex),this.ruleType==="text"){let m=new b.ButtonComponent(i).setIcon("highlighter").setClass("cm-rule-icon-button").setTooltip(r("modals.noticeRules.highlightOnly")).onClick(()=>{t.highlightOnly=!t.highlightOnly,m.buttonEl.classList.toggle("is-active",t.highlightOnly)});m.buttonEl.classList.toggle("is-active",t.highlightOnly)}new b.ButtonComponent(i).setIcon("bell").setClass("cm-rule-icon-button").setTooltip(r("tooltips.testRule")).onClick(()=>{this._handleTestRule(t)}),new b.ButtonComponent(i).setIcon("trash").setClass("cm-rule-icon-button").setWarning().onClick(()=>{this._handleDeleteRule(s)})}),this._initDrag()}_initDrag(){if(this.rulesContainer){if(this.sortable){try{this.sortable.destroy()}catch(e){console.warn("Could not destroy sortable instance",e)}this.sortable=null}if(!Ve){console.warn("Color Master: SortableJS not found, drag & drop disabled.");return}this.sortable=new Ve(this.rulesContainer,{handle:".cm-drag-handle",animation:160,ghostClass:"cm-rule-ghost",dataIdAttr:"data-rule-id",onEnd:e=>{let{oldIndex:t,newIndex:s}=e;if(t===s||t==null||s==null)return;let[i]=this.localRules.splice(t,1);i&&this.localRules.splice(s,0,i),this.displayRules()}})}}onClose(){this.contentEl.empty(),this.plugin.liveNoticeRules=null,this.plugin.liveNoticeRuleType=null}_createTagInput(e,t){let s=e.createDiv({cls:"cm-tag-input-container"}),i=()=>{s.empty();let a=typeof t.keywords=="string"&&t.keywords?t.keywords.split(",").map(d=>d.trim()).filter(Boolean):[];a.forEach((d,p)=>{let u=s.createDiv({cls:"cm-tag-item"});u.dataset.keyword=d,u.createSpan({cls:"cm-tag-text",text:d}),u.createSpan({cls:"cm-tag-remove",text:"\xD7"}).addEventListener("click",m=>{m.stopPropagation(),a.splice(p,1),t.keywords=a.join(","),i()})});let l=s.createEl("input",{type:"text",cls:"cm-tag-input-field"});l.placeholder=r("modals.noticeRules.keywordPlaceholder");let c=()=>{let d=l.value.trim().replace(/,/g,"");if(!d)return;let p=typeof t.keywords=="string"&&t.keywords?t.keywords.split(",").map(m=>m.trim()).filter(Boolean):[],u=p.map(m=>m.toLowerCase()),g=d.toLowerCase();if(!u.includes(g))t.keywords=[...p,d].join(","),i();else{let m=s.querySelector(`.cm-tag-item[data-keyword="${p[u.indexOf(g)]}"]`);m&&(m.classList.add("cm-tag-duplicate-flash"),setTimeout(()=>{m.classList.remove("cm-tag-duplicate-flash")},700)),l.value=""}};l.addEventListener("keydown",d=>{d.key==="Enter"||d.key===" "?(d.preventDefault(),c()):d.key==="Backspace"&&l.value===""&&a.length>0&&(a.pop(),t.keywords=a.join(","),i())}),l.addEventListener("blur",c),l.focus()};s.addEventListener("click",()=>{s.querySelector(".cm-tag-input-field")?.focus()}),i()}_handleDeleteRule(e){let t=this.rulesContainer.children[e];t&&(t.classList.add("removing"),setTimeout(()=>{if(this.localRules.length===1){this.localRules.splice(e,1);let s={id:`rule-${Date.now()}`,keywords:"",color:this.ruleType==="text"?"#ffffff":"#444444",isRegex:!1,highlightOnly:!1};this.localRules.push(s),this.newlyAddedRuleId=s.id}else this.localRules.splice(e,1);this.displayRules()},100))}_handleTestRule(e){let t=e.keywords||"";if(!t.trim()){new b.Notice(r("notices.noKeywordsToTest"));return}let s=t.split(",").map(d=>d.trim()).filter(Boolean);if(s.length===0){new b.Notice(r("notices.noKeywordsToTest"));return}(e._lastTestIndex===void 0||e._lastTestIndex===null)&&(e._lastTestIndex=-1),e._lastTestIndex++,e._lastTestIndex>=s.length&&(e._lastTestIndex=0);let i=s[e._lastTestIndex],a=new DocumentFragment,l=r("notices.testSentence",i).split(new RegExp(`(${i})`,"i"));a.append(l[0]);let c=a.createSpan({cls:"cm-test-keyword",text:l[1]});a.append(c),a.append(l[2]||""),new b.Notice(a)}},Dt=class extends W{constructor(e,t,s,i){super(e,t);this.varName="";this.varValue="";this.displayName="";this.description="";this.varType="color";this.sizeUnit="px";this.settingTab=s,this.onSubmit=i}renderValueInput(e){e.empty();let t=new b.Setting(e).setName(r("modals.customVar.varValue")).setDesc(r("modals.customVar.varValueDesc"));switch(this.varType){case"color":{this.varValue!==""&&!this.varValue.match(/^(#|rgb|hsl|transparent|var\(--)/i)&&(this.varValue="");let s=t.controlEl.createEl("input",{type:"color"}),i=t.controlEl.createEl("input",{type:"text",cls:"color-master-text-input"});s.value=this.varValue,i.value=this.varValue,s.addEventListener("input",a=>{let l=a.target.value;i.value=l,this.varValue=l}),i.addEventListener("change",a=>{let l=a.target.value;s.value=l,this.varValue=l});break}case"size":{this.varValue.match(/^(-?\d+)(\.\d+)?(px|em|rem|%)$/)||(this.varValue="10px");let s=this.varValue.match(/(-?\d+)(\.\d+)?(\D+)/),i=s?(s[1]||"")+(s[2]||""):"10",a=s?s[3]||"":"px";["px","em","rem","%"].includes(a)||(a="px"),this.sizeUnit=a;let l=t.controlEl.createEl("input",{type:"number",cls:"color-master-text-input"});l.setCssProps({width:"80px"}),l.value=i;let c=new b.DropdownComponent(t.controlEl);c.addOption("px","px"),c.addOption("em","em"),c.addOption("rem","rem"),c.addOption("%","%"),c.setValue(this.sizeUnit);let d=()=>{this.varValue=(l.value||"0")+this.sizeUnit};l.addEventListener("change",d),c.onChange(p=>{this.sizeUnit=p,d()});break}case"text":{this.varType!=="text"&&(this.varValue=""),t.addTextArea(s=>{s.setValue(this.varValue).setPlaceholder(r("modals.customVar.textValuePlaceholder")).onChange(i=>{this.varValue=i}),s.inputEl.setCssProps({width:"100%"}),s.inputEl.classList.add("cm-textarea-size")});break}case"number":{isNaN(parseFloat(this.varValue))&&(this.varValue="0"),t.addText(s=>{s.inputEl.type="number",s.setValue(this.varValue).onChange(i=>{this.varValue=i})});break}}}onOpen(){let{contentEl:e}=this;e.empty(),this.modalEl.classList.add("color-master-modal"),super.onOpen(),e.createEl("h3",{text:r("modals.customVar.title")}),e.createEl("p",{text:r("modals.customVar.desc")}),new b.Setting(e).setName(r("modals.customVar.displayName")).setDesc(r("modals.customVar.displayNameDesc")).addText(t=>t.setPlaceholder(r("modals.customVar.displayNamePlaceholder")).setValue(this.displayName).onChange(s=>{this.displayName=s})),new b.Setting(e).setName(r("modals.customVar.varName")).setDesc(r("modals.customVar.varNameDesc")).addText(t=>t.setPlaceholder(r("modals.customVar.varNamePlaceholder")).setValue(this.varName).onChange(s=>{s.length>0&&!s.startsWith("--")?s.startsWith("-")?this.varName="-"+s:this.varName="--"+s:this.varName=s})),new b.Setting(e).setName(r("modals.customVar.varType")).setDesc(r("modals.customVar.varTypeDesc")).addDropdown(t=>{t.addOption("color",r("modals.customVar.types.color")).addOption("size",r("modals.customVar.types.size")).addOption("text",r("modals.customVar.types.text")).addOption("number",r("modals.customVar.types.number")).setValue(this.varType).onChange(s=>{switch(this.varType=s,s){case"color":this.varValue="";break;case"size":this.varValue="10px";break;case"number":this.varValue="0";break;case"text":this.varValue="";break}this.renderValueInput(this.valueInputContainer)})}),this.valueInputContainer=e.createDiv("cm-value-input-container"),this.renderValueInput(this.valueInputContainer),new b.Setting(e).setName(r("modals.customVar.description")).setDesc(r("modals.customVar.descriptionDesc")).addTextArea(t=>t.setPlaceholder(r("modals.customVar.descriptionPlaceholder")).setValue(this.description).onChange(s=>{this.description=s})),new b.Setting(e).setClass("modal-button-container").addButton(t=>t.setButtonText(r("buttons.cancel")).onClick(()=>this.close())).addButton(t=>t.setButtonText(r("modals.customVar.addVarButton")).setCta().onClick(()=>{let s=this.varName.trim();if(!s.startsWith("--")){new b.Notice(r("notices.varNameFormat"));return}if(!this.displayName.trim()){new b.Notice(r("notices.varNameEmpty"));return}let i=Object.keys(de(X)),a=this.plugin.settings.profiles[this.plugin.settings.activeProfile],l=Object.keys(a.vars||{});if(new Set([...i,...l]).has(s)){new b.Notice(r("notices.varExists",s));return}this.onSubmit({displayName:this.displayName.trim(),varName:s,varValue:this.varValue.trim(),description:this.description.trim(),varType:this.varType}),this.close()}))}onClose(){this.contentEl.empty()}},Lt=class extends W{constructor(o,e){super(o,e)}onOpen(){super.onOpen(),this.modalEl.classList.add("color-master-modal");let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("settings.languageSettingsModalTitle")}),new b.Setting(o).setName(r("settings.rtlLayoutName")).setDesc(r("settings.rtlLayoutDesc")).addToggle(e=>{e.setValue(this.plugin.settings.useRtlLayout).onChange(async t=>{this.plugin.settings.useRtlLayout=t,await this.plugin.saveSettings(),this.plugin.settingTabInstance?.display()})})}onClose(){let{contentEl:o}=this;o.empty()}},Pt=class extends W{constructor(o,e){super(o,e)}onOpen(){super.onOpen(),this.modalEl.classList.add("color-master-modal");let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("options.iconizeModalTitle")}),new b.Setting(o).setName(r("options.overrideIconizeName")).setDesc(r("options.overrideIconizeDesc")).addToggle(e=>{e.setValue(this.plugin.settings.overrideIconizeColors).onChange(async t=>{if(t){let s=["obsidian-icon-folder","iconize"],i=this.app.plugins;if(!s.some(l=>!!i.getPlugin(l))){new b.Notice(r("notices.iconizeNotFound")),e.setValue(!1);return}}this.plugin.settings.overrideIconizeColors=t,await this.plugin.saveSettings()})}),new b.Setting(o).setName(r("options.cleanupIntervalName")).setDesc(r("options.cleanupIntervalDesc")).addSlider(e=>{e.setLimits(1,10,1).setValue(this.plugin.settings.cleanupInterval).setDynamicTooltip().onChange(async t=>{this.plugin.settings.cleanupInterval=t,await this.plugin.saveSettings(),this.plugin.resetIconizeWatcher()})})}onClose(){let{contentEl:o}=this;o.empty()}},Nt=class extends W{constructor(e,t){super(e,t);this.debouncedSaveSettings=fe(e=>{(async()=>{let t=this.plugin.settings.profiles[this.plugin.settings.activeProfile];t&&(t.jpgQuality=e,await this.plugin.saveSettings(),new b.Notice(r("notices.jpgQualitySet",e)))})().catch(t=>{console.error("Failed to save JPG quality:",t)})},0)}onOpen(){super.onOpen(),this.modalEl.classList.add("color-master-modal");let{contentEl:e}=this,t=this.plugin.settings.profiles[this.plugin.settings.activeProfile];e.empty(),e.createEl("h3",{text:r("options.backgroundModalSettingsTitle")}),new b.Setting(e).setName(r("options.backgroundEnableName")).setDesc(r("options.backgroundEnableDesc")).addToggle(u=>{let g=t?.backgroundEnabled!==!1;u.setValue(g).onChange(async m=>{let f=this.plugin.settings.profiles[this.plugin.settings.activeProfile];f&&(f.backgroundEnabled=m,await this.plugin.saveSettings()),this.onOpen()})});let s=new b.Setting(e).setName(r("options.settingType")),i,a,l=e.createDiv("cm-settings-group");l.setCssProps({display:"none"});let c=e.createDiv("cm-settings-group");c.setCssProps({display:"none"}),new b.Setting(l).setName(r("options.convertImagesName")).setDesc(r("options.convertImagesDesc")).addToggle(u=>{u.setValue(t?.convertImagesToJpg||!1).onChange(async g=>{t.convertImagesToJpg=g,g&&!t.jpgQuality&&(t.jpgQuality=85),await this.plugin.saveSettings(),this.onOpen()})}),t?.convertImagesToJpg===!0&&new b.Setting(l).setName(r("options.jpgQualityName")).setDesc(r("options.jpgQualityDesc")).addSlider(u=>{u.setLimits(1,100,1).setValue(t?.jpgQuality||85).setDynamicTooltip().onChange(g=>{this.debouncedSaveSettings(g)})}),new b.Setting(c).setName(r("options.videoOpacityName")).setDesc(r("options.videoOpacityDesc")).addSlider(u=>{u.setLimits(.1,1,.1).setValue(t.videoOpacity||.5).setDynamicTooltip().onChange(async g=>{t.videoOpacity=g,await this.plugin.saveSettings()}),u.sliderEl.oninput=g=>{let m=parseFloat(g.target.value),f=document.querySelector("#cm-background-video");f&&f.setCssProps({opacity:m.toString()})}}),new b.Setting(c).setName(r("options.videoMuteName")).setDesc(r("options.videoMuteDesc")).addToggle(u=>u.setValue(t.videoMuted!==!1).onChange(async g=>{t.videoMuted=g,await this.plugin.saveSettings();let m=document.querySelector("#cm-background-video");m&&(m.muted=g)}));let d=u=>{u==="image"?(i.setCta(),a.buttonEl.classList.remove("mod-cta"),l.setCssProps({display:"block"}),c.setCssProps({display:"none"})):(i.buttonEl.classList.remove("mod-cta"),a.setCta(),l.setCssProps({display:"none"}),c.setCssProps({display:"block"}))};s.addButton(u=>{i=u,u.setButtonText(r("options.settingTypeImage")).onClick(()=>d("image"))}),s.addButton(u=>{a=u,u.setButtonText(r("options.settingTypeVideo")).onClick(()=>d("video"))});let p=t?.backgroundType||"image";d(p)}debounce(e,t){let s;return(...i)=>{let a=()=>{s=null,e(...i)};s&&clearTimeout(s),s=setTimeout(a,t)}}onClose(){let{contentEl:e}=this;e.empty()}},It=class extends W{constructor(o,e,t,s,i){super(o,e),this.arrayBuffer=t,this.fileName=s,this.onResolve=i}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("modals.fileConflict.title")}),o.createEl("p",{text:r("modals.fileConflict.desc",this.fileName)});let e=o.createDiv({cls:"modal-button-container"});new b.ButtonComponent(e).setButtonText(r("modals.fileConflict.replaceButton")).onClick(()=>{this.onResolve("replace"),this.close()}),new b.ButtonComponent(e).setButtonText(r("modals.fileConflict.keepButton")).setCta().onClick(()=>{this.onResolve("keep"),this.close()})}onClose(){this.contentEl.empty()}},Ot=class extends W{constructor(o,e,t){super(o,e),this.settingTab=t}async handlePastedFile(o){new b.Notice(r("notices.pastedImage",o.name)),await this.processFileWithProgress(o)}async handlePastedUrl(o){let e=this.contentEl.querySelector(".cm-paste-box");if(o.startsWith("data:image"))try{e&&(e.textContent=r("modals.addBackground.processing")+"...");let t=await(0,b.requestUrl)({url:o}),s=t.arrayBuffer,i=t.headers["content-type"]||"image/png",a=`pasted-image-${Date.now()}.${i.split("/")[1]}`;new b.Notice(r("notices.pastedBase64Image")),await this.plugin.setBackgroundMedia(s,a,"prompt"),this.close();return}catch(t){new b.Notice(r("notices.backgroundLoadError")),console.error("Color Master: Error handling pasted data URL:",t),this.close();return}if(o.startsWith("http://")||o.startsWith("https://")){new b.Notice(r("notices.downloadingFromUrl",o)),e&&(e.textContent=r("modals.addBackground.processing")+"..."),await this.plugin.setBackgroundMediaFromUrl(o),this.close();return}new b.Notice(r("notices.pasteError"))}async processFileWithProgress(o){await Promise.resolve();let e=new FileReader,t=this.contentEl.querySelector(".cm-paste-box");e.onprogress=s=>{if(s.lengthComputable&&t){let i=Math.round(s.loaded/s.total*100);t.textContent=r("modals.addBackground.processing")+`${i}%`}},e.onload=async()=>{t&&(t.textContent=r("modals.addBackground.processing")+" 100%");let s=e.result;await this.plugin.setBackgroundMedia(s,o.name,"prompt"),this.close()},e.onerror=()=>{new b.Notice(r("notices.backgroundLoadError")),this.close()},t&&(t.textContent=r("modals.addBackground.processing")+"0%"),e.readAsArrayBuffer(o)}onOpen(){super.onOpen();let{contentEl:o}=this;o.empty(),o.createEl("h3",{text:r("modals.addBackground.title")}),new b.Setting(o).setName(r("modals.addBackground.importFromFile")).setDesc(r("modals.addBackground.importFromFileDesc")).addButton(t=>{let s=document.createElement("input");s.type="file",s.accept="image/*, video/mp4, video/webm",t.setCta().setButtonText(r("buttons.chooseFile")).onClick(()=>{s.click()}),s.onchange=async()=>{if(!s.files||s.files.length===0)return;let i=s.files[0];await this.processFileWithProgress(i)}}),o.createEl("hr");let e=o.createDiv({cls:"cm-paste-box",text:r("modals.addBackground.pasteBoxPlaceholder")});e.setAttribute("contenteditable","true"),e.addEventListener("paste",t=>{t.preventDefault();let s=t.clipboardData;if(!s)return;if(s.files&&s.files.length>0){let a=s.files[0];if(a.type.startsWith("image/")||a.type.startsWith("video/")){this.handlePastedFile(a).catch(l=>{console.error("Failed to handle pasted file:",l)});return}}let i=s.getData("text/plain");if(i&&(i.startsWith("http://")||i.startsWith("https://")||i.startsWith("data:image"))){this.handlePastedUrl(i).catch(a=>{console.error("Failed to handle pasted URL:",a)});return}new b.Notice(r("notices.backgroundPasteError"))}),e.addEventListener("dragover",t=>{t.preventDefault(),e.classList.add("is-over"),e.textContent=r("modals.addBackground.dropToAdd")}),e.addEventListener("dragleave",()=>{e.classList.remove("is-over"),e.textContent=r("modals.addBackground.pasteBoxPlaceholder")}),e.addEventListener("drop",t=>{if(t.preventDefault(),e.classList.remove("is-over"),e.textContent=r("modals.addBackground.pasteBoxPlaceholder"),!t.dataTransfer)return;if(t.dataTransfer.files&&t.dataTransfer.files.length>0){let i=t.dataTransfer.files[0];if(i.type.startsWith("image/")){this.handlePastedFile(i);return}}let s=t.dataTransfer.getData("text/uri-list")||t.dataTransfer.getData("text/plain");if(s&&(s.startsWith("http")||s.startsWith("data:image"))){this.handlePastedUrl(s);return}new b.Notice(r("notices.backgroundPasteError"))})}onClose(){this.contentEl.empty()}},Mt=class extends W{constructor(e,t,s,i){super(e,t);this.videoPlayers=[];this.settingTab=s,this.closeCallback=i}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),this.videoPlayers=[],e.createEl("h3",{text:r("modals.backgroundBrowser.title")}),this.galleryEl=e.createDiv({cls:"cm-image-gallery"}),this._renderImages().catch(t=>{console.error("Failed to render images:",t)})}async _renderImages(){await this.displayImages()}async displayImages(){this.galleryEl.empty();let e=`${this.app.vault.configDir}/backgrounds`,t=[".png",".jpg",".jpeg",".gif",".webp",".svg",".mp4",".webm"],s=[];try{await this.app.vault.adapter.exists(e)&&(s=(await this.app.vault.adapter.list(e)).files)}catch(p){console.warn("Color Master: Error listing background folder.",p)}let i=s.filter(p=>t.some(u=>p.toLowerCase().endsWith(u)));if(i.length===0){this.galleryEl.createDiv({cls:"cm-image-browser-empty",text:r("modals.backgroundBrowser.noImages")});return}let l=this.plugin.settings.profiles[this.plugin.settings.activeProfile]?.backgroundPath,c=p=>{let u=decodeURIComponent(p||""),g=u.lastIndexOf(".");return g>0&&g{(0,b.setIcon)(_,O.muted?"volume-x":"volume-2"),_.setCssProps({opacity:"0"})};$(),_.addEventListener("click",Y=>{Y.stopPropagation(),O.muted=!O.muted,$(),_.setCssProps({opacity:O.muted?"0.8":"1"})}),h.addEventListener("click",()=>{for(let Y of this.videoPlayers)if(Y!==O&&!Y.paused){Y.pause();let ae=Y.closest(".cm-media-preview-container");if(ae){let Ne=ae.querySelector(".cm-media-play-overlay"),ze=ae.querySelector(".cm-media-mute-toggle");Ne?.setCssProps({opacity:"1"}),ze?.setCssProps({opacity:"0"})}}O.paused?(O.play().catch(Y=>{console.error("Failed to play video:",Y)}),A.setCssProps({opacity:"0"}),_.setCssProps({opacity:O.muted?"0.8":"1"})):(_.setCssProps({opacity:"0"}),O.pause(),A.setCssProps({opacity:"1"}))})}else h.createEl("img",{cls:"cm-image-card-preview",attr:{src:g,"data-path":p}});let w=u.createDiv({cls:"setting-item cm-image-card-name-input"}).createDiv({cls:"setting-item-control"}).createDiv({cls:"cm-name-input-container"}),v=w.createEl("input",{type:"text",cls:"cm-name-input-basename"}),y=w.createSpan({cls:"cm-name-input-extension"}),x=p,k=m||"",{basename:F,ext:U}=c(k);v.value=F,y.setText(U),v.addEventListener("focus",O=>O.target.select());let I=async()=>{let O=v.value.trim(),A=c(k).basename;if(O&&O!==A){let _=O+U,$=await this.plugin.renameBackgroundMedia(x,_);if($&&typeof $=="string"){x=$,k=$.split("/").pop()||"",F=c(k).basename;let ae=u.querySelector(".cm-image-card-preview"),Ne=u.querySelector(".cm-image-card-select-btn"),ze=u.querySelector(".cm-image-card-delete-btn");ae&&(ae.src=this.app.vault.adapter.getResourcePath($)),Ne&&(Ne.onclick=()=>this.selectMedia($)),ze&&(ze.onclick=()=>this.deleteMedia($,u))}else v.value=A}else v.value=A};v.addEventListener("keydown",O=>{O.key==="Enter"&&(O.preventDefault(),v.blur())}),v.addEventListener("focusout",()=>{I().catch(O=>{console.error("Failed to save snippet name:",O)})});let T=u.createDiv({cls:"cm-image-card-controls"});new b.ButtonComponent(T).setButtonText(r("buttons.select")).setCta().onClick(()=>this.selectMedia(x)).buttonEl.classList.add("cm-image-card-select-btn"),new b.ButtonComponent(T).setIcon("trash").setClass("mod-warning").onClick(()=>this.deleteMedia(x,u)).buttonEl.classList.add("cm-image-card-delete-btn"),d.appendChild(u)}this.galleryEl.appendChild(d)}async selectMedia(e){let t=e.split(".").pop()?.toLowerCase(),s=t==="mp4"||t==="webm"?"video":"image";await this.plugin.selectBackgroundMedia(e,s),this.settingTab.display(),this.closeCallback(),this.close()}deleteMedia(e,t){let s=this.plugin.settings.profiles,i=Object.keys(s).filter(l=>s[l].backgroundPath===e),a=new DocumentFragment;if(a.append(r("modals.confirmation.deleteGlobalBgDesc")),i.length>0){let l=a.createEl("ul",{cls:"cm-profile-list-modal"});i.forEach(c=>{l.createEl("li").createEl("strong",{text:c})})}new ie(this.app,this.plugin,r("modals.confirmation.deleteBackgroundTitle"),a,()=>{(async()=>{await this.plugin.removeBackgroundMediaByPath(e),new b.Notice(r("notices.bgDeleted")),t.remove(),this.galleryEl.childElementCount===0&&this.galleryEl.createDiv({cls:"cm-image-browser-empty",text:r("modals.backgroundBrowser.noImages")}),this.settingTab.display()})().catch(l=>{console.error("Failed to delete background:",l)})},{buttonText:r("buttons.deleteAnyway"),buttonClass:"mod-warning"}).open()}onClose(){for(let e of this.videoPlayers)e.pause();this.videoPlayers=[],this.contentEl.empty()}},Bt=class extends W{constructor(e,t){super(e,t);this.defaultResetOptions={deleteProfiles:!1,deleteSnippets:!1,deleteSettings:!1,deleteBackgrounds:!1,deleteLanguages:!1};this.resetOptions={...this.plugin.settings.advancedResetOptions||this.defaultResetOptions,deleteBackgrounds:this.plugin.settings.advancedResetOptions?.deleteBackgrounds||this.defaultResetOptions.deleteBackgrounds}}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),e.createEl("h3",{text:r("modals.advancedReset.title")}),e.createEl("p",{text:r("modals.advancedReset.desc")}),e.addClass("cm-advanced-reset-options"),new b.Setting(e).setName(r("modals.advancedReset.profilesLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.profilesDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteProfiles).onChange(i=>{this.resetOptions.deleteProfiles=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.snippetsLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.snippetsDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteSnippets).onChange(i=>{this.resetOptions.deleteSnippets=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.settingsLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.settingsDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteSettings).onChange(i=>{this.resetOptions.deleteSettings=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.backgroundsLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.backgroundsDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteBackgrounds).onChange(i=>{this.resetOptions.deleteBackgrounds=i,this.validateButton()}),s.toggleEl.blur()}),new b.Setting(e).setName(r("modals.advancedReset.languagesLabel")).addExtraButton(s=>{s.setIcon("info").setTooltip(r("modals.advancedReset.languagesDesc"))}).addToggle(s=>{s.setValue(this.resetOptions.deleteLanguages??!1).onChange(i=>{this.resetOptions.deleteLanguages=i,this.validateButton()}),s.toggleEl.blur()});let t=e.createDiv({cls:"modal-button-container"});new b.ButtonComponent(t).setButtonText(r("buttons.cancel")).onClick(()=>this.close()),this.deleteButton=new b.ButtonComponent(t).setButtonText(r("buttons.delete")).setWarning().onClick(()=>{Object.values(this.resetOptions).every(s=>s===!1)||(this.plugin.settings.advancedResetOptions=this.resetOptions,this.plugin.resetPluginData(this.resetOptions).catch(s=>{console.error("Failed to reset plugin data:",s)}),this.close())}),this.validateButton()}validateButton(){let e=Object.values(this.resetOptions).some(t=>t===!0);this.deleteButton.setDisabled(!e),this.deleteButton.setButtonText(e?r("buttons.delete"):r("buttons.selectOption"))}onClose(){this.contentEl.empty()}},Ft=class extends W{constructor(e,t,s){super(e,t);this.langName="";this.langCode="";this.isRtl=!1;this.settingTab=s}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),e.createEl("h3",{text:r("modals.addLang.title")}),e.createEl("p",{text:r("modals.addLang.desc")}),new b.Setting(e).setName(r("modals.addLang.nameLabel")).setDesc(r("modals.addLang.nameDesc")).addText(s=>{s.setPlaceholder(r("modals.addLang.namePlaceholder")).onChange(i=>{this.langName=i.trim()})}),new b.Setting(e).setName(r("modals.addLang.codeLabel")).setDesc(r("modals.addLang.codeDesc")).addText(s=>{s.setPlaceholder(r("modals.addLang.codePlaceholder")).onChange(i=>{this.langCode=i.trim().toLowerCase().replace(/[^a-z0-9_-]/g,""),s.inputEl.value!==this.langCode&&s.setValue(this.langCode)})}),new b.Setting(e).setName(r("modals.addLang.rtlLabel")).setDesc(r("modals.addLang.rtlDesc")).addToggle(s=>{s.setValue(this.isRtl).onChange(i=>{this.isRtl=i})});let t=e.createDiv({cls:"modal-button-container"});new b.ButtonComponent(t).setButtonText(r("buttons.cancel")).onClick(()=>this.close()),new b.ButtonComponent(t).setButtonText(r("buttons.create")).setCta().onClick(()=>this.handleCreate())}async handleCreate(){if(!this.langName){new b.Notice(r("notices.langNameEmpty"));return}if(!this.langCode){new b.Notice(r("notices.langCodeEmpty"));return}if(["en","ar","fa","fr"].includes(this.langCode)){new b.Notice(r("notices.langCodeCore",this.langCode));return}if(this.plugin.settings.customLanguages||(this.plugin.settings.customLanguages={}),this.plugin.settings.customLanguages[this.langCode]){new b.Notice(r("notices.langCodeExists",this.langCode));return}if(Object.values(this.plugin.settings.customLanguages).some(a=>a.languageName.toLowerCase()===this.langName.toLowerCase())){new b.Notice(r("notices.langNameExists",this.langName));return}if(Object.values(me).map(a=>a.toLowerCase()).includes(this.langName.toLowerCase())){new b.Notice(r("notices.langNameCore",this.langName));return}this.plugin.settings.customLanguages[this.langCode]={languageName:this.langName,translations:{},isRtl:this.isRtl},this.plugin.settings.language=this.langCode,await this.plugin.saveSettings(),Ce(this.plugin.settings),new b.Notice(r("notices.langCreated",this.langName)),this.settingTab.display(),this.close(),new tt(this.app,this.plugin,this.settingTab,this.langCode).open()}onClose(){this.contentEl.empty()}},tt=class extends W{constructor(e,t,s,i){super(e,t);this.isRtl=!1;this.searchQuery="";this.caseSensitive=!1;this.filterMissing=!1;this.settingTab=s,this.langCode=i,this.fallbackStrings=hn(),this.nestedFallback=lt(this.fallbackStrings);let a=this.plugin.settings.customLanguages?.[i],l=me[i];if(l){this.isCoreLanguage=!0,this.langName=l;let c=Se(Ie[i]),d={};for(let p in c)typeof c[p]=="string"&&(d[p]=c[p]);a&&a.translations?(this.translations={...d,...a.translations},this.isRtl=a.isRtl??(i==="ar"||i==="fa")):(this.translations=d,this.isRtl=i==="ar"||i==="fa")}else a?(this.langName=a.languageName,this.translations=JSON.parse(JSON.stringify(a.translations||{})),this.isCoreLanguage=!1,this.isRtl=a.isRtl||!1):(this.langName=i,this.translations={},this.isCoreLanguage=!1)}onOpen(){super.onOpen();let{contentEl:e}=this;e.empty(),this.modalEl.classList.add("color-master-modal","cm-translator-modal","cm-translator-tree-modal"),e.createEl("h3",{text:r("modals.translator.title",this.langName)}),this.debouncedRender=fe(()=>{this.renderTranslationTree()},250),this.renderControls(e),this.listContainer=e.createDiv("cm-translator-list"),this.renderTranslationTree(),new b.Setting(e).addButton(s=>{s.setButtonText(r("buttons.apply")).setCta().onClick(()=>this.handleSave())}).addButton(s=>{s.setButtonText(r("buttons.cancel")).onClick(()=>this.close())}).settingEl.classList.add("cm-translator-main-controls","modal-button-container")}renderControls(e){let t=e.createDiv("cm-translator-controls"),s=t.createDiv({cls:"cm-search-bar-container"}),i=new b.SearchComponent(s).setPlaceholder(r("modals.translator.searchPlaceholder")).setValue(this.searchQuery).onChange(p=>{this.searchQuery=p,this.debouncedRender()});this.searchInput=i.inputEl,s.addClass("cm-search-input-container");let a=s.createDiv({cls:"cm-search-actions"}),l=a.createEl("button",{cls:"cm-search-action-btn",text:"Aa"});l.setAttr("aria-label",r("settings.ariaCase")),l.classList.toggle("is-active",this.caseSensitive),l.addEventListener("click",()=>{this.caseSensitive=!this.caseSensitive,l.classList.toggle("is-active",this.caseSensitive),this.debouncedRender()});let c=a.createEl("button",{cls:"cm-search-action-btn"});(0,b.setIcon)(c,"filter"),c.setAttr("aria-label",r("modals.translator.showMissing")),c.classList.toggle("is-active",this.filterMissing),c.addEventListener("click",()=>{this.filterMissing=!this.filterMissing,c.classList.toggle("is-active",this.filterMissing),this.debouncedRender()});let d=t.createDiv("cm-translator-io-controls");new b.Setting(d).addButton(p=>p.setIcon("copy").setTooltip(r("modals.translator.copyJson")).onClick(()=>this._copyJson())).addButton(p=>p.setIcon("paste").setTooltip(r("modals.translator.pasteJson")).onClick(()=>this._pasteJson())).addButton(p=>p.setIcon("download").setTooltip(r("modals.translator.importFile")).onClick(()=>this._importLanguageFile())).addButton(p=>p.setIcon("upload").setTooltip(r("modals.translator.exportFile")).onClick(()=>this._exportLanguageFile()))}renderTranslationTree(){this.listContainer.empty();let e={index:1},t=this.caseSensitive?this.searchQuery:this.searchQuery.toLowerCase();this.renderGroup(this.listContainer,this.nestedFallback,"",e,t)===0&&(this.searchQuery||this.filterMissing)&&this.listContainer.createEl("p",{cls:"cm-translator-empty",text:r("modals.translator.noMatches")})}renderGroup(e,t,s,i,a){let l=0,c=Object.keys(t).sort((d,p)=>{let u=t[d],g=t[p],m=typeof u=="object"&&u!==null,f=typeof g=="object"&&g!==null;return m&&!f?-1:!m&&f?1:d.localeCompare(p)});for(let d of c){let p=s?`${s}.${d}`:d,u=t[d],g=this.translations[p],m=this.caseSensitive?d:d.toLowerCase(),f="";typeof u=="string"?f=u:typeof u=="function"&&(f=r("modals.translator.dynamicValue"));let h=this.caseSensitive?f:f.toLowerCase(),E=typeof g=="string"?this.caseSensitive?g:g.toLowerCase():"",S=!a||m.includes(a)||h.includes(a)||E.includes(a);if(typeof u=="object"&&u!==null){let w=e.createEl("details",{cls:"cm-translator-group"});w.createEl("summary",{cls:"cm-translator-group-title"}).createSpan({text:d});let y=w.createDiv("cm-translator-group-content"),x=this.renderGroup(y,u,p,i,a);x>0?(l+=x,(a||this.filterMissing)&&(w.open=!0)):w.remove()}else if(typeof u=="string"||typeof u=="function"){let w=!g;if((!this.filterMissing||w)&&S){l++;let y=e.createDiv({cls:"cm-translator-item setting-item"});y.createSpan({cls:"cm-translator-index",text:`${i.index++}.`});let x=y.createDiv("setting-item-info"),F=x.createDiv("setting-item-name cm-translator-key").createSpan();this.highlightMatch(F,d,a);let U=x.createDiv({cls:"setting-item-description"}),I=f.length>100;if((p.endsWith(".desc")||p.endsWith("Desc")||p.includes("langInfo"))&&I){let A=f.substring(0,100)+"...";this.highlightMatch(U,A,a);let _=x.createEl("a",{cls:"cm-translator-toggle",text:r("modals.translator.showMore")}),$=!1;_.onclick=()=>{$=!$;let Y=$?f:A;this.highlightMatch(U,Y,a),_.setText($?r("modals.translator.showLess"):r("modals.translator.showMore"))}}else this.highlightMatch(U,f,a);let P=y.createDiv("setting-item-control");(this.isLongString(f)?new b.TextAreaComponent(P):new b.TextComponent(P)).setValue(g||"").setPlaceholder(f).onChange(A=>{A?this.translations[p]=A:delete this.translations[p]})}}}return l}highlightMatch(e,t,s){if(e.empty(),!s){e.setText(t);return}try{let i=this.caseSensitive?"g":"gi",a=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=new RegExp(a,i),c=0,d;for(;(d=l.exec(t))!==null;)d.index>c&&e.appendText(t.substring(c,d.index)),e.createSpan({cls:"cm-search-match",text:d[0]}),c=l.lastIndex;c50||e.includes(` +`)}async handleSave(){this.plugin.settings.customLanguages||(this.plugin.settings.customLanguages={});let e=this.translations;if(this.isCoreLanguage){let s=Se(Ie[this.langCode]),i={};for(let a in this.translations){let l=this.translations[a],c=s[a];l!==c&&l!==void 0&&(i[a]=l)}e=i}let t=this.langName;this.plugin.settings.customLanguages[this.langCode]={languageName:t,translations:e,isRtl:this.isRtl},await this.plugin.saveSettings(),this.plugin.settings.language===this.langCode&&Ce(this.plugin.settings),new b.Notice(r("notices.langSaved",this.langName)),this.settingTab.display(),this.close()}_exportLanguageFile(){let e=lt(this.translations),t=JSON.stringify(e,null,2),s=new Blob([t],{type:"application/json"}),i=URL.createObjectURL(s),a=document.createElement("a");a.href=i,a.download=`${this.langCode}.json`,a.click(),URL.revokeObjectURL(i),a.remove(),new b.Notice(r("notices.langExported",this.langCode))}_importLanguageFile(){let e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=()=>{(async()=>{if(!e.files||e.files.length===0)return;let t=e.files[0];try{let s=await t.text(),i=JSON.parse(s),a=Se(i);this.translations={...this.translations,...a},new b.Notice(r("notices.langImported",t.name)),this.renderTranslationTree()}catch(s){new b.Notice(r("notices.invalidJson")),console.error("Failed to import language file:",s)}})().catch(t=>{console.error("Unhandled file import error:",t)})},e.click()}_copyJson(){let e=lt(this.translations),t=JSON.stringify(e,null,2);navigator.clipboard.writeText(t).catch(s=>{console.error("Failed to copy JSON to clipboard:",s)}),new b.Notice(r("notices.langCopiedJson"))}_pasteJson(){(async()=>{try{let e=await navigator.clipboard.readText();if(!e)return;let t=JSON.parse(e),s=Se(t),i=0;for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&this.fallbackStrings[a]!==void 0&&(this.translations[a]=s[a],i++);new b.Notice(r("notices.langPastedJson",i)),this.renderTranslationTree()}catch(e){new b.Notice(r("notices.invalidJson")),console.error("Failed to paste JSON from clipboard:",e)}})().catch(e=>{console.error("Unhandled paste JSON error:",e)})}onClose(){this.contentEl.empty()}};function Jn(n,o,e){let t=o.plugin,i=t.settings.profiles[t.settings.activeProfile].vars;for(let[c,d]of Object.entries(X)){let p,u=c.toLowerCase();u==="interactive elements"?p="interactive":u==="ui elements"?p="ui":u==="graph view"?p="graph":u==="plugin integrations"?p="pluginintegrations":p=u.replace(/ /g,"");let g=r(`categories.${p}`)||c,m=["cm-category-container"],f=n.createDiv({cls:m.join(" ")});f.dataset.category=c,f.createEl("h3",{text:g});for(let[h,E]of Object.entries(d)){let S=e[h]||"",w=r(`colors.descriptions.${h}`)||"",v=new $e.Setting(n).setName(r(`colors.names.${h}`)||h).setDesc(w);p==="pluginintegrations"&&h==="--iconize-icon-color"&&(Ue(t.app)||v.nameEl.createSpan({text:r("options.badgeNotInstalled"),cls:"cm-not-installed-badge"}).setAttr("aria-label",r("tooltips.iconizeNotInstalled"))),h==="--iconize-icon-color"&&v.addExtraButton(T=>{T.setIcon("settings").setTooltip(r("tooltips.iconizeSettings")).onClick(()=>{new Pt(o.app,t).open()})}),c==="Notices"&&v.addExtraButton(T=>{T.setIcon("settings").onClick(()=>{let P=h.includes("-text-")?"text":"background";new Tt(o.app,t,o,P).open()})}),v.settingEl.classList.add("cm-var-row"),v.settingEl.dataset.var=h,v.settingEl.dataset.category=c,v.nameEl.classList.add("cm-var-name");let y=st[h];if(y){let T=i[h]||S,P=i[y]||e[y]||"#ffffff";h==="--text-highlight-bg"&&([T,P]=[P,T]);let V=rt(P,T),O=at(V),A=v.controlEl.createDiv({cls:`cm-accessibility-checker ${O.cls}`});A.dataset.varName=h,A.setText(`${O.text} (${O.score})`)}let x=v.controlEl.createEl("input",{type:"color"}),k=v.controlEl.createEl("input",{type:"text",cls:"color-master-text-input"}),F=Object.prototype.hasOwnProperty.call(i,h),U=F?i[h]:S;v.settingEl.classList.add(F?"is-modified":"is-pristine"),k.value=U,o.updateColorPickerAppearance(k,x),x.addEventListener("input",T=>{let P=T.target.value;k.value=P,t.settings.colorUpdateFPS>0&&(t.pendingVarUpdates[h]=P)});let I=T=>{k.value=T,o.updateColorPickerAppearance(k,x);let P=t.settings.profiles[t.settings.activeProfile],V=Object.prototype.hasOwnProperty.call(i,h)?i[h]:S;V.toLowerCase()!==T.toLowerCase()&&(P.history=P.history||{},P.history[h]=P.history[h]||[],P.history[h].unshift(V),P.history[h]=P.history[h].slice(0,5)),T.trim()===""||T.toLowerCase()===S.toLowerCase()?(v.settingEl.classList.remove("is-modified"),v.settingEl.classList.add("is-pristine"),delete i[h]):(v.settingEl.classList.remove("is-pristine"),v.settingEl.classList.add("is-modified"),i[h]=T);let O=T.trim()===""||T.toLowerCase()===S.toLowerCase()?"":T;if(t.settings.colorUpdateFPS===0){t.pendingVarUpdates[h]=O,t.applyPendingNow(),t.saveSettings();return}t.pendingVarUpdates[h]=O,t.saveSettings(),o.updateAccessibilityCheckers(),setTimeout(()=>o.app.workspace.trigger("css-change"),50)};x.addEventListener("change",T=>{I(T.target.value)}),k.addEventListener("change",T=>{I(T.target.value)}),v.addExtraButton(T=>{T.setIcon("eraser").setTooltip(r("tooltips.setTransparent")).onClick(()=>{let P="transparent";k.value=P,I(P),o.updateColorPickerAppearance(k,x)})}),v.addExtraButton(T=>{T.setIcon("reset").setTooltip(r("tooltips.undoChange")).onClick(async()=>{let V=t.settings.profiles[t.settings.activeProfile].history?.[h],O=e[h]||E||"#ffffff";if(V&&V.length>0){let _=V.shift()??O;i[h]=_,k.value=_,o.updateColorPickerAppearance(k,x),_.trim()===""?(v.settingEl.classList.remove("is-modified"),v.settingEl.classList.add("is-pristine"),delete i[h]):(v.settingEl.classList.remove("is-pristine"),v.settingEl.classList.add("is-modified")),await t.saveSettings(),o.updateAccessibilityCheckers(),new $e.Notice(r("notices.colorRestored",_))}else new $e.Notice(r("notices.noColorHistory"))})})}}let a=new Set(Object.keys(de(X))),l={};for(let c in i)a.has(c)||(l[c]=i[c]);if(Object.keys(l).length>0){let c=n.createDiv({cls:"cm-category-container"});c.dataset.category="Custom",c.createEl("h3",{text:r("categories.custom"),cls:"cm-section-heading"});let d=t.settings.profiles[t.settings.activeProfile];for(let[p,u]of Object.entries(l)){let g=d.customVarMetadata?.[p],m=g?.type||"color",f=g?.name||p,h=g?.desc||r("categories.customDesc"),E=u!=="",S=new $e.Setting(c).setName(f).setDesc(h);S.settingEl.classList.add("cm-var-row",E?"is-modified":"is-pristine"),S.settingEl.dataset.var=p,S.settingEl.dataset.category="Custom",S.nameEl.classList.add("cm-var-name");let w=v=>{d.vars[p]=v,v===""?(S.settingEl.classList.remove("is-modified"),S.settingEl.classList.add("is-pristine")):(S.settingEl.classList.remove("is-pristine"),S.settingEl.classList.add("is-modified")),t.settings.colorUpdateFPS>0?t.pendingVarUpdates[p]=v:(document.body.setCssProps({[p]:v||null}),t.saveSettings()),t.settings.colorUpdateFPS>0&&t.saveSettings()};switch(m){case"color":{let v=S.controlEl.createEl("input",{type:"color"}),y=S.controlEl.createEl("input",{type:"text",cls:"color-master-text-input"});y.value=u,o.updateColorPickerAppearance(y,v),v.addEventListener("input",x=>{let k=x.target.value;y.value=k,t.settings.colorUpdateFPS>0&&(t.pendingVarUpdates[p]=k)}),v.addEventListener("change",x=>{w(x.target.value),o.updateColorPickerAppearance(y,v)}),y.addEventListener("change",x=>{let k=x.target.value;w(k),o.updateColorPickerAppearance(y,v)}),S.addExtraButton(x=>{x.setIcon("eraser").setTooltip(r("tooltips.setTransparent")).onClick(()=>{let k="transparent";y.value=k,w(k),o.updateColorPickerAppearance(y,v)})});break}case"size":{let v=u.match(/(-?\d*\.?\d+)\s*(px|em|rem|%|vw|vh|auto)?/),y=v?.[1]||"10",x=v?.[2]||"px";u==="auto"&&(y="",x="auto");let k=S.controlEl.createEl("input",{type:"number",cls:"color-master-text-input"});k.value=y,k.setCssProps({width:"80px"});let F=S.controlEl.createEl("select",{cls:"dropdown cm-search-small"}),U=["px","em","rem","%","vw","vh","auto"];U.includes(x)||(x="px"),U.forEach(T=>{F.createEl("option",{text:T,value:T})}),F.value=x;let I=()=>{let T=k.value||"0",P=F.value,V=P==="auto"?"auto":`${T}${P}`;k.disabled=P==="auto",w(V)};k.addEventListener("change",I),F.addEventListener("change",I),k.disabled=x==="auto";break}case"text":{S.controlEl.classList.add("cm-full-width-control");let v=S.controlEl.createEl("input",{type:"text",cls:"cm-wide-text-input"});v.value=u,v.placeholder="Enter text value...",v.addEventListener("change",y=>{w(y.target.value)});break}case"number":{let v=S.controlEl.createEl("input",{type:"number",cls:"color-master-text-input"});v.value=u,v.setCssProps({width:"100px"}),v.addEventListener("change",y=>{w(y.target.value)});break}default:{S.controlEl.classList.add("cm-full-width-control");let v=S.controlEl.createEl("input",{type:"text",cls:"cm-wide-text-input"});v.value=u,v.addEventListener("change",y=>{w(y.target.value)});break}}S.addExtraButton(v=>{v.setIcon("trash").setTooltip(r("tooltips.deleteCustomVar")).onClick(async()=>{delete d.vars[p],document.body.setCssProps({[p]:null}),d.customVarMetadata?.[p]&&delete d.customVarMetadata[p],await t.saveSettings(),o.display()})})}}}function qn(n,o){let e=n.createDiv("cm-profile-actions");e.createEl("button",{text:r("buttons.exportFile"),cls:"cm-profile-action-btn"}).addEventListener("click",()=>o._exportProfileToFile()),e.createEl("button",{text:r("buttons.copyJson"),cls:"cm-profile-action-btn"}).addEventListener("click",()=>{o._copyProfileToClipboard().catch(s=>{console.error("Failed to copy profile to clipboard:",s)})}),e.createDiv({cls:"cm-profile-action-spacer"}),e.createEl("button",{text:r("buttons.importCss"),cls:"cm-profile-action-btn cm-paste-css-btn"}).addEventListener("click",()=>{new _e(o.app,o.plugin,o,null).open()}),e.createEl("button",{text:r("buttons.importJson"),cls:"cm-profile-action-btn mod-cta"}).addEventListener("click",()=>new xt(o.app,o.plugin,o).open())}var sn=require("obsidian");var Fo="https://github.com/YazanAmmar/obsidian-color-master",Ao="https://github.com/YazanAmmar/obsidian-color-master/issues",Ro="https://github.com/YazanAmmar/SyncEveryThing",Vo="https://t.me/ThemeEngine";function _o(n){return Object.keys(n.plugin.settings.profiles||{}).length}function $o(n){let o=n.plugin.settings,e=o.profiles||{},t=o.globalSnippets?o.globalSnippets.length:0;for(let s in e){let i=e[s];i&&Array.isArray(i.snippets)&&(t+=i.snippets.length)}return t}function zo(n){let o=new Set(Object.keys(de(X))),e=n.plugin.settings.profiles[n.plugin.settings.activeProfile];return e&&e.vars&&Object.keys(e.vars).forEach(t=>o.add(t)),o.size}function Ho(){try{if(X&&X["Plugin Integrations"])return Object.keys(X["Plugin Integrations"]).length}catch(n){console.error("Color Master: Failed to calculate plugin integrations.",n)}return 0}function Gn(n,o){let e=n.createDiv("cm-like-card"),s=e.createDiv("cm-like-card-header").createDiv("cm-like-card-header-text");s.createEl("h3",{text:r("plugin.name")}),s.createEl("p",{text:r("likeCard.description")});let i=e.createDiv("cm-like-card-stats"),a=_o(o),l=$o(o),c=zo(o),d=Ho(),p=o.plugin.settings.installDate||new Date().toISOString(),u=Math.max(1,Math.floor((Date.now()-new Date(p).getTime())/(1e3*60*60*24))),g=(h,E,S)=>{let w=i.createDiv("cm-stat-item"),v=w.createDiv("cm-stat-icon");(0,sn.setIcon)(v,h);let y=w.createDiv("cm-stat-text");y.createDiv({cls:"cm-stat-value",text:String(S)}),y.createDiv({cls:"cm-stat-label",text:E})};g("folder-tree",r("likeCard.profilesAndSnippets"),`${a} / ${l}`),g("palette",r("likeCard.customizableColors"),c),g("plug-zap",r("categories.pluginintegrations"),d),g("calendar-clock",r("likeCard.daysOfUse"),u);let m=e.createDiv("cm-like-card-actions"),f=(h,E,S)=>{let w=m.createEl("a",{cls:"cm-action-button",href:S,attr:{"aria-label":E,target:"_blank",rel:"noopener noreferrer"}});(0,sn.setIcon)(w,h)};f("github",r("likeCard.githubButton"),Fo),f("bug",r("likeCard.reportIssueButton"),Ao),f("git-pull-request-arrow",r("likeCard.syncVaultButton"),Ro),f("send",r("likeCard.telegramButton"),Vo)}var ce=require("obsidian");function Wn(n,o){let e=o.plugin,t=e.settings.profiles[e.settings.activeProfile];n.createEl("h3",{text:r("options.heading")}),n.createEl("hr");let s=n.createDiv("cm-advanced-settings-grid"),i=new ce.Setting(s).setName(r("options.liveUpdateName")).setDesc(r("options.liveUpdateDesc")).addSlider(p=>{p.setLimits(0,60,1).setValue(e.settings.colorUpdateFPS).setDynamicTooltip().onChange(async u=>{e.settings.colorUpdateFPS=u,await e.saveSettings(),e.restartColorUpdateLoop(),new ce.Notice(r("notices.fpsUpdated",u))})});i.nameEl.appendChild(i.controlEl),i.settingEl.classList.add("cm-card-with-header-control");let a=new ce.Setting(s).setName(r("options.addCustomVarName")).setDesc(r("options.addCustomVarDesc")).addButton(p=>{p.setButtonText(r("options.addNewVarButton")).setClass("cm-add-variable-button").onClick(()=>{new Dt(o.app,e,o,u=>{(async()=>{t.customVarMetadata||(t.customVarMetadata={}),t.vars[u.varName]=u.varValue,t.customVarMetadata[u.varName]={name:u.displayName,desc:u.description,type:u.varType},await e.saveSettings(),new ce.Notice(r("notices.varAdded",u.varName)),o.display()})().catch(g=>{console.error("Failed to add custom variable:",g)})}).open()})});a.nameEl.appendChild(a.controlEl),a.settingEl.classList.add("cm-card-with-header-control");let l=new ce.Setting(s).setName(r("options.resetPluginName")).setDesc(r("options.resetPluginDesc")).addButton(p=>{p.setButtonText(r("options.resetPluginButton")).setWarning().onClick(()=>{new Bt(o.app,e).open()}),(0,ce.setIcon)(p.buttonEl,"database-backup"),p.buttonEl.classList.add("cm-reset-plugin-icon-button")});l.nameEl.appendChild(l.controlEl),l.settingEl.classList.add("cm-card-with-header-control");let c=l.controlEl.querySelector(".setting-editor-button");c&&(c.textContent="");let d=new ce.Setting(s).setName(r("options.backgroundName")).setDesc(r("options.backgroundDesc"));d.nameEl.appendChild(d.controlEl),d.settingEl.classList.add("cm-card-with-header-control"),d.addButton(p=>{p.setIcon("plus").setTooltip(r("tooltips.addBg")).setClass("cm-control-icon-button").onClick(()=>{new Ot(o.app,e,o).open()})}).addButton(p=>{p.setIcon("package-search").setTooltip(r("tooltips.browseBg")).setClass("cm-control-icon-button").onClick(()=>{new Mt(o.app,e,o,()=>{}).open()})}).addButton(p=>{p.setIcon("trash").setTooltip(r("tooltips.removeBg")).setClass("cm-control-icon-button").onClick(()=>{let g=e.settings.profiles[e.settings.activeProfile]?.backgroundPath;if(!g){new ce.Notice(r("notices.noBgToRemove"));return}let m=[];for(let h in e.settings.profiles)e.settings.profiles[h].backgroundPath===g&&m.push(h);let f=new DocumentFragment;if(f.append(r("modals.confirmation.deleteGlobalBgDesc")),m.length>0){let h=f.createEl("ul",{cls:"cm-profile-list-modal"});m.forEach(E=>{h.createEl("li").createEl("strong",{text:E})})}new ie(o.app,e,r("modals.confirmation.deleteGlobalBgTitle"),f,()=>{(async()=>{await e.removeBackgroundMediaByPath(g),new ce.Notice(r("notices.bgDeleted"))})().catch(h=>{console.error("Failed to delete background image:",h)})},{buttonText:r("buttons.deleteAnyway"),buttonClass:"mod-warning"}).open()})}).addButton(p=>{p.setIcon("settings").setTooltip(r("tooltips.bgSettings")).setClass("cm-control-icon-button").onClick(()=>{new Nt(o.app,e).open()})})}var re=require("obsidian");function Kn(n,o){let e=o.plugin;n.createEl("h3",{text:r("profileManager.heading"),cls:"cm-section-heading"});let t=e.settings.activeProfile,s=e.settings.profiles[t],i=s?.isCssProfile,a=new re.Setting(n).setName(r("profileManager.activeProfile")).setDesc(r("profileManager.activeProfileDesc")).setClass("cm-profile-manager-controls").addDropdown(c=>{for(let d in e.settings.profiles){let p=d;e.settings.profiles[d]?.isCssProfile&&(p+=" (CSS)"),c.addOption(d,p)}c.setValue(t),c.onChange(async d=>{e.removeInjectedCustomCss(),e.settings.activeProfile=d,e.pendingVarUpdates={},await e.saveSettings(),o.display()})}).addButton(c=>{let d=e.settings.profiles[e.settings.activeProfile];if(!d){c.buttonEl.hide();return}c.buttonEl.classList.add("cm-control-button");let p=u=>{switch(u){case"light":c.setIcon("sun").setTooltip(r("profileManager.tooltipThemeLight"));break;case"dark":c.setIcon("moon").setTooltip(r("profileManager.tooltipThemeDark"));break;default:c.setIcon("sun-moon").setTooltip(r("profileManager.tooltipThemeAuto"));break}};p(d.themeType),c.buttonEl.addEventListener("click",()=>{(async()=>{let u=d.themeType,g;u==="light"?(g="dark",new re.Notice(r("notices.themeSwitchedDark"))):u==="dark"?(g="auto",new re.Notice(r("notices.themeSwitchedAuto"))):(g="light",new re.Notice(r("notices.themeSwitchedLight"))),d.themeType=g,p(g),await e.saveSettings()})().catch(u=>{console.error("Failed to switch theme type:",u)})})}).addButton(c=>{i&&s?c.setIcon("pencil").setTooltip(r("tooltips.editCssProfile")).onClick(()=>{let d={name:t,css:s.customCss||"",isProfile:!0};new _e(o.app,e,o,d).open()}):c.buttonEl.hide(),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{o.pinBtn=c,c.setIcon("pin").setTooltip(r("tooltips.pinSnapshot")).onClick(async()=>{await e.pinProfileSnapshot(e.settings.activeProfile),new re.Notice(r("notices.profilePinned")),o._updatePinButtons(),e.settings.profiles[e.settings.activeProfile].vars={},e.pendingVarUpdates={},o.display()}),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{o.resetPinBtn=c,c.setIcon("history").setTooltip(r("tooltips.resetToPinned")).onClick(()=>{let d=e.settings.activeProfile;new ie(o.app,e,r("modals.confirmation.resetProfileTitle"),r("modals.confirmation.resetProfileDesc"),()=>{(async()=>{await e.resetProfileToPinned(d),new re.Notice(r("notices.profileReset")),o.display()})().catch(p=>{console.error("Failed to reset profile:",p)})},{buttonText:r("buttons.reset"),buttonClass:"mod-cta"}).open()}),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{c.setButtonText(r("buttons.new")).onClick(()=>{new kt(o.app,e,d=>{(async()=>{if(!d||!d.name)return;if(e.settings.profiles[d.name]){new re.Notice(r("notices.profileNameExists",d.name));return}let p={},u=d.themeType,g=u;u==="auto"&&(g=document.body.classList.contains("theme-dark")?"dark":"light"),e.settings.profiles[d.name]={vars:p,themeType:g,snippets:[],noticeRules:{text:[],background:[]}},e.settings.activeProfile=d.name,e.pendingVarUpdates={},await e.saveSettings(),o.display()})().catch(p=>{console.error("Failed to create new profile:",p)})}).open()}),c.buttonEl.classList.add("cm-control-button")}).addButton(c=>{c.setButtonText(r("buttons.delete")).onClick(()=>{if(Object.keys(e.settings.profiles).length<=1){new re.Notice(r("notices.cannotDeleteLastProfile"));return}let d=r("modals.deleteProfile.confirmation",e.settings.activeProfile);new ie(o.app,e,r("modals.deleteProfile.title"),d,()=>{e.removeInjectedCustomCss(),delete e.settings.profiles[e.settings.activeProfile],e.settings.activeProfile=Object.keys(e.settings.profiles)[0],e.pendingVarUpdates={},e.saveSettings(),o.display(),new re.Notice(r("notices.profileDeleted"))}).open()}),c.buttonEl.classList.add("cm-control-button")}),l=e.app.customCss.theme;if(l){let c=a.nameEl.createSpan({cls:"cm-theme-warning-icon"});(0,re.setIcon)(c,"alert-triangle"),c.setAttr("aria-label",r("settings.themeWarningTooltip",l))}a.settingEl.classList.add("cm-active-profile-controls"),o._updatePinButtons()}var K=require("obsidian");function Uo(n,o){let e=o.plugin;if(o.snippetSortable&&o.snippetSortable.destroy(),!Ve){console.warn("Color Master: SortableJS library not found.");return}let t=e.settings.snippetsLocked||!1;o.snippetSortable=new Ve(n,{handle:".cm-snippet-drag-handle",animation:160,ghostClass:"cm-snippet-ghost",dragClass:"cm-snippet-dragged",disabled:t,onEnd:s=>{(async()=>{let{oldIndex:i,newIndex:a}=s;if(i===a)return;let l=e.settings.globalSnippets||[],c=e.settings.profiles[e.settings.activeProfile].snippets||[],d=l.length;if(i=d){o.display(),new K.Notice(r("notices.snippetScopeMove"));return}let[p]=l.splice(i,1);l.splice(a,0,p)}else{if(a{console.error("Failed to reorder snippets:",i)})}})}function Qn(n,o){let e=o.plugin,t=n.createDiv({cls:"cm-snippets-header"}),s=e.settings.snippetsLocked||!1;t.createEl("h3",{text:r("snippets.heading")});let i=new K.Setting(t).setClass("cm-snippets-add-button");i.addExtraButton(u=>{u.setIcon(s?"lock":"lock-open").setTooltip(s?r("tooltips.unlockSnippets"):r("tooltips.lockSnippets")).onClick(async()=>{e.settings.snippetsLocked=!s,await e.saveSettings(),o.display(),new K.Notice(s?r("notices.snippetsUnlocked"):r("notices.snippetsLocked"))}),u.extraSettingsEl.classList.add("cm-snippet-lock-btn"),s&&u.extraSettingsEl.classList.add("is-locked")}),i.addButton(u=>{u.setButtonText(r("snippets.createButton")).setCta().onClick(()=>{new et(o.app,e,o,null).open()})});let a=e.settings.profiles[e.settings.activeProfile];if(!a)return;let l=e.settings.globalSnippets||[],c=Array.isArray(a.snippets)?a.snippets:[],d=n.createDiv({cls:"cm-snippets-list-container"});if(l.length===0&&c.length===0){d.createDiv("cm-snippets-empty-state").setText(r("snippets.noSnippetsDesc"));return}let p=(u,g,m)=>{let f=d.createDiv({cls:"setting-item cm-snippet-item"}),h=f.createDiv({cls:"cm-snippet-drag-container"}),E=h.createDiv({cls:"cm-snippet-drag-handle"});(0,K.setIcon)(E,"grip-vertical"),s&&E.classList.add("is-locked"),h.createEl("span",{cls:"cm-snippet-divider",text:"|"}),h.createDiv({cls:"cm-snippet-order-number",text:`${g+1}`});let w=f.createDiv("setting-item-info").createDiv({cls:"setting-item-name"});w.createSpan({text:u.name}),m&&w.createSpan({text:r("snippets.global"),cls:"cm-snippet-global-badge"});let v=f.createDiv("setting-item-control");new K.ToggleComponent(v).setValue(u.enabled).onChange(async y=>{u.enabled=y,await e.saveSettings()}),new K.ButtonComponent(v).setIcon("pencil").setTooltip(r("tooltips.editSnippet")).onClick(()=>{new et(o.app,e,o,u).open()}),new K.ButtonComponent(v).setIcon("copy").setTooltip(r("tooltips.copySnippetCss")).onClick(async y=>{if(!u.css){new K.Notice(r("notices.snippetEmpty"));return}await navigator.clipboard.writeText(u.css),new K.Notice(r("notices.snippetCssCopied"));let x=y.currentTarget;x&&((0,K.setIcon)(x,"check"),x.classList.add("is-success"),x.disabled=!0,setTimeout(()=>{x.classList.remove("is-success"),(0,K.setIcon)(x,"copy"),x.disabled=!1},1e3))}),new K.ButtonComponent(v).setIcon("trash").setTooltip(r("tooltips.deleteSnippet")).onClick(()=>{new ie(o.app,e,r("modals.confirmation.deleteSnippetTitle",u.name),r("modals.confirmation.deleteSnippetDesc"),()=>{(async()=>{let y=m?e.settings.globalSnippets:e.settings.profiles[e.settings.activeProfile].snippets,x=y.findIndex(k=>k.id===u.id);x>-1&&y.splice(x,1),await e.saveSettings(),o.display(),new K.Notice(r("notices.snippetDeleted"))})().catch(y=>{console.error("Failed to delete snippet:",y)})}).open()})};l.forEach((u,g)=>p(u,g,!0)),c.forEach((u,g)=>p(u,g+l.length,!1)),Uo(d,o)}var At=class extends R.PluginSettingTab{constructor(e,t){super(e,t);this.resetPinBtn=null;this.pinBtn=null;this.plugin=t,this.snippetSortable=null}updateColorPickerAppearance(e,t){let s=e.value.toLowerCase().trim();if(s==="transparent"||s==="")t.classList.add("is-transparent"),t.value="#ffffff";else if(s.startsWith("#")&&(s.length===9||s.length===5)){t.classList.remove("is-transparent");let i="#ffffff";if(s.length===9)i=s.substring(0,7);else if(s.length===5){let a=s[1],l=s[2],c=s[3];i=`#${a}${a}${l}${l}${c}${c}`}try{t.value=i}catch{console.warn(`Color Master: Invalid HEX for color picker: ${i}`),t.value="#ffffff"}}else{t.classList.remove("is-transparent");try{t.value=s}catch{t.value="#ffffff"}}}_clearSearchAndFilters(){if(!this.searchInput||!this.sectionSelect)return;this.searchInput.value="",this.sectionSelect.value="",this._searchState.query="",this._searchState.section="",this.plugin.settings.lastSearchQuery="",this.plugin.settings.lastSearchSection="",this.plugin.saveData(this.plugin.settings).catch(s=>{console.error("Failed to save search input state:",s)});let e=this.containerEl.querySelector('button[data-cm-action="filter"]'),t=this.containerEl.querySelector(".cm-search-filter-options");e&&e.classList.remove("is-active"),t&&t.classList.add("is-hidden"),this._applySearchFilter()}initSearchUI(e){this._searchState={query:this.plugin.settings.lastSearchQuery||"",regex:!1,caseSensitive:!1,section:this.plugin.settings.lastSearchSection||""};let t=e.createDiv({cls:"cm-search-bar-container"}),s=t.createDiv({cls:"cm-search-input-container"}),i=new R.SearchComponent(s).setPlaceholder(r("settings.searchPlaceholder")).setValue(this._searchState.query).onChange(g=>{this._searchState.regex||(this._searchState.query=g,this.plugin.settings.lastSearchQuery=g,this.plugin.saveData(this.plugin.settings).catch(m=>{console.error("Failed to save search/filter reset state:",m)}),u())});this.searchInput=i.inputEl,this.searchInput.addEventListener("keydown",g=>{g.key==="Enter"&&this._searchState.regex&&(this._searchState.query=g.target.value,u())});let a=t.createDiv({cls:"cm-search-actions"});this.caseToggle=a.createEl("button",{cls:"cm-search-action-btn"}),this.caseToggle.textContent="Aa",this.caseToggle.setAttr("aria-label",r("settings.ariaCase")),this.regexToggle=a.createEl("button",{cls:"cm-search-action-btn"}),(0,R.setIcon)(this.regexToggle,"regex"),this.regexToggle.setAttr("aria-label",r("settings.ariaRegex"));let l=a.createDiv({cls:"cm-search-filter-options is-hidden"}),c=new R.DropdownComponent(l).addOption("",r("settings.allSections")).onChange(async g=>{this._searchState.section=g,this.plugin.settings.lastSearchSection=g,await this.plugin.saveData(this.plugin.settings),l.classList.toggle("is-filter-active",g!==""),u()});c.setValue(this._searchState.section),this._searchState.section&&l.classList.remove("is-hidden");try{Object.keys(X||{}).forEach(g=>{let m,f=g.toLowerCase();f==="interactive elements"?m="interactive":f==="ui elements"?m="ui":f==="graph view"?m="graph":f==="plugin integrations"?m="pluginintegrations":m=f.replace(/ /g,"");let h=r(`categories.${m}`)||g;c.addOption(g,h)})}catch{}let d=this.plugin.settings.profiles[this.plugin.settings.activeProfile];d?.customVarMetadata&&Object.keys(d.customVarMetadata).length>0&&c.addOption("Custom",r("categories.custom")),c.selectEl.classList.add("cm-search-small"),this.sectionSelect=c.selectEl;let p=a.createEl("button",{cls:"cm-search-action-btn"});(0,R.setIcon)(p,"sliders-horizontal"),p.dataset.cmAction="filter",this._searchState.section&&p.classList.add("is-active");let u=fe(()=>this._applySearchFilter(),180);this.caseToggle.addEventListener("click",()=>{this._searchState.caseSensitive=!this._searchState.caseSensitive,this.caseToggle.toggleClass("is-active",this._searchState.caseSensitive),u()}),this.regexToggle.addEventListener("click",()=>{this._searchState.regex=!this._searchState.regex,this.regexToggle.toggleClass("is-active",this._searchState.regex),this._searchState.regex?i.setPlaceholder(r("settings.regexPlaceholder")):i.setPlaceholder(r("settings.searchPlaceholder")),this._searchState.query=this.searchInput.value,u()}),p.addEventListener("click",()=>{p.classList.contains("is-active")?this._clearSearchAndFilters():(l.classList.remove("is-hidden"),p.classList.add("is-active"))}),this.sectionSelect.addEventListener("change",g=>{this._searchState.section=g.target.value,u()})}_applySearchFilter(){let e=this._searchState,t=this.plugin.settings.profiles[this.plugin.settings.activeProfile];if(this.staticContentContainer){let l=e.query.trim().length>0||e.section!=="";this.staticContentContainer.toggleClass("cm-hidden",l)}let s=Array.from(this.containerEl.querySelectorAll(".cm-var-row, .cm-searchable-row")),i=null;if(e.query&&e.query.trim()&&e.regex)try{i=new RegExp(e.query,e.caseSensitive?"":"i")}catch{i=null}s.forEach(l=>{let c=l.dataset.var||"",d=l.dataset.name||"",p=l.querySelector("input[type='text']"),u=p?p.value.trim():"",g="",m="",f=t?.customVarMetadata?.[c];if(f?(g=f.name,m=f.desc):(g=r(`colors.names.${c}`)||d,m=r(`colors.descriptions.${c}`)||""),e.section&&e.section!==l.dataset.category){l.classList.add("cm-hidden");return}if(e.query&&e.query.trim()){let h=e.query.trim(),E=!1;if(e.regex&&i)E=i.test(c)||i.test(u)||i.test(g)||i.test(m);else{let S=e.caseSensitive?h:h.toLowerCase(),w=e.caseSensitive?c:c.toLowerCase(),v=e.caseSensitive?u:u.toLowerCase(),y=e.caseSensitive?g:g.toLowerCase(),x=e.caseSensitive?m:m.toLowerCase();E=w.includes(S)||v.includes(S)||y.includes(S)||x.includes(S)}if(!E){l.classList.add("cm-hidden");return}}l.classList.remove("cm-hidden"),this._highlightRowMatches(l,e)}),this.containerEl.querySelectorAll(".cm-category-container").forEach(l=>{let c=l.dataset.category;this.containerEl.querySelector(`.cm-var-row[data-category="${c}"]:not(.cm-hidden)`)?l.classList.remove("cm-hidden"):l.classList.add("cm-hidden")})}_highlightRowMatches(e,t){let s=t.query.trim(),i=c=>{if(!c)return;c.dataset.originalText||(c.dataset.originalText=c.textContent||"");let d=c.dataset.originalText;if(c.empty(),!s){c.setText(d);return}let p=t.caseSensitive?"g":"gi",u;try{u=t.regex?new RegExp(s,p):new RegExp(s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),p);let g=0,m;for(;(m=u.exec(d))!==null;)m.index>g&&c.appendText(d.substring(g,m.index)),c.createSpan({cls:"cm-search-match",text:m[0]}),g=u.lastIndex;g{let a=i.dataset.varName;if(!a)return;let l=st[a];if(!l)return;let c=e[a]||t[a],d=e[l]||t[l];a==="--text-highlight-bg"&&([c,d]=[d,c]);let p=rt(d,c),u=at(p);i.className=`cm-accessibility-checker ${u.cls}`,i.setText(`${u.text} (${u.score})`)})}display(){this.renderDisplay().catch(e=>{console.error("Error in SettingsTab.renderDisplay:",e)})}async renderDisplay(){let e=await this.plugin.getThemeDefaults(),{containerEl:t}=this;t.classList.add("color-master-settings-tab"),t.empty(),t.classList.add("color-master-hidden");let s=this.plugin.settings.language,i=this.plugin.settings.customLanguages?.[s],a=s==="ar"||s==="fa",l=i?.isRtl===!0,c=a||l,d=this.plugin.settings.useRtlLayout,p=c&&d,u=!!i,g=!!me[s];this.containerEl.setAttribute("dir",p?"rtl":"ltr"),new R.Setting(t).setName(r("plugin.name")).setHeading(),new R.Setting(t).setName(r("settings.enablePlugin")).setDesc(r("settings.enablePluginDesc")).addToggle(v=>{v.setValue(this.plugin.settings.pluginEnabled).onChange(async y=>{this.plugin.settings.pluginEnabled=y,y?this.plugin.enableObservers():this.plugin.disableObservers(),await this.plugin.saveSettings(),this.plugin.restartColorUpdateLoop(),new R.Notice(y?r("notices.pluginEnabled"):r("notices.pluginDisabled"))})});let m=new R.Setting(t).setName(r("settings.language")).setDesc(r("settings.languageDesc")),f=m.nameEl.createSpan({cls:"cm-setting-icon"});(0,R.setIcon)(f,"languages"),m.nameEl.prepend(f);let h=m.controlEl.createDiv({cls:"cm-flyout-menu-container"}),E=h.createDiv({cls:"cm-flyout-menu-buttons"});new R.ButtonComponent(h).setIcon("settings").setTooltip(r("tooltips.langMenu")).setClass("cm-flyout-trigger-btn").onClick(()=>{E.toggleClass("is-open",!E.classList.contains("is-open"))}).buttonEl.classList.add("cm-control-icon-button"),new R.ButtonComponent(E).setIcon("info").setTooltip(r("tooltips.langInfo")).setClass("cm-control-icon-button").onClick(()=>{new Et(this.app,this.plugin).open()}),new R.ButtonComponent(E).setIcon("pencil").setTooltip(r("tooltips.editLang")).setClass("cm-control-icon-button").onClick(()=>{let v=this.plugin.settings.language;new tt(this.app,this.plugin,this,v).open()}),new R.ButtonComponent(E).setIcon("plus").setTooltip(r("modals.addLang.title")).setClass("cm-control-icon-button").onClick(()=>{new Ft(this.app,this.plugin,this).open()}),c&&new R.ButtonComponent(E).setIcon("settings-2").setTooltip(r("settings.languageSettingsModalTitle")).setClass("cm-control-icon-button").onClick(()=>{new Lt(this.app,this.plugin).open()}),g&&u&&new R.ButtonComponent(E).setIcon("history").setTooltip(r("tooltips.restoreDefaultLang")).setClass("mod-warning").onClick(()=>{new ie(this.app,this.plugin,r("modals.confirmation.restoreLangTitle"),r("modals.confirmation.restoreLangDesc",me[s]),()=>{(async()=>{this.plugin.settings.customLanguages&&(delete this.plugin.settings.customLanguages[s],Ce(this.plugin.settings),await this.plugin.saveSettings(),this.display(),new R.Notice(r("notices.langRestored")))})().catch(y=>{console.error("Failed to restore language:",y)})},{buttonText:r("buttons.restore"),buttonClass:"mod-warning"}).open()}).buttonEl.classList.add("cm-control-icon-button"),u&&!g&&new R.ButtonComponent(E).setIcon("trash").setTooltip(r("buttons.delete")+` (${i.languageName})`).setClass("mod-warning").onClick(()=>{new ie(this.app,this.plugin,r("modals.confirmation.deleteLangTitle"),r("modals.confirmation.deleteLangDesc",i.languageName),()=>{(async()=>{this.plugin.settings.customLanguages&&(delete this.plugin.settings.customLanguages[s],this.plugin.settings.language="en",Ce(this.plugin.settings),await this.plugin.saveSettings(),this.display(),new R.Notice(r("notices.langDeleted",i.languageName)))})().catch(y=>{console.error("Failed to delete custom language:",y)})},{buttonText:r("buttons.delete"),buttonClass:"mod-warning"}).open()}).buttonEl.classList.add("cm-control-icon-button"),m.addDropdown(v=>{let y=this.plugin.settings.customLanguages||{};for(let k in me){let F=me[k];y[k]&&(F=y[k].languageName),v.addOption(k,F)}let x=Object.keys(y);for(let k of x){if(me[k])continue;let F=y[k].languageName;v.addOption(k,F)}v.setValue(this.plugin.settings.language),v.onChange(async k=>{this.plugin.settings.language=k,Ce(this.plugin.settings),await this.plugin.saveSettings(),this.display()})}),this.initSearchUI(t),this.staticContentContainer=t.createDiv({cls:"cm-static-sections"}),Kn(this.staticContentContainer,this),qn(this.staticContentContainer,this),Wn(this.staticContentContainer,this),this.staticContentContainer.createEl("hr"),Qn(this.staticContentContainer,this),Jn(this.containerEl,this,e),t.createEl("hr"),Gn(t,this),this._applySearchFilter(),this._searchState.query&&setTimeout(()=>{let v=this.containerEl.querySelector(".cm-var-row:not(.cm-hidden)");v&&v.scrollIntoView({behavior:"smooth",block:"center"})},0);let w=this.containerEl.closest(".vertical-tab-content");if(!w)console.warn("Color Master: Could not find scroll container.");else{let v=fe(()=>{this.plugin.settings.lastScrollPosition=w.scrollTop,this.plugin.saveData(this.plugin.settings).catch(y=>{console.error("Failed to save scroll position:",y)})},200);this.plugin.registerDomEvent(w,"scroll",v),!this._searchState.query&&this.plugin.settings.lastScrollPosition&&w.scrollTo({top:this.plugin.settings.lastScrollPosition,behavior:"auto"})}t.classList.remove("color-master-hidden")}};var Yn,Rt=class extends H.Plugin{constructor(){super(...arguments);this.iconizeWatcherInterval=null;this.colorUpdateInterval=null;this.pendingVarUpdates={};this.settingTabInstance=null;this.liveNoticeRules=null;this.liveNoticeRuleType=null;this.cssHistory={};this.cachedThemeDefaults=null;this.lastCachedThemeMode=null}startColorUpdateLoop(){this.stopColorUpdateLoop();let e=this.settings.colorUpdateFPS;if(!this.settings.pluginEnabled||!e||e<=0)return;let t=1e3/e;this.colorUpdateInterval=window.setInterval(()=>{let s=Object.keys(this.pendingVarUpdates);if(s.length===0)return;let i=s.includes("--iconize-icon-color");for(let a of s){let l=this.pendingVarUpdates[a]??null;document.body.setCssProps({[a]:l})}if(this.pendingVarUpdates={},this.app.workspace.trigger("css-change"),i)try{this.forceIconizeColors()}catch(a){console.warn("forceIconizeColors failed in update loop",a)}},t)}stopColorUpdateLoop(){this.colorUpdateInterval&&(window.clearInterval(this.colorUpdateInterval),this.colorUpdateInterval=null)}restartColorUpdateLoop(){this.stopColorUpdateLoop(),this.startColorUpdateLoop()}_clearBackgroundMedia(){document.body.setCssProps({"--cm-background-image":null}),document.body.classList.remove("cm-workspace-background-active"),document.body.classList.remove("cm-settings-background-active");let e=document.getElementById("cm-background-video");e&&e.remove()}async applyTransparencyToVars(){let e=this.settings.profiles?.[this.settings.activeProfile];if(!e)return!1;let t=this.settings.activeProfile,i=Te[t]||Te.Default,a=["--background-primary","--background-secondary","--background-modifier-border","--titlebar-background-focused","--background-modifier-hover"],l=!1;for(let c of a)if(e.vars[c]!=="transparent"){let d=i[c];(!e.vars[c]||e.vars[c]===d)&&(e.vars[c]="transparent",l=!0,this.settings.colorUpdateFPS>0&&(this.pendingVarUpdates[c]="transparent"))}return l&&(await this.saveData(this.settings),this.settingTabInstance&&this.settingTabInstance.containerEl.offsetHeight>0&&this.settingTabInstance.display()),l}async applyBackgroundMedia(){let e=this.settings.profiles?.[this.settings.activeProfile];if(this._clearBackgroundMedia(),!e||e.backgroundEnabled===!1||!e.backgroundPath){e&&e.backgroundEnabled===!1&&await this._restoreDefaultBackgroundVars();return}await this.applyTransparencyToVars();let t=e.backgroundPath,s=e.backgroundType;if(s==="image"){let i=this.app.vault.adapter.getResourcePath(t);document.body.setCssProps({"--cm-background-image":`url("${i}")`}),document.body.classList.add("cm-workspace-background-active")}else if(s==="video"){let i=this.app.vault.adapter.getResourcePath(t),a=document.querySelector("#cm-background-video");a||(a=document.createElement("video"),a.id="cm-background-video",document.body.appendChild(a)),a.src=i,a.autoplay=!0,a.loop=!0,a.muted=e.videoMuted!==!1,a.playsInline=!0,a.setCssProps({opacity:(e.videoOpacity||.5).toString()}),a.load(),document.body.classList.add("cm-workspace-background-active")}}async _restoreDefaultBackgroundVars(){let e=this.settings.profiles?.[this.settings.activeProfile];if(!e)return!1;let t=this.settings.activeProfile,i=Te[t]||Te.Default,a=["--background-primary","--background-secondary","--background-modifier-border","--titlebar-background-focused","--background-modifier-hover"],l=!1;for(let c of a)if(e.vars[c]==="transparent"){let d=i[c];d&&(e.vars[c]=d,l=!0,this.settings.colorUpdateFPS>0&&(this.pendingVarUpdates[c]=d))}return l?(await this.saveData(this.settings),this.settingTabInstance&&this.settingTabInstance.containerEl.offsetHeight>0&&this.settingTabInstance.display(),this.settings.colorUpdateFPS===0&&this.applyPendingNow(),!0):!1}async _ensureBackgroundsFolderExists(){let e=`${this.app.vault.configDir}/backgrounds`;try{await this.app.vault.adapter.exists(e)||(await this.app.vault.adapter.mkdir(e),console.debug(`Color Master: Created global backgrounds folder at ${e}`))}catch(t){console.error("Color Master: Failed to create backgrounds folder on startup.",t)}}async removeBackgroundMediaByPath(e){if(!e)return;let t=["--background-primary","--background-secondary","--background-modifier-border","--titlebar-background-focused","--background-modifier-hover"],s=!1;for(let i in this.settings.profiles){let a=this.settings.profiles[i];if(a.backgroundPath===e){a.backgroundPath="",a.backgroundType=void 0,a.backgroundEnabled=!1;let l=Te[i]||Te.Default;for(let c of t)if(a.vars[c]==="transparent"){let d=l[c];d?a.vars[c]=d:delete a.vars[c]}s=!0}}try{await this.app.vault.adapter.exists(e)&&await this.app.vault.adapter.remove(e)}catch(i){console.warn(`Color Master: Could not delete background file '${e}'.`,i)}if(s){await this.saveSettings();let i=this.settings.profiles[this.settings.activeProfile];if(i.backgroundPath===""){for(let a of t){let l=i.vars[a];l&&(this.pendingVarUpdates[a]=l)}this.applyPendingNow()}}this.settingTabInstance&&this.settingTabInstance.display()}async setBackgroundMedia(e,t,s="prompt"){let i=this.settings.profiles?.[this.settings.activeProfile];if(!i)return;let{arrayBuffer:a,fileName:l}=await Cn(i,e,t),c=l.split(".").pop()?.toLowerCase(),d=c==="mp4"||c==="webm"?"video":"image",p=`${this.app.vault.configDir}/backgrounds`,u=`${p}/${l}`;try{await this.app.vault.adapter.exists(p)||await this.app.vault.adapter.mkdir(p);let g=await this.app.vault.adapter.exists(u);if(g&&s==="prompt"){new It(this.app,this,a,l,f=>{(async()=>{await this.setBackgroundMedia(a,l,f)})().catch(h=>{console.error("Failed to set background media:",h)})}).open();return}g&&s==="keep"&&(u=await yn(this.app.vault.adapter,u)),g&&s==="replace"&&await this.app.vault.adapter.remove(u),await this.app.vault.createBinary(u,a);let m=i.backgroundPath;i.backgroundPath=u,i.backgroundType=d,await this.saveSettings(),new H.Notice(r("notices.bgSet")),m&&m!==u&&s==="replace"&&await this.app.vault.adapter.exists(m)&&await this.app.vault.adapter.remove(m),this.settingTabInstance&&this.settingTabInstance.display()}catch(g){new H.Notice(r("notices.backgroundLoadError")),console.error("Color Master: Error setting background media:",g)}}applyCustomCssForProfile(e){try{e||(e=this.settings.activeProfile);let t=this.settings.profiles?.[e];if(this.removeInjectedCustomCss(),!t||!t.isCssProfile||!t.customCss)return;let s=document.createElement("style");s.id="cm-custom-css-for-profile",s.textContent=t.customCss,document.head.appendChild(s)}catch(t){console.warn("applyCustomCssForProfile failed",t)}}removeInjectedCustomCss(){try{let e=document.getElementById("cm-custom-css-for-profile");e&&e.remove()}catch(e){console.warn(e)}}applyCssSnippets(){this.removeCssSnippets();let e=this.settings.profiles[this.settings.activeProfile];if(!e)return;let t=this.settings.globalSnippets||[],s=Array.isArray(e.snippets)?e.snippets:[],a=[...t,...s].filter(Boolean).filter(l=>l.enabled&&l.css).map(l=>{let c=l.css.replace(/\bbody\s*(?=\{)/g,"body.theme-dark, body.theme-light");return`/* Snippet: ${l.name} ${l.isGlobal?"(Global)":""} */ ${c}`}).join(` -`);if(a){let l=document.createElement("style");l.id="cm-css-snippets",l.textContent=a,document.head.appendChild(l)}}removeCssSnippets(){let e=document.getElementById("cm-css-snippets");e&&e.remove()}applyPendingNow(){try{let e=this.pendingVarUpdates||{},t=Object.keys(e);if(t.length===0){this.app.workspace.trigger("css-change"),window.dispatchEvent(new Event("resize"));return}for(let s of t){let i=e[s]??null;document.body.setCssProps({[s]:i})}this.pendingVarUpdates={},this.app.workspace.trigger("css-change"),this.forceIconizeColors(),window.dispatchEvent(new Event("resize"))}catch(e){console.error("Color Master: applyPendingNow failed",e)}}pinProfileSnapshot(e){e||(e=this.settings.activeProfile),this.settings.pinnedSnapshots=this.settings.pinnedSnapshots||{};let t=this.settings.profiles?.[e];if(!t){new H.Notice(r("notices.profileNotFound"));return}let s={vars:JSON.parse(JSON.stringify(t.vars||{})),customCss:t.customCss||"",snippets:JSON.parse(JSON.stringify(t.snippets||{})),noticeRules:JSON.parse(JSON.stringify(t.noticeRules||{text:[],background:[]}))};return this.settings.pinnedSnapshots[e]={pinnedAt:new Date().toISOString(),...s},this.saveSettings()}async resetProfileToPinned(e){e||(e=this.settings.activeProfile);let t=this.settings.pinnedSnapshots?.[e];if(!t||!t.vars){new H.Notice(r("notices.noPinnedSnapshot"));return}let s=this.settings.profiles[e];if(!s){new H.Notice(r("notices.profileNotFound"));return}s.vars=JSON.parse(JSON.stringify(t.vars)),s.customCss=t.customCss||"",s.snippets=t.snippets?JSON.parse(JSON.stringify(t.snippets)):{},s.noticeRules=t.noticeRules?JSON.parse(JSON.stringify(t.noticeRules)):{text:[],background:[]},Object.keys(t.vars).forEach(i=>{this.pendingVarUpdates[i]=t.vars[i]}),await this.saveSettings(),this.applyPendingNow()}resetIconizeWatcher(){this.iconizeWatcherInterval&&window.clearInterval(this.iconizeWatcherInterval);let e=this.settings.cleanupInterval*1e3;this.iconizeWatcherInterval=window.setInterval(()=>{Ue(this.app)||this.removeOrphanedIconizeElements()},e),this.registerInterval(this.iconizeWatcherInterval)}async onload(){if(Yn=this,await this.loadSettings(),gn(this),await this._ensureBackgroundsFolderExists(),this.liveNoticeRules=null,this.liveNoticeRuleType=null,this.settings.language==="auto"){let e=H.moment.locale();e==="ar"?this.settings.language="ar":e==="fa"?this.settings.language="fa":e==="fr"?this.settings.language="fr":this.settings.language="en",await this.saveSettings()}Yn=this,mn(this),this.addRibbonIcon("paint-bucket",r("plugin.ribbonTooltip"),e=>{this.app.setting.open(),this.app.setting.openTabById(this.manifest.id)}),this.settingTabInstance=new Rt(this.app,this),this.addSettingTab(this.settingTabInstance),this.app.workspace.onLayoutReady(()=>{this.applyStyles(),setTimeout(()=>this.app.workspace.trigger("css-change"),100),this.startColorUpdateLoop(),this.iconizeObserver=new MutationObserver(()=>{this.settings.pluginEnabled&&this.settings.overrideIconizeColors&&this.forceIconizeColors()}),this.noticeObserver=new MutationObserver(e=>{this.settings.pluginEnabled&&e.forEach(t=>{t.addedNodes.forEach(s=>{s.nodeType===1&&(s.matches(".notice, .toast")&&this.processNotice(s),s.querySelectorAll(".notice, .toast").forEach(this.processNotice.bind(this)))})})}),this.settings.pluginEnabled&&this.enableObservers(),this.register(()=>this.disableObservers())}),this.resetIconizeWatcher()}onunload(){this.noticeObserver&&this.noticeObserver.disconnect(),this.iconizeObserver&&this.iconizeObserver.disconnect(),this.settings&&(this.settings.lastSearchQuery="",this.settings.lastScrollPosition=0,this.saveData(this.settings).catch(e=>{console.error("Color Master: Failed to save settings on unload.",e)})),this.clearStyles(),this.removeInjectedCustomCss(),this.stopColorUpdateLoop(),this._clearBackgroundMedia(),console.debug("Color Master unloaded.")}enableObservers(){try{this.iconizeObserver.observe(document.body,{childList:!0,subtree:!0}),this.noticeObserver.observe(document.body,{childList:!0,subtree:!0}),console.debug("Color Master Observers: Enabled")}catch(e){console.error("Color Master: Failed to enable observers",e)}}disableObservers(){try{this.iconizeObserver.disconnect(),this.noticeObserver.disconnect(),console.debug("Color Master Observers: Disabled")}catch(e){console.error("Color Master: Failed to disable observers",e)}}async refreshOpenGraphViews(){let e=this.app.workspace.getLeavesOfType("graph");if(e.length!==0){console.debug(`Color Master: Found ${e.length} graph(s). Applying Plan C (programmatic rebuild).`);for(let t of e){let s=t.getViewState();await t.setViewState({...s,type:"graph",state:{...s.state}})}}}forceIconizeColors(){let e=null;try{let i=getComputedStyle(document.body).getPropertyValue("--iconize-icon-color");i&&(e=i.trim())}catch(i){console.warn("Color Master: failed to read computed --iconize-icon-color",i),e=null}let t=this.settings.profiles?.[this.settings.activeProfile]?.vars?.["--iconize-icon-color"],s=this.settings.overrideIconizeColors&&(e||t)||null;document.querySelectorAll(".iconize-icon").forEach(i=>{let a=i.querySelector("svg");a&&[a,...a.querySelectorAll("*")].forEach(l=>{if(typeof l.hasAttribute!="function")return;if(!s){l.setCssProps({fill:null,stroke:null});return}let c=l.getAttribute("fill"),d=l.getAttribute("stroke");c&&c!=="none"&&!c.startsWith("url(")&&l.setCssProps({fill:s}),d&&d!=="none"&&l.setCssProps({stroke:s})})})}removeOrphanedIconizeElements(){if(Ue(this.app))return;let t=!1;this.settings.overrideIconizeColors===!0&&(console.debug("Color Master: Iconize plugin not found. Disabling override setting."),this.settings.overrideIconizeColors=!1,t=!0);let s=document.querySelectorAll(".iconize-icon");s.length>0&&(console.debug(`Color Master: Found ${s.length} orphaned Iconize elements. Cleaning up...`),s.forEach(i=>i.remove())),t&&this.saveSettings().catch(i=>{console.error("Failed to save settings after removing Iconize leftovers:",i)})}async applyStyles(){if(this.removeOrphanedIconizeElements(),this.clearStyles(),!this.settings.pluginEnabled){this.removeInjectedCustomCss();return}let e=this.settings.profiles[this.settings.activeProfile];if(!e){console.error("Color Master: Active profile not found!");return}let t=Object.entries(e.vars);if(t.length>0){let u=`body.theme-dark, body.theme-light { +`);if(a){let l=document.createElement("style");l.id="cm-css-snippets",l.textContent=a,document.head.appendChild(l)}}removeCssSnippets(){let e=document.getElementById("cm-css-snippets");e&&e.remove()}applyPendingNow(){try{let e=this.pendingVarUpdates||{},t=Object.keys(e);if(t.length===0){this.app.workspace.trigger("css-change"),window.dispatchEvent(new Event("resize"));return}for(let s of t){let i=e[s]??null;document.body.setCssProps({[s]:i})}this.pendingVarUpdates={},this.app.workspace.trigger("css-change"),this.forceIconizeColors(),window.dispatchEvent(new Event("resize"))}catch(e){console.error("Color Master: applyPendingNow failed",e)}}pinProfileSnapshot(e){e||(e=this.settings.activeProfile),this.settings.pinnedSnapshots=this.settings.pinnedSnapshots||{};let t=this.settings.profiles?.[e];if(!t){new H.Notice(r("notices.profileNotFound"));return}let s={vars:JSON.parse(JSON.stringify(t.vars||{})),customCss:t.customCss||"",snippets:JSON.parse(JSON.stringify(t.snippets||{})),noticeRules:JSON.parse(JSON.stringify(t.noticeRules||{text:[],background:[]}))};return this.settings.pinnedSnapshots[e]={pinnedAt:new Date().toISOString(),...s},this.saveSettings()}async resetProfileToPinned(e){e||(e=this.settings.activeProfile);let t=this.settings.pinnedSnapshots?.[e];if(!t||!t.vars){new H.Notice(r("notices.noPinnedSnapshot"));return}let s=this.settings.profiles[e];if(!s){new H.Notice(r("notices.profileNotFound"));return}s.vars=JSON.parse(JSON.stringify(t.vars)),s.customCss=t.customCss||"",s.snippets=t.snippets?JSON.parse(JSON.stringify(t.snippets)):{},s.noticeRules=t.noticeRules?JSON.parse(JSON.stringify(t.noticeRules)):{text:[],background:[]},Object.keys(t.vars).forEach(i=>{this.pendingVarUpdates[i]=t.vars[i]}),await this.saveSettings(),this.applyPendingNow()}resetIconizeWatcher(){this.iconizeWatcherInterval&&window.clearInterval(this.iconizeWatcherInterval);let e=this.settings.cleanupInterval*1e3;this.iconizeWatcherInterval=window.setInterval(()=>{Ue(this.app)||this.removeOrphanedIconizeElements()},e),this.registerInterval(this.iconizeWatcherInterval)}async onload(){if(Yn=this,await this.loadSettings(),gn(this),await this._ensureBackgroundsFolderExists(),this.liveNoticeRules=null,this.liveNoticeRuleType=null,this.settings.language==="auto"){let e=H.moment.locale();e==="ar"?this.settings.language="ar":e==="fa"?this.settings.language="fa":e==="fr"?this.settings.language="fr":this.settings.language="en",await this.saveSettings()}Yn=this,mn(this),this.addRibbonIcon("paint-bucket",r("plugin.ribbonTooltip"),e=>{this.app.setting.open(),this.app.setting.openTabById(this.manifest.id)}),this.settingTabInstance=new At(this.app,this),this.addSettingTab(this.settingTabInstance),this.app.workspace.onLayoutReady(()=>{this.applyStyles(),setTimeout(()=>this.app.workspace.trigger("css-change"),100),this.startColorUpdateLoop(),this.iconizeObserver=new MutationObserver(()=>{this.settings.pluginEnabled&&this.settings.overrideIconizeColors&&this.forceIconizeColors()}),this.noticeObserver=new MutationObserver(e=>{this.settings.pluginEnabled&&e.forEach(t=>{t.addedNodes.forEach(s=>{s.nodeType===1&&(s.matches(".notice, .toast")&&this.processNotice(s),s.querySelectorAll(".notice, .toast").forEach(this.processNotice.bind(this)))})})}),this.settings.pluginEnabled&&this.enableObservers(),this.register(()=>this.disableObservers())}),this.resetIconizeWatcher()}onunload(){this.noticeObserver&&this.noticeObserver.disconnect(),this.iconizeObserver&&this.iconizeObserver.disconnect(),this.settings&&(this.settings.lastSearchQuery="",this.settings.lastScrollPosition=0,this.saveData(this.settings).catch(e=>{console.error("Color Master: Failed to save settings on unload.",e)})),this.clearStyles(),this.removeInjectedCustomCss(),this.stopColorUpdateLoop(),this._clearBackgroundMedia(),console.debug("Color Master unloaded.")}enableObservers(){try{this.iconizeObserver.observe(document.body,{childList:!0,subtree:!0}),this.noticeObserver.observe(document.body,{childList:!0,subtree:!0}),console.debug("Color Master Observers: Enabled")}catch(e){console.error("Color Master: Failed to enable observers",e)}}disableObservers(){try{this.iconizeObserver.disconnect(),this.noticeObserver.disconnect(),console.debug("Color Master Observers: Disabled")}catch(e){console.error("Color Master: Failed to disable observers",e)}}async refreshOpenGraphViews(){let e=this.app.workspace.getLeavesOfType("graph");if(e.length!==0){console.debug(`Color Master: Found ${e.length} graph(s). Applying Plan C (programmatic rebuild).`);for(let t of e){let s=t.getViewState();await t.setViewState({...s,type:"graph",state:{...s.state}})}}}forceIconizeColors(){let e=null;try{let i=getComputedStyle(document.body).getPropertyValue("--iconize-icon-color");i&&(e=i.trim())}catch(i){console.warn("Color Master: failed to read computed --iconize-icon-color",i),e=null}let t=this.settings.profiles?.[this.settings.activeProfile]?.vars?.["--iconize-icon-color"],s=this.settings.overrideIconizeColors&&(e||t)||null;document.querySelectorAll(".iconize-icon").forEach(i=>{let a=i.querySelector("svg");a&&[a,...a.querySelectorAll("*")].forEach(l=>{if(typeof l.hasAttribute!="function")return;if(!s){l.setCssProps({fill:null,stroke:null});return}let c=l.getAttribute("fill"),d=l.getAttribute("stroke");c&&c!=="none"&&!c.startsWith("url(")&&l.setCssProps({fill:s}),d&&d!=="none"&&l.setCssProps({stroke:s})})})}removeOrphanedIconizeElements(){if(Ue(this.app))return;let t=!1;this.settings.overrideIconizeColors===!0&&(console.debug("Color Master: Iconize plugin not found. Disabling override setting."),this.settings.overrideIconizeColors=!1,t=!0);let s=document.querySelectorAll(".iconize-icon");s.length>0&&(console.debug(`Color Master: Found ${s.length} orphaned Iconize elements. Cleaning up...`),s.forEach(i=>i.remove())),t&&this.saveSettings().catch(i=>{console.error("Failed to save settings after removing Iconize leftovers:",i)})}async applyStyles(){if(this.removeOrphanedIconizeElements(),this.clearStyles(),!this.settings.pluginEnabled){this.removeInjectedCustomCss();return}let e=this.settings.profiles[this.settings.activeProfile];if(!e){console.error("Color Master: Active profile not found!");return}let t=Object.entries(e.vars);if(t.length>0){let u=`body.theme-dark, body.theme-light { ${t.map(([m,f])=>f?`${m}: ${f};`:"").filter(Boolean).join(` `)} - }`,g=document.createElement("style");g.id="cm-profile-variables",g.textContent=u,document.head.appendChild(g)}this.forceIconizeColors(),setTimeout(()=>this.forceIconizeColors(),100);let s=e.themeType||"auto";if(s==="dark")document.body.classList.remove("theme-light"),document.body.classList.add("theme-dark");else if(s==="light")document.body.classList.remove("theme-dark"),document.body.classList.add("theme-light");else{let u=this.app.vault.getConfig("theme"),g=window.matchMedia("(prefers-color-scheme: dark)").matches;u==="obsidian"||u==="system"&&g?(document.body.classList.remove("theme-light"),document.body.classList.add("theme-dark")):(document.body.classList.remove("theme-dark"),document.body.classList.add("theme-light"))}this.applyCustomCssForProfile(this.settings.activeProfile),this.applyCssSnippets();let i=this.settings.language,a=this.settings.customLanguages?.[i],l=i==="ar"||i==="fa",c=a?.isRtl===!0,d=this.settings.useRtlLayout;(l||c)&&d?document.body.classList.add("color-master-rtl"):document.body.classList.remove("color-master-rtl"),await this.applyBackgroundMedia(),this.app.workspace.trigger("css-change"),window.dispatchEvent(new Event("resize")),setTimeout(()=>{this.app.workspace.trigger("css-change"),this.app.workspace.getLeavesOfType("graph").forEach(g=>{g.view&&g.view.reload&&g.view.reload()})},300)}clearStyles(){let e=document.getElementById("cm-profile-variables");e&&e.remove(),this.removeCssSnippets();let t=new Set;Object.keys(de(X)).forEach(a=>t.add(a));for(let a in this.settings.profiles){let l=this.settings.profiles[a];l&&l.vars&&Object.keys(l.vars).forEach(c=>t.add(c))}t.forEach(a=>{document.body.setCssProps({[a]:null})}),document.querySelectorAll(".iconize-icon").forEach(a=>{let l=a.querySelector("svg");l&&[l,...l.querySelectorAll("*")].forEach(c=>{typeof c.hasAttribute=="function"&&c.setCssProps({fill:null,stroke:null})})});let i=document.getElementById("color-master-overrides");i&&i.remove(),this.app.workspace.trigger("css-change"),document.body.classList.remove("color-master-rtl"),this._clearBackgroundMedia()}async loadSettings(){this.settings=Object.assign({},$t,await this.loadData());let e=!1;if(this.settings.noticeRules&&Object.keys(this.settings.profiles||{}).length>0){console.debug("Color Master: Detected old global notice rules. Starting migration...");for(let i in this.settings.profiles){let a=this.settings.profiles[i];a.noticeRules||(a.noticeRules=JSON.parse(JSON.stringify(this.settings.noticeRules)))}delete this.settings.noticeRules,e=!0}for(let i in this.settings.profiles){let a=this.settings.profiles[i];a.noticeRules||(a.noticeRules={text:[],background:[]},e=!0)}e&&(console.debug("Color Master: Notice rules migration complete. Saving new settings structure."),await this.saveData(this.settings)),this.settings.installDate||(this.settings.installDate=new Date().toISOString(),document.body.classList.contains("theme-dark")?this.settings.activeProfile="Default":this.settings.activeProfile="Citrus Zest",await this.saveData(this.settings)),this.settings.pinnedSnapshots||(this.settings.pinnedSnapshots={});let t=!1;for(let i in this.settings.profiles){let a=this.settings.profiles[i];if(a&&a.snippets&&!Array.isArray(a.snippets)&&typeof a.snippets=="object"){t=!0;let l=Object.entries(a.snippets).map(([c,d])=>({id:`snippet-${Date.now()}-${Math.random()}`,name:c,css:d.css||"",enabled:d.enabled!==!1}));a.snippets=l}}t&&(console.debug("Color Master: The clipping data structure is being migrated to the new format (array)."),await this.saveData(this.settings));let s=!1;for(let i in this.settings.profiles){let a=this.settings.profiles[i];a&&a.backgroundPath&&typeof a.backgroundEnabled>"u"?(a.backgroundEnabled=!0,s=!0):a&&!a.backgroundPath&&a.backgroundEnabled===!0&&(a.backgroundEnabled=!1,s=!0)}s&&(console.debug("Color Master: Setting default backgroundEnabled status for profiles."),await this.saveData(this.settings))}async saveSettings(){await this.saveData(this.settings),await this.applyStyles(),await this.refreshOpenGraphViews(),this.app.workspace.trigger("css-change")}async resetPluginData(e){let t=this.settings.installDate,s=JSON.parse(JSON.stringify($t));if(e.deleteSettings||(s.language=this.settings.language,s.useRtlLayout=this.settings.useRtlLayout,s.overrideIconizeColors=this.settings.overrideIconizeColors,s.cleanupInterval=this.settings.cleanupInterval,s.colorUpdateFPS=this.settings.colorUpdateFPS,s.lastSearchQuery=this.settings.lastSearchQuery,s.lastScrollPosition=this.settings.lastScrollPosition,s.advancedResetOptions=this.settings.advancedResetOptions),e.deleteProfiles||(s.profiles=this.settings.profiles,s.activeProfile=this.settings.activeProfile,s.pinnedSnapshots=this.settings.pinnedSnapshots),e.deleteSnippets||(s.globalSnippets=this.settings.globalSnippets),e.deleteLanguages||(s.customLanguages=this.settings.customLanguages),e.deleteSnippets&&!e.deleteProfiles)for(let l in s.profiles)s.profiles[l]&&(s.profiles[l].snippets=[]);if(s.installDate=t,e.deleteSettings&&(s.advancedResetOptions=this.settings.advancedResetOptions,s.language="auto"),this.settings=s,await this.saveData(this.settings),console.debug("Color Master: Selective data reset complete.",e),e.deleteBackgrounds){let l=`${this.app.vault.configDir}/backgrounds`;try{if(await this.app.vault.adapter.exists(l)&&(console.debug("Color Master: Deleting backgrounds folder..."),await this.app.vault.adapter.rmdir(l,!0)),!e.deleteProfiles){for(let c in this.settings.profiles){let d=this.settings.profiles[c];d&&(d.backgroundPath=void 0,d.backgroundType=void 0)}await this.saveData(this.settings)}}catch(c){console.error(`Color Master: Error deleting backgrounds: ${c.message}`),new H.Notice(r("notices.deleteBackgroundsError",c.message))}}let a=new H.Notice(r("notices.resetSuccess"),15e3).messageEl.createDiv({cls:"modal-button-container"});new H.ButtonComponent(a).setButtonText(r("buttons.reload")).setCta().onClick(()=>{this.app.commands.executeCommandById("app:reload")})}processNotice(e){if(!e||!e.classList||e.dataset.cmProcessed==="true")return;let t=(e.textContent||"").toLowerCase(),s=e.querySelector(".cm-test-keyword");s&&(t=(s.textContent||"").toLowerCase()),e.dataset.cmProcessed="true";try{let i=this.settings,a=i.profiles[i.activeProfile];if(!a)return;let l=this.liveNoticeRules,c=this.liveNoticeRuleType,d=c==="background"&&l?l:a?.noticeRules?.background||[],p=a.vars["--cm-notice-bg-default"];for(let h of d){if(!h.keywords?.trim())continue;let E=h.keywords.toLowerCase(),S=!1;if(h.isRegex)try{new RegExp(E,"i").test(t)&&(S=!0)}catch{}else{let w=E.split(",").map(v=>v.trim()).filter(Boolean);if(w.length>0){let v=w.map(y=>y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));new RegExp(`\\b(${v.join("|")})\\b`,"i").test(t)&&(S=!0)}}if(S){p=h.color;break}}p&&(e.dataset.cmNoticeBg=p);let u=c==="text"&&l?l:a?.noticeRules?.text||[],g=a.vars["--cm-notice-text-default"],m=[],f=[];for(let h of u)h.highlightOnly?m.push(h):f.push(h);for(let h of f){if(!h.keywords?.trim())continue;let E=h.keywords.toLowerCase(),S=!1;if(h.isRegex)try{new RegExp(E,"i").test(t)&&(S=!0)}catch{}else{let w=E.split(",").map(v=>v.trim()).filter(Boolean);if(w.length>0){let v=w.map(y=>y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));new RegExp(`\\b(${v.join("|")})\\b`,"i").test(t)&&(S=!0)}}if(S){g=h.color;break}}if(g&&(e.dataset.cmNoticeText=g),m.length>0){let h=[],E=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:S=>S.parentElement?.classList.contains("cm-keyword-highlight")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;E.nextNode();)h.push(E.currentNode);for(let S of h){let w=S.textContent;if(!w?.trim())continue;let v=S.parentElement;if(!v)continue;let y=[];for(let I of m){if(!I.keywords?.trim())continue;let T=I.color;if(I.isRegex)try{let P=new RegExp(I.keywords,"gi"),V;for(;(V=P.exec(w))!==null&&V[0].length!==0;)y.push({start:V.index,end:V.index+V[0].length,color:T})}catch(P){console.warn("Color Master: Invalid Regex in notice rule",P)}else{let P=I.keywords.split(",").map(V=>V.trim()).filter(Boolean);if(P.length>0){let V=P.map(_=>_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),O=new RegExp(`\\b(${V.join("|")})\\b`,"gi"),A;for(;(A=O.exec(w))!==null;)y.push({start:A.index,end:A.index+A[0].length,color:T})}}}if(y.length===0)continue;y.sort((I,T)=>I.start-T.start);let x=[],k=-1;for(let I of y)I.start>=k&&(x.push(I),k=I.end);if(x.length===0)continue;let F=new DocumentFragment,U=0;for(let I of x){I.start>U&&F.appendChild(document.createTextNode(w.substring(U,I.start)));let T=document.createElement("span");T.className="cm-keyword-highlight",T.setCssProps({color:I.color}),T.textContent=w.substring(I.start,I.end),F.appendChild(T),U=I.end}U{let c=a.dataset.cmNoticeId||`cm-notice-${l}`;a.dataset.cmNoticeId=c;let d=a.dataset.cmNoticeBg,p=a.dataset.cmNoticeText,u=`[data-cm-notice-id="${c}"] {`;d&&(u+=` background-color: ${d} !important;`),p&&(u+=` color: ${p} !important;`),u+=" }",i.push(u)}),t.textContent=i.join(` + }`,g=document.createElement("style");g.id="cm-profile-variables",g.textContent=u,document.head.appendChild(g)}this.forceIconizeColors(),setTimeout(()=>this.forceIconizeColors(),100);let s=e.themeType||"auto";if(s==="dark")document.body.classList.remove("theme-light"),document.body.classList.add("theme-dark");else if(s==="light")document.body.classList.remove("theme-dark"),document.body.classList.add("theme-light");else{let u=this.app.vault.getConfig("theme"),g=window.matchMedia("(prefers-color-scheme: dark)").matches;u==="obsidian"||u==="system"&&g?(document.body.classList.remove("theme-light"),document.body.classList.add("theme-dark")):(document.body.classList.remove("theme-dark"),document.body.classList.add("theme-light"))}this.applyCustomCssForProfile(this.settings.activeProfile),this.applyCssSnippets();let i=this.settings.language,a=this.settings.customLanguages?.[i],l=i==="ar"||i==="fa",c=a?.isRtl===!0,d=this.settings.useRtlLayout;(l||c)&&d?document.body.classList.add("color-master-rtl"):document.body.classList.remove("color-master-rtl"),await this.applyBackgroundMedia(),this.app.workspace.trigger("css-change"),window.dispatchEvent(new Event("resize")),setTimeout(()=>{this.app.workspace.trigger("css-change"),this.app.workspace.getLeavesOfType("graph").forEach(g=>{g.view&&g.view.reload&&g.view.reload()})},300)}clearStyles(){let e=document.getElementById("cm-profile-variables");e&&e.remove(),this.removeCssSnippets();let t=new Set;Object.keys(de(X)).forEach(a=>t.add(a));for(let a in this.settings.profiles){let l=this.settings.profiles[a];l&&l.vars&&Object.keys(l.vars).forEach(c=>t.add(c))}t.forEach(a=>{document.body.setCssProps({[a]:null})}),document.querySelectorAll(".iconize-icon").forEach(a=>{let l=a.querySelector("svg");l&&[l,...l.querySelectorAll("*")].forEach(c=>{typeof c.hasAttribute=="function"&&c.setCssProps({fill:null,stroke:null})})});let i=document.getElementById("color-master-overrides");i&&i.remove(),this.app.workspace.trigger("css-change"),document.body.classList.remove("color-master-rtl"),this._clearBackgroundMedia()}async loadSettings(){this.settings=Object.assign({},_t,await this.loadData());let e=!1;if(this.settings.noticeRules&&Object.keys(this.settings.profiles||{}).length>0){console.debug("Color Master: Detected old global notice rules. Starting migration...");for(let i in this.settings.profiles){let a=this.settings.profiles[i];a.noticeRules||(a.noticeRules=JSON.parse(JSON.stringify(this.settings.noticeRules)))}delete this.settings.noticeRules,e=!0}for(let i in this.settings.profiles){let a=this.settings.profiles[i];a.noticeRules||(a.noticeRules={text:[],background:[]},e=!0)}e&&(console.debug("Color Master: Notice rules migration complete. Saving new settings structure."),await this.saveData(this.settings)),this.settings.installDate||(this.settings.installDate=new Date().toISOString(),document.body.classList.contains("theme-dark")?this.settings.activeProfile="Default":this.settings.activeProfile="Citrus Zest",await this.saveData(this.settings)),this.settings.pinnedSnapshots||(this.settings.pinnedSnapshots={});let t=!1;for(let i in this.settings.profiles){let a=this.settings.profiles[i];if(a&&a.snippets&&!Array.isArray(a.snippets)&&typeof a.snippets=="object"){t=!0;let l=Object.entries(a.snippets).map(([c,d])=>({id:`snippet-${Date.now()}-${Math.random()}`,name:c,css:d.css||"",enabled:d.enabled!==!1}));a.snippets=l}}t&&(console.debug("Color Master: The clipping data structure is being migrated to the new format (array)."),await this.saveData(this.settings));let s=!1;for(let i in this.settings.profiles){let a=this.settings.profiles[i];a&&a.backgroundPath&&typeof a.backgroundEnabled>"u"?(a.backgroundEnabled=!0,s=!0):a&&!a.backgroundPath&&a.backgroundEnabled===!0&&(a.backgroundEnabled=!1,s=!0)}s&&(console.debug("Color Master: Setting default backgroundEnabled status for profiles."),await this.saveData(this.settings))}async saveSettings(){await this.saveData(this.settings),await this.applyStyles(),await this.refreshOpenGraphViews(),this.app.workspace.trigger("css-change")}async resetPluginData(e){let t=this.settings.installDate,s=JSON.parse(JSON.stringify(_t));if(e.deleteSettings||(s.language=this.settings.language,s.useRtlLayout=this.settings.useRtlLayout,s.overrideIconizeColors=this.settings.overrideIconizeColors,s.cleanupInterval=this.settings.cleanupInterval,s.colorUpdateFPS=this.settings.colorUpdateFPS,s.lastSearchQuery=this.settings.lastSearchQuery,s.lastScrollPosition=this.settings.lastScrollPosition,s.advancedResetOptions=this.settings.advancedResetOptions),e.deleteProfiles||(s.profiles=this.settings.profiles,s.activeProfile=this.settings.activeProfile,s.pinnedSnapshots=this.settings.pinnedSnapshots),e.deleteSnippets||(s.globalSnippets=this.settings.globalSnippets),e.deleteLanguages||(s.customLanguages=this.settings.customLanguages),e.deleteSnippets&&!e.deleteProfiles)for(let l in s.profiles)s.profiles[l]&&(s.profiles[l].snippets=[]);if(s.installDate=t,e.deleteSettings&&(s.advancedResetOptions=this.settings.advancedResetOptions,s.language="auto"),this.settings=s,await this.saveData(this.settings),console.debug("Color Master: Selective data reset complete.",e),e.deleteBackgrounds){let l=`${this.app.vault.configDir}/backgrounds`;try{if(await this.app.vault.adapter.exists(l)&&(console.debug("Color Master: Deleting backgrounds folder..."),await this.app.vault.adapter.rmdir(l,!0)),!e.deleteProfiles){for(let c in this.settings.profiles){let d=this.settings.profiles[c];d&&(d.backgroundPath=void 0,d.backgroundType=void 0)}await this.saveData(this.settings)}}catch(c){console.error(`Color Master: Error deleting backgrounds: ${c.message}`),new H.Notice(r("notices.deleteBackgroundsError",c.message))}}let a=new H.Notice(r("notices.resetSuccess"),15e3).messageEl.createDiv({cls:"modal-button-container"});new H.ButtonComponent(a).setButtonText(r("buttons.reload")).setCta().onClick(()=>{this.app.commands.executeCommandById("app:reload")})}processNotice(e){if(!e||!e.classList||e.dataset.cmProcessed==="true")return;let t=(e.textContent||"").toLowerCase(),s=e.querySelector(".cm-test-keyword");s&&(t=(s.textContent||"").toLowerCase()),e.dataset.cmProcessed="true";try{let i=this.settings,a=i.profiles[i.activeProfile];if(!a)return;let l=this.liveNoticeRules,c=this.liveNoticeRuleType,d=c==="background"&&l?l:a?.noticeRules?.background||[],p=a.vars["--cm-notice-bg-default"];for(let h of d){if(!h.keywords?.trim())continue;let E=h.keywords.toLowerCase(),S=!1;if(h.isRegex)try{new RegExp(E,"i").test(t)&&(S=!0)}catch{}else{let w=E.split(",").map(v=>v.trim()).filter(Boolean);if(w.length>0){let v=w.map(y=>y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));new RegExp(`\\b(${v.join("|")})\\b`,"i").test(t)&&(S=!0)}}if(S){p=h.color;break}}p&&(e.dataset.cmNoticeBg=p);let u=c==="text"&&l?l:a?.noticeRules?.text||[],g=a.vars["--cm-notice-text-default"],m=[],f=[];for(let h of u)h.highlightOnly?m.push(h):f.push(h);for(let h of f){if(!h.keywords?.trim())continue;let E=h.keywords.toLowerCase(),S=!1;if(h.isRegex)try{new RegExp(E,"i").test(t)&&(S=!0)}catch{}else{let w=E.split(",").map(v=>v.trim()).filter(Boolean);if(w.length>0){let v=w.map(y=>y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));new RegExp(`\\b(${v.join("|")})\\b`,"i").test(t)&&(S=!0)}}if(S){g=h.color;break}}if(g&&(e.dataset.cmNoticeText=g),m.length>0){let h=[],E=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode:S=>S.parentElement?.classList.contains("cm-keyword-highlight")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT});for(;E.nextNode();)h.push(E.currentNode);for(let S of h){let w=S.textContent;if(!w?.trim())continue;let v=S.parentElement;if(!v)continue;let y=[];for(let I of m){if(!I.keywords?.trim())continue;let T=I.color;if(I.isRegex)try{let P=new RegExp(I.keywords,"gi"),V;for(;(V=P.exec(w))!==null&&V[0].length!==0;)y.push({start:V.index,end:V.index+V[0].length,color:T})}catch(P){console.warn("Color Master: Invalid Regex in notice rule",P)}else{let P=I.keywords.split(",").map(V=>V.trim()).filter(Boolean);if(P.length>0){let V=P.map(_=>_.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),O=new RegExp(`\\b(${V.join("|")})\\b`,"gi"),A;for(;(A=O.exec(w))!==null;)y.push({start:A.index,end:A.index+A[0].length,color:T})}}}if(y.length===0)continue;y.sort((I,T)=>I.start-T.start);let x=[],k=-1;for(let I of y)I.start>=k&&(x.push(I),k=I.end);if(x.length===0)continue;let F=new DocumentFragment,U=0;for(let I of x){I.start>U&&F.appendChild(document.createTextNode(w.substring(U,I.start)));let T=document.createElement("span");T.className="cm-keyword-highlight",T.setCssProps({color:I.color}),T.textContent=w.substring(I.start,I.end),F.appendChild(T),U=I.end}U{let c=a.dataset.cmNoticeId||`cm-notice-${l}`;a.dataset.cmNoticeId=c;let d=a.dataset.cmNoticeBg,p=a.dataset.cmNoticeText,u=`[data-cm-notice-id="${c}"] {`;d&&(u+=` background-color: ${d} !important;`),p&&(u+=` color: ${p} !important;`),u+=" }",i.push(u)}),t.textContent=i.join(` `)}pushCssHistory(e,t){this.cssHistory[e]||(this.cssHistory[e]={undoStack:[],redoStack:[]});let s=this.cssHistory[e];s.undoStack[s.undoStack.length-1]!==t&&(s.undoStack.push(t),s.redoStack=[])}undoCssHistory(e){let t=this.cssHistory[e];if(t&&t.undoStack.length>1){let s=t.undoStack.pop();return t.redoStack.push(s),t.undoStack[t.undoStack.length-1]}return null}redoCssHistory(e){let t=this.cssHistory[e];if(t&&t.redoStack.length>0){let s=t.redoStack.pop();return t.undoStack.push(s),s}return null}async setBackgroundMediaFromUrl(e){if(!e){new H.Notice(r("notices.backgroundUrlLoadError"));return}try{let t=await(0,H.requestUrl)({url:e}),s=t.arrayBuffer,i=e.split("/").pop();if(i&&(i=i.split("?")[0]),!i||i.indexOf(".")===-1||i.length>50){let a=t.headers["content-type"]?.split("/")[1]||"png";i=`image-${Date.now()}.${a}`}await this.setBackgroundMedia(s,i,"prompt")}catch(t){new H.Notice(r("notices.backgroundUrlLoadError")),console.error("Color Master: Error fetching image from URL:",t)}}async selectBackgroundMedia(e,t){let s=this.settings.profiles?.[this.settings.activeProfile];s&&(s.backgroundPath=e,s.backgroundType=t,s.backgroundEnabled=!0,await this.saveSettings(),new H.Notice(r("notices.bgSet")))}async renameBackgroundMedia(e,t){let s=this.app.vault.adapter;if(!t||t.includes("/")||t.includes("\\"))return new H.Notice(r("notices.invalidFilename")),!1;let i=e.split("/"),a=i.pop()||"",c=`${i.join("/")}/${t}`,d=a.match(/\.([a-zA-Z0-9]+)$/),p=d?d[0]:"";if(p&&!t.toLowerCase().endsWith(p.toLowerCase()))return console.warn(`Color Master: Rename blocked. Attempted to change extension from "${p}" in "${t}".`),new H.Notice(r("notices.invalidFilename")+" (Extension mismatch)"),!1;if(await s.exists(c)&&e.toLowerCase()!==c.toLowerCase())return new H.Notice(r("notices.filenameExists",t)),!1;try{await s.rename(e,c);let u=!1;for(let g in this.settings.profiles){let m=this.settings.profiles[g];m&&m.backgroundPath===e&&(m.backgroundPath=c,u=!0)}return u&&await this.saveSettings(),new H.Notice(r("notices.renameSuccess",t)),c}catch(u){return new H.Notice(r("notices.renameError")),console.error("Color Master: Error renaming background image:",u),!1}}async captureCurrentComputedVars(){console.debug("Color Master: Capturing current computed styles..."),this.clearStyles(),await new Promise(l=>requestAnimationFrame(l));let e={},t=de(X),s=Object.keys(t),i=getComputedStyle(document.body),a=/^(#|rgb|hsl|transparent|var\(--)|(white|black|red|blue|green|yellow|orange|purple|cyan|magenta)$/i;for(let l of s){let c=i.getPropertyValue(l).trim(),d=t[l]||"";if(c)if(a.test(d))try{e[l]=Sn(c)}catch(p){console.warn(`Failed to convert color ${l}: ${c}`,p),e[l]=c}else e[l]=c}return console.debug(`Color Master: Captured ${Object.keys(e).length} variables.`),this.applyStyles(),await new Promise(l=>requestAnimationFrame(l)),e}async getThemeDefaults(){let e=document.body.classList.contains("theme-dark")?"dark":"light";if(this.cachedThemeDefaults&&this.lastCachedThemeMode===e)return this.cachedThemeDefaults;console.debug("Color Master: Cache miss or theme change. Refreshing defaults...");let t=await this.captureCurrentComputedVars();return this.cachedThemeDefaults=t,this.lastCachedThemeMode=e,t}}; /*! Bundled license information: sortablejs/modular/sortable.esm.js: (**! - * Sortable 1.15.6 + * Sortable 1.15.7 * @author RubaXa * @author owenm * @license MIT diff --git a/package-lock.json b/package-lock.json index d4cfe7e..eaa66be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,30 +9,30 @@ "version": "1.2.0", "license": "MIT", "dependencies": { - "sortablejs": "^1.15.6", + "sortablejs": "^1.15.7", "tslib": "^2.8.1" }, "devDependencies": { - "@types/node": "^24.5.2", - "@types/sortablejs": "^1.15.8", - "@typescript-eslint/utils": "^8.47.0", - "cpy-cli": "^6.0.0", - "esbuild": "^0.25.9", - "esbuild-sass-plugin": "^3.3.1", - "eslint": "^9.39.1", + "@types/node": "^25.2.3", + "@types/sortablejs": "^1.15.9", + "@typescript-eslint/utils": "^8.55.0", + "cpy-cli": "^7.0.0", + "esbuild": "^0.27.3", + "esbuild-sass-plugin": "^3.6.0", + "eslint": "^9.39.2", "eslint-plugin-obsidianmd": "^0.1.9", - "globals": "^16.5.0", - "obsidian": "^1.8.7", - "prettier": "^3.7.3", - "sass": "^1.93.3", - "typescript": "^5.9.2", - "typescript-eslint": "^8.47.0" + "globals": "^17.3.0", + "obsidian": "^1.12.0", + "prettier": "^3.8.1", + "sass": "^1.97.3", + "typescript": "^5.9.3", + "typescript-eslint": "^8.55.0" } }, "node_modules/@bufbuild/protobuf": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.10.1.tgz", - "integrity": "sha512-ckS3+vyJb5qGpEYv/s1OebUHDi/xSNtfgw1wqKZo7MR9F2z+qXr0q5XagafAG/9O0QPVIUfST0smluYSTpYFkg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.11.0.tgz", + "integrity": "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==", "dev": true, "license": "(Apache-2.0 AND BSD-3-Clause)", "peer": true @@ -63,9 +63,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", "cpu": [ "ppc64" ], @@ -80,9 +80,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", "cpu": [ "arm" ], @@ -97,9 +97,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", "cpu": [ "arm64" ], @@ -114,9 +114,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", "cpu": [ "x64" ], @@ -131,9 +131,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", "cpu": [ "arm64" ], @@ -148,9 +148,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", "cpu": [ "x64" ], @@ -165,9 +165,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", "cpu": [ "arm64" ], @@ -182,9 +182,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", "cpu": [ "x64" ], @@ -199,9 +199,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", "cpu": [ "arm" ], @@ -216,9 +216,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", "cpu": [ "arm64" ], @@ -233,9 +233,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", "cpu": [ "ia32" ], @@ -250,9 +250,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", "cpu": [ "loong64" ], @@ -267,9 +267,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", "cpu": [ "mips64el" ], @@ -284,9 +284,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", "cpu": [ "ppc64" ], @@ -301,9 +301,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", "cpu": [ "riscv64" ], @@ -318,9 +318,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", "cpu": [ "s390x" ], @@ -335,9 +335,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], @@ -352,9 +352,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", "cpu": [ "arm64" ], @@ -369,9 +369,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", "cpu": [ "x64" ], @@ -386,9 +386,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", "cpu": [ "arm64" ], @@ -403,9 +403,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", "cpu": [ "x64" ], @@ -420,9 +420,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", "cpu": [ "arm64" ], @@ -437,9 +437,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", "cpu": [ "x64" ], @@ -454,9 +454,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", "cpu": [ "arm64" ], @@ -471,9 +471,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", "cpu": [ "ia32" ], @@ -488,9 +488,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", "cpu": [ "x64" ], @@ -505,9 +505,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -691,9 +691,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -854,18 +854,18 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">= 10.0.0" @@ -875,25 +875,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", "cpu": [ "arm64" ], @@ -912,9 +912,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", "cpu": [ "arm64" ], @@ -933,9 +933,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", "cpu": [ "x64" ], @@ -954,9 +954,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", "cpu": [ "x64" ], @@ -975,9 +975,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", "cpu": [ "arm" ], @@ -996,9 +996,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", "cpu": [ "arm" ], @@ -1017,9 +1017,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", "cpu": [ "arm64" ], @@ -1038,9 +1038,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", "cpu": [ "arm64" ], @@ -1059,9 +1059,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", "cpu": [ "x64" ], @@ -1080,9 +1080,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", "cpu": [ "x64" ], @@ -1101,9 +1101,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", "cpu": [ "arm64" ], @@ -1122,9 +1122,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", "cpu": [ "ia32" ], @@ -1143,9 +1143,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", "cpu": [ "x64" ], @@ -1163,6 +1163,20 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@pkgr/core": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz", @@ -1239,9 +1253,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", - "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz", + "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1265,16 +1279,80 @@ "@types/estree": "*" } }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.47.0.tgz", - "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz", + "integrity": "sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.47.0", - "@typescript-eslint/types": "^8.47.0", - "debug": "^4.3.4" + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/type-utils": "8.55.0", + "@typescript-eslint/utils": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.55.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.55.0.tgz", + "integrity": "sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.55.0.tgz", + "integrity": "sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.55.0", + "@typescript-eslint/types": "^8.55.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1288,14 +1366,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz", - "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz", + "integrity": "sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.47.0", - "@typescript-eslint/visitor-keys": "8.47.0" + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1306,9 +1384,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz", - "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz", + "integrity": "sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==", "dev": true, "license": "MIT", "engines": { @@ -1322,10 +1400,35 @@ "typescript": ">=4.8.4 <6.0.0" } }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz", + "integrity": "sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/utils": "8.55.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, "node_modules/@typescript-eslint/types": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.47.0.tgz", - "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.55.0.tgz", + "integrity": "sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==", "dev": true, "license": "MIT", "engines": { @@ -1337,22 +1440,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz", - "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz", + "integrity": "sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.47.0", - "@typescript-eslint/tsconfig-utils": "8.47.0", - "@typescript-eslint/types": "8.47.0", - "@typescript-eslint/visitor-keys": "8.47.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" + "@typescript-eslint/project-service": "8.55.0", + "@typescript-eslint/tsconfig-utils": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1366,16 +1468,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.47.0.tgz", - "integrity": "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.55.0.tgz", + "integrity": "sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.47.0", - "@typescript-eslint/types": "8.47.0", - "@typescript-eslint/typescript-estree": "8.47.0" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1390,13 +1492,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz", - "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz", + "integrity": "sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/types": "8.55.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -1699,14 +1801,6 @@ "node": ">=8" } }, - "node_modules/buffer-builder": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", - "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", - "dev": true, - "license": "MIT/X11", - "peer": true - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -1853,18 +1947,18 @@ } }, "node_modules/cpy": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-12.1.0.tgz", - "integrity": "sha512-3z9tP1rPBLG7pQYn9iRgl7JOSew0SMPuWmakaRfzhXpmFBHmRbp7JekpuqPkXbbWOdSeKSbInYEcdIZjov2fNQ==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-13.2.0.tgz", + "integrity": "sha512-zTF1smuEo4MqYkx2/vzE2QftjgUJGaDNkIyEV9iZG7OfRhxZh6DlLEm+xHAcc0D2k8hL/Abseoep1crmG9so/w==", "dev": true, "license": "MIT", "dependencies": { "copy-file": "^11.1.0", - "globby": "^15.0.0", + "globby": "^16.1.0", "junk": "^4.0.1", "micromatch": "^4.0.8", "p-filter": "^4.1.0", - "p-map": "^7.0.3" + "p-map": "^7.0.4" }, "engines": { "node": ">=20" @@ -1874,14 +1968,15 @@ } }, "node_modules/cpy-cli": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-6.0.0.tgz", - "integrity": "sha512-q7GUqTDnRymCbScJ4Ph1IUM86wWdKG8JbgrvKLgvvehH4wrbRcVN+jRwOTlxJdwm7ykdXMKSp6IESksFeHa0eA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-7.0.0.tgz", + "integrity": "sha512-uGCdhIxGfZcPXidCuT8w1jBknVXFx0un7NLjzqBZcdnkIWtLUnWMPk5TC37ceoVjwASLSNsRtTXXNTuFIyE2ng==", "dev": true, "license": "MIT", "dependencies": { - "cpy": "^12.0.0", - "meow": "^13.2.0" + "cpy": "^13.2.0", + "globby": "^16.1.0", + "meow": "^14.0.0" }, "bin": { "cpy": "cli.js" @@ -2032,17 +2127,14 @@ } }, "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, "node_modules/dunder-proto": { @@ -2262,9 +2354,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2275,48 +2367,47 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" } }, "node_modules/esbuild-sass-plugin": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-3.3.1.tgz", - "integrity": "sha512-SnO1ls+d52n6j8gRRpjexXI8MsHEaumS0IdDHaYM29Y6gakzZYMls6i9ql9+AWMSQk/eryndmUpXEgT34QrX1A==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-3.6.0.tgz", + "integrity": "sha512-lzPJQSEXcnj5amBPPib5lBjsDNPzvdMnX+1Rf7eha9BIpLSM5Ad2pi+Rqg5CAlWMduCgLntS2hLAqG7v1fxWGw==", "dev": true, "license": "MIT", "dependencies": { - "resolve": "^1.22.8", - "safe-identifier": "^0.4.2", - "sass": "^1.71.1" + "resolve": "^1.22.11", + "sass": "^1.97.2" }, "peerDependencies": { - "esbuild": ">=0.20.1", - "sass-embedded": "^1.71.1" + "esbuild": ">=0.27.2", + "sass-embedded": "^1.97.2" } }, "node_modules/escape-string-regexp": { @@ -2333,9 +2424,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { @@ -2345,7 +2436,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -3147,9 +3238,9 @@ "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { @@ -3371,9 +3462,9 @@ } }, "node_modules/globals": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", - "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.3.0.tgz", + "integrity": "sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==", "dev": true, "license": "MIT", "engines": { @@ -3401,18 +3492,18 @@ } }, "node_modules/globby": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-15.0.0.tgz", - "integrity": "sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz", + "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==", "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "fast-glob": "^3.3.3", "ignore": "^7.0.5", - "path-type": "^6.0.0", + "is-path-inside": "^4.0.0", "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" + "unicorn-magic": "^0.4.0" }, "engines": { "node": ">=20" @@ -3451,13 +3542,6 @@ "dev": true, "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -3858,6 +3942,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -4242,13 +4339,13 @@ } }, "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-14.0.0.tgz", + "integrity": "sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4467,9 +4564,9 @@ } }, "node_modules/obsidian": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.10.3.tgz", - "integrity": "sha512-VP+ZSxNMG7y6Z+sU9WqLvJAskCfkFrTz2kFHWmmzis+C+4+ELjk/sazwcTHrHXNZlgCeo8YOlM6SOrAFCynNew==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.12.0.tgz", + "integrity": "sha512-goA2DNTIPO3IRtsqzUs6UQmVJkwZayIKXnI3tLZX/NO+t1yl7YuZrfVEL1JyUkthCJyaZMn8WOlp7mX18acWxA==", "dev": true, "license": "MIT", "dependencies": { @@ -4647,19 +4744,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-type": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", - "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -4694,9 +4778,9 @@ } }, "node_modules/prettier": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.3.tgz", - "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", + "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "dev": true, "license": "MIT", "bin": { @@ -4975,13 +5059,6 @@ ], "license": "MIT" }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", - "dev": true, - "license": "ISC" - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -5028,9 +5105,9 @@ } }, "node_modules/sass": { - "version": "1.94.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.94.2.tgz", - "integrity": "sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "license": "MIT", "dependencies": { @@ -5049,15 +5126,14 @@ } }, "node_modules/sass-embedded": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.93.3.tgz", - "integrity": "sha512-+VUy01yfDqNmIVMd/LLKl2TTtY0ovZN0rTonh+FhKr65mFwIYgU9WzgIZKS7U9/SPCQvWTsTGx9jyt+qRm/XFw==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.97.3.tgz", + "integrity": "sha512-eKzFy13Nk+IRHhlAwP3sfuv+PzOrvzUkwJK2hdoCKYcWGSdmwFpeGpWmyewdw8EgBnsKaSBtgf/0b2K635ecSA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@bufbuild/protobuf": "^2.5.0", - "buffer-builder": "^0.2.0", "colorjs.io": "^0.5.0", "immutable": "^5.0.2", "rxjs": "^7.4.0", @@ -5072,30 +5148,30 @@ "node": ">=16.0.0" }, "optionalDependencies": { - "sass-embedded-all-unknown": "1.93.3", - "sass-embedded-android-arm": "1.93.3", - "sass-embedded-android-arm64": "1.93.3", - "sass-embedded-android-riscv64": "1.93.3", - "sass-embedded-android-x64": "1.93.3", - "sass-embedded-darwin-arm64": "1.93.3", - "sass-embedded-darwin-x64": "1.93.3", - "sass-embedded-linux-arm": "1.93.3", - "sass-embedded-linux-arm64": "1.93.3", - "sass-embedded-linux-musl-arm": "1.93.3", - "sass-embedded-linux-musl-arm64": "1.93.3", - "sass-embedded-linux-musl-riscv64": "1.93.3", - "sass-embedded-linux-musl-x64": "1.93.3", - "sass-embedded-linux-riscv64": "1.93.3", - "sass-embedded-linux-x64": "1.93.3", - "sass-embedded-unknown-all": "1.93.3", - "sass-embedded-win32-arm64": "1.93.3", - "sass-embedded-win32-x64": "1.93.3" + "sass-embedded-all-unknown": "1.97.3", + "sass-embedded-android-arm": "1.97.3", + "sass-embedded-android-arm64": "1.97.3", + "sass-embedded-android-riscv64": "1.97.3", + "sass-embedded-android-x64": "1.97.3", + "sass-embedded-darwin-arm64": "1.97.3", + "sass-embedded-darwin-x64": "1.97.3", + "sass-embedded-linux-arm": "1.97.3", + "sass-embedded-linux-arm64": "1.97.3", + "sass-embedded-linux-musl-arm": "1.97.3", + "sass-embedded-linux-musl-arm64": "1.97.3", + "sass-embedded-linux-musl-riscv64": "1.97.3", + "sass-embedded-linux-musl-x64": "1.97.3", + "sass-embedded-linux-riscv64": "1.97.3", + "sass-embedded-linux-x64": "1.97.3", + "sass-embedded-unknown-all": "1.97.3", + "sass-embedded-win32-arm64": "1.97.3", + "sass-embedded-win32-x64": "1.97.3" } }, "node_modules/sass-embedded-all-unknown": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.93.3.tgz", - "integrity": "sha512-3okGgnE41eg+CPLtAPletu6nQ4N0ij7AeW+Sl5Km4j29XcmqZQeFwYjHe1AlKTEgLi/UAONk1O8i8/lupeKMbw==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.3.tgz", + "integrity": "sha512-t6N46NlPuXiY3rlmG6/+1nwebOBOaLFOOVqNQOC2cJhghOD4hh2kHNQQTorCsbY9S1Kir2la1/XLBwOJfui0xg==", "cpu": [ "!arm", "!arm64", @@ -5107,36 +5183,13 @@ "optional": true, "peer": true, "dependencies": { - "sass": "1.93.3" - } - }, - "node_modules/sass-embedded-all-unknown/node_modules/sass": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.3.tgz", - "integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" + "sass": "1.97.3" } }, "node_modules/sass-embedded-android-arm": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.93.3.tgz", - "integrity": "sha512-8xOw9bywfOD6Wv24BgCmgjkk6tMrsOTTHcb28KDxeJtFtoxiUyMbxo0vChpPAfp2Hyg2tFFKS60s0s4JYk+Raw==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.3.tgz", + "integrity": "sha512-cRTtf/KV/q0nzGZoUzVkeIVVFv3L/tS1w4WnlHapphsjTXF/duTxI8JOU1c/9GhRPiMdfeXH7vYNcMmtjwX7jg==", "cpu": [ "arm" ], @@ -5152,9 +5205,9 @@ } }, "node_modules/sass-embedded-android-arm64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.93.3.tgz", - "integrity": "sha512-uqUl3Kt1IqdGVAcAdbmC+NwuUJy8tM+2ZnB7/zrt6WxWVShVCRdFnWR9LT8HJr7eJN7AU8kSXxaVX/gedanPsg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.3.tgz", + "integrity": "sha512-aiZ6iqiHsUsaDx0EFbbmmA0QgxicSxVVN3lnJJ0f1RStY0DthUkquGT5RJ4TPdaZ6ebeJWkboV4bra+CP766eA==", "cpu": [ "arm64" ], @@ -5170,9 +5223,9 @@ } }, "node_modules/sass-embedded-android-riscv64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.93.3.tgz", - "integrity": "sha512-2jNJDmo+3qLocjWqYbXiBDnfgwrUeZgZFHJIwAefU7Fn66Ot7rsXl+XPwlokaCbTpj7eMFIqsRAZ/uDueXNCJg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.3.tgz", + "integrity": "sha512-zVEDgl9JJodofGHobaM/q6pNETG69uuBIGQHRo789jloESxxZe82lI3AWJQuPmYCOG5ElfRthqgv89h3gTeLYA==", "cpu": [ "riscv64" ], @@ -5188,9 +5241,9 @@ } }, "node_modules/sass-embedded-android-x64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.93.3.tgz", - "integrity": "sha512-y0RoAU6ZenQFcjM9PjQd3cRqRTjqwSbtWLL/p68y2oFyh0QGN0+LQ826fc0ZvU/AbqCsAizkqjzOn6cRZJxTTQ==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.3.tgz", + "integrity": "sha512-3ke0le7ZKepyXn/dKKspYkpBC0zUk/BMciyP5ajQUDy4qJwobd8zXdAq6kOkdiMB+d9UFJOmEkvgFJHl3lqwcw==", "cpu": [ "x64" ], @@ -5206,9 +5259,9 @@ } }, "node_modules/sass-embedded-darwin-arm64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.93.3.tgz", - "integrity": "sha512-7zb/hpdMOdKteK17BOyyypemglVURd1Hdz6QGsggy60aUFfptTLQftLRg8r/xh1RbQAUKWFbYTNaM47J9yPxYg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.3.tgz", + "integrity": "sha512-fuqMTqO4gbOmA/kC5b9y9xxNYw6zDEyfOtMgabS7Mz93wimSk2M1quQaTJnL98Mkcsl2j+7shNHxIS/qpcIDDA==", "cpu": [ "arm64" ], @@ -5224,9 +5277,9 @@ } }, "node_modules/sass-embedded-darwin-x64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.93.3.tgz", - "integrity": "sha512-Ek1Vp8ZDQEe327Lz0b7h3hjvWH3u9XjJiQzveq74RPpJQ2q6d9LfWpjiRRohM4qK6o4XOHw1X10OMWPXJtdtWg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.3.tgz", + "integrity": "sha512-b/2RBs/2bZpP8lMkyZ0Px0vkVkT8uBd0YXpOwK7iOwYkAT8SsO4+WdVwErsqC65vI5e1e5p1bb20tuwsoQBMVA==", "cpu": [ "x64" ], @@ -5242,9 +5295,9 @@ } }, "node_modules/sass-embedded-linux-arm": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.93.3.tgz", - "integrity": "sha512-yeiv2y+dp8B4wNpd3+JsHYD0mvpXSfov7IGyQ1tMIR40qv+ROkRqYiqQvAOXf76Qwh4Y9OaYZtLpnsPjfeq6mA==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.3.tgz", + "integrity": "sha512-2lPQ7HQQg4CKsH18FTsj2hbw5GJa6sBQgDsls+cV7buXlHjqF8iTKhAQViT6nrpLK/e8nFCoaRgSqEC8xMnXuA==", "cpu": [ "arm" ], @@ -5260,9 +5313,9 @@ } }, "node_modules/sass-embedded-linux-arm64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.93.3.tgz", - "integrity": "sha512-RBrHWgfd8Dd8w4fbmdRVXRrhh8oBAPyeWDTKAWw8ZEmuXfVl4ytjDuyxaVilh6rR1xTRTNpbaA/YWApBlLrrNw==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.3.tgz", + "integrity": "sha512-IP1+2otCT3DuV46ooxPaOKV1oL5rLjteRzf8ldZtfIEcwhSgSsHgA71CbjYgLEwMY9h4jeal8Jfv3QnedPvSjg==", "cpu": [ "arm64" ], @@ -5278,9 +5331,9 @@ } }, "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.93.3.tgz", - "integrity": "sha512-fU0fwAwbp7sBE3h5DVU5UPzvaLg7a4yONfFWkkcCp6ZrOiPuGRHXXYriWQ0TUnWy4wE+svsVuWhwWgvlb/tkKg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.3.tgz", + "integrity": "sha512-cBTMU68X2opBpoYsSZnI321gnoaiMBEtc+60CKCclN6PCL3W3uXm8g4TLoil1hDD6mqU9YYNlVG6sJ+ZNef6Lg==", "cpu": [ "arm" ], @@ -5296,9 +5349,9 @@ } }, "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.93.3.tgz", - "integrity": "sha512-PS829l+eUng+9W4PFclXGb4uA2+965NHV3/Sa5U7qTywjeeUUYTZg70dJHSqvhrBEfCc2XJABeW3adLJbyQYkw==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.3.tgz", + "integrity": "sha512-Lij0SdZCsr+mNRSyDZ7XtJpXEITrYsaGbOTz5e6uFLJ9bmzUbV7M8BXz2/cA7bhfpRPT7/lwRKPdV4+aR9Ozcw==", "cpu": [ "arm64" ], @@ -5314,9 +5367,9 @@ } }, "node_modules/sass-embedded-linux-musl-riscv64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.93.3.tgz", - "integrity": "sha512-cK1oBY+FWQquaIGEeQ5H74KTO8cWsSWwXb/WaildOO9U6wmUypTgUYKQ0o5o/29nZbWWlM1PHuwVYTSnT23Jjg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.3.tgz", + "integrity": "sha512-sBeLFIzMGshR4WmHAD4oIM7WJVkSoCIEwutzptFtGlSlwfNiijULp+J5hA2KteGvI6Gji35apR5aWj66wEn/iA==", "cpu": [ "riscv64" ], @@ -5332,9 +5385,9 @@ } }, "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.93.3.tgz", - "integrity": "sha512-A7wkrsHu2/I4Zpa0NMuPGkWDVV7QGGytxGyUq3opSXgAexHo/vBPlGoDXoRlSdex0cV+aTMRPjoGIfdmNlHwyg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.3.tgz", + "integrity": "sha512-/oWJ+OVrDg7ADDQxRLC/4g1+Nsz1g4mkYS2t6XmyMJKFTFK50FVI2t5sOdFH+zmMp+nXHKM036W94y9m4jjEcw==", "cpu": [ "x64" ], @@ -5350,9 +5403,9 @@ } }, "node_modules/sass-embedded-linux-riscv64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.93.3.tgz", - "integrity": "sha512-vWkW1+HTF5qcaHa6hO80gx/QfB6GGjJUP0xLbnAoY4pwEnw5ulGv6RM8qYr8IDhWfVt/KH+lhJ2ZFxnJareisQ==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.3.tgz", + "integrity": "sha512-l3IfySApLVYdNx0Kjm7Zehte1CDPZVcldma3dZt+TfzvlAEerM6YDgsk5XEj3L8eHBCgHgF4A0MJspHEo2WNfA==", "cpu": [ "riscv64" ], @@ -5368,9 +5421,9 @@ } }, "node_modules/sass-embedded-linux-x64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.93.3.tgz", - "integrity": "sha512-k6uFxs+e5jSuk1Y0niCwuq42F9ZC5UEP7P+RIOurIm8w/5QFa0+YqeW+BPWEW5M1FqVOsNZH3qGn4ahqvAEjPA==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.3.tgz", + "integrity": "sha512-Kwqwc/jSSlcpRjULAOVbndqEy2GBzo6OBmmuBVINWUaJLJ8Kczz3vIsDUWLfWz/kTEw9FHBSiL0WCtYLVAXSLg==", "cpu": [ "x64" ], @@ -5386,9 +5439,9 @@ } }, "node_modules/sass-embedded-unknown-all": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.93.3.tgz", - "integrity": "sha512-o5wj2rLpXH0C+GJKt/VpWp6AnMsCCbfFmnMAttcrsa+U3yrs/guhZ3x55KAqqUsE8F47e3frbsDL+1OuQM5DAA==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.3.tgz", + "integrity": "sha512-/GHajyYJmvb0IABUQHbVHf1nuHPtIDo/ClMZ81IDr59wT5CNcMe7/dMNujXwWugtQVGI5UGmqXWZQCeoGnct8Q==", "dev": true, "license": "MIT", "optional": true, @@ -5400,36 +5453,13 @@ ], "peer": true, "dependencies": { - "sass": "1.93.3" - } - }, - "node_modules/sass-embedded-unknown-all/node_modules/sass": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.3.tgz", - "integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" + "sass": "1.97.3" } }, "node_modules/sass-embedded-win32-arm64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.93.3.tgz", - "integrity": "sha512-0dOfT9moy9YmBolodwYYXtLwNr4jL4HQC9rBfv6mVrD7ud8ue2kDbn+GVzj1hEJxvEexVSmDCf7MHUTLcGs9xQ==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.3.tgz", + "integrity": "sha512-RDGtRS1GVvQfMGAmVXNxYiUOvPzn9oO1zYB/XUM9fudDRnieYTcUytpNTQZLs6Y1KfJxgt5Y+giRceC92fT8Uw==", "cpu": [ "arm64" ], @@ -5445,9 +5475,9 @@ } }, "node_modules/sass-embedded-win32-x64": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.93.3.tgz", - "integrity": "sha512-wHFVfxiS9hU/sNk7KReD+lJWRp3R0SLQEX4zfOnRP2zlvI2X4IQR5aZr9GNcuMP6TmNpX0nQPZTegS8+h9RrEg==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.3.tgz", + "integrity": "sha512-SFRa2lED9UEwV6vIGeBXeBOLKF+rowF3WmNfb/BzhxmdAsKofCXrJ8ePW7OcDVrvNEbTOGwhsReIsF5sH8fVaw==", "cpu": [ "x64" ], @@ -5654,9 +5684,9 @@ } }, "node_modules/sortablejs": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.6.tgz", - "integrity": "sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.7.tgz", + "integrity": "sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==", "license": "MIT" }, "node_modules/source-map-js": { @@ -5853,9 +5883,9 @@ } }, "node_modules/sync-message-port": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", - "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.2.0.tgz", + "integrity": "sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==", "dev": true, "license": "MIT", "peer": true, @@ -5894,6 +5924,54 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5924,9 +6002,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -6074,16 +6152,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.47.0.tgz", - "integrity": "sha512-Lwe8i2XQ3WoMjua/r1PHrCTpkubPYJCAfOurtn+mtTzqB6jNd+14n9UN1bJ4s3F49x9ixAm0FLflB/JzQ57M8Q==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.55.0.tgz", + "integrity": "sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.47.0", - "@typescript-eslint/parser": "8.47.0", - "@typescript-eslint/typescript-estree": "8.47.0", - "@typescript-eslint/utils": "8.47.0" + "@typescript-eslint/eslint-plugin": "8.55.0", + "@typescript-eslint/parser": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/utils": "8.55.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6097,96 +6175,6 @@ "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz", - "integrity": "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.47.0", - "@typescript-eslint/type-utils": "8.47.0", - "@typescript-eslint/utils": "8.47.0", - "@typescript-eslint/visitor-keys": "8.47.0", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.47.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.47.0.tgz", - "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.47.0", - "@typescript-eslint/types": "8.47.0", - "@typescript-eslint/typescript-estree": "8.47.0", - "@typescript-eslint/visitor-keys": "8.47.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz", - "integrity": "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.47.0", - "@typescript-eslint/typescript-estree": "8.47.0", - "@typescript-eslint/utils": "8.47.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/typescript-eslint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", @@ -6214,13 +6202,13 @@ "license": "MIT" }, "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" diff --git a/package.json b/package.json index a1968a5..619cbf1 100644 --- a/package.json +++ b/package.json @@ -15,23 +15,23 @@ "author": "Yazan Ammar", "license": "MIT", "dependencies": { - "sortablejs": "^1.15.6", + "sortablejs": "^1.15.7", "tslib": "^2.8.1" }, "devDependencies": { - "@types/node": "^24.5.2", - "@types/sortablejs": "^1.15.8", - "@typescript-eslint/utils": "^8.47.0", - "cpy-cli": "^6.0.0", - "esbuild": "^0.25.9", - "esbuild-sass-plugin": "^3.3.1", - "eslint": "^9.39.1", + "@types/node": "^25.2.3", + "@types/sortablejs": "^1.15.9", + "@typescript-eslint/utils": "^8.55.0", + "cpy-cli": "^7.0.0", + "esbuild": "^0.27.3", + "esbuild-sass-plugin": "^3.6.0", + "eslint": "^9.39.2", "eslint-plugin-obsidianmd": "^0.1.9", - "globals": "^16.5.0", - "obsidian": "^1.8.7", - "prettier": "^3.7.3", - "sass": "^1.93.3", - "typescript": "^5.9.2", - "typescript-eslint": "^8.47.0" + "globals": "^17.3.0", + "obsidian": "^1.12.0", + "prettier": "^3.8.1", + "sass": "^1.97.3", + "typescript": "^5.9.3", + "typescript-eslint": "^8.55.0" } }