@public-ui/themes
Version:
Contains the style guides and themes of various corporate designs for KoliBri - The accessible HTML-Standard.
1 lines • 149 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../components/dist/esm/common-8fBdMvJM.js","../../components/dist/esm/events-CoPFQEiC.js","../../components/dist/esm/browser-DeS_gcJV.js","../../components/dist/esm/bem-DhwfdDrM.js","../../components/dist/esm/bem-CjFNhKP6.js","../../components/dist/esm/index.js","../../default/src/index.ts","../../ecl/src/ecl-ec/index.ts","../../ecl/src/ecl-eu/index.ts"],"sourcesContent":["/*!\n * KoliBri - The accessible HTML-Standard\n */\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar loglevel$1 = {exports: {}};\n\n/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\nvar loglevel = loglevel$1.exports;\n\nvar hasRequiredLoglevel;\n\nfunction requireLoglevel () {\n\tif (hasRequiredLoglevel) return loglevel$1.exports;\n\thasRequiredLoglevel = 1;\n\t(function (module) {\n\t\t(function (root, definition) {\n\t\t if (module.exports) {\n\t\t module.exports = definition();\n\t\t } else {\n\t\t root.log = definition();\n\t\t }\n\t\t}(loglevel, function () {\n\n\t\t // Slightly dubious tricks to cut down minimized file size\n\t\t var noop = function() {};\n\t\t var undefinedType = \"undefined\";\n\t\t var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n\t\t /Trident\\/|MSIE /.test(window.navigator.userAgent)\n\t\t );\n\n\t\t var logMethods = [\n\t\t \"trace\",\n\t\t \"debug\",\n\t\t \"info\",\n\t\t \"warn\",\n\t\t \"error\"\n\t\t ];\n\n\t\t var _loggersByName = {};\n\t\t var defaultLogger = null;\n\n\t\t // Cross-browser bind equivalent that works at least back to IE6\n\t\t function bindMethod(obj, methodName) {\n\t\t var method = obj[methodName];\n\t\t if (typeof method.bind === 'function') {\n\t\t return method.bind(obj);\n\t\t } else {\n\t\t try {\n\t\t return Function.prototype.bind.call(method, obj);\n\t\t } catch (e) {\n\t\t // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n\t\t return function() {\n\t\t return Function.prototype.apply.apply(method, [obj, arguments]);\n\t\t };\n\t\t }\n\t\t }\n\t\t }\n\n\t\t // Trace() doesn't print the message in IE, so for that case we need to wrap it\n\t\t function traceForIE() {\n\t\t if (console.log) {\n\t\t if (console.log.apply) {\n\t\t console.log.apply(console, arguments);\n\t\t } else {\n\t\t // In old IE, native console methods themselves don't have apply().\n\t\t Function.prototype.apply.apply(console.log, [console, arguments]);\n\t\t }\n\t\t }\n\t\t if (console.trace) console.trace();\n\t\t }\n\n\t\t // Build the best logging method possible for this env\n\t\t // Wherever possible we want to bind, not wrap, to preserve stack traces\n\t\t function realMethod(methodName) {\n\t\t if (methodName === 'debug') {\n\t\t methodName = 'log';\n\t\t }\n\n\t\t if (typeof console === undefinedType) {\n\t\t return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n\t\t } else if (methodName === 'trace' && isIE) {\n\t\t return traceForIE;\n\t\t } else if (console[methodName] !== undefined) {\n\t\t return bindMethod(console, methodName);\n\t\t } else if (console.log !== undefined) {\n\t\t return bindMethod(console, 'log');\n\t\t } else {\n\t\t return noop;\n\t\t }\n\t\t }\n\n\t\t // These private functions always need `this` to be set properly\n\n\t\t function replaceLoggingMethods() {\n\t\t /*jshint validthis:true */\n\t\t var level = this.getLevel();\n\n\t\t // Replace the actual methods.\n\t\t for (var i = 0; i < logMethods.length; i++) {\n\t\t var methodName = logMethods[i];\n\t\t this[methodName] = (i < level) ?\n\t\t noop :\n\t\t this.methodFactory(methodName, level, this.name);\n\t\t }\n\n\t\t // Define log.log as an alias for log.debug\n\t\t this.log = this.debug;\n\n\t\t // Return any important warnings.\n\t\t if (typeof console === undefinedType && level < this.levels.SILENT) {\n\t\t return \"No console available for logging\";\n\t\t }\n\t\t }\n\n\t\t // In old IE versions, the console isn't present until you first open it.\n\t\t // We build realMethod() replacements here that regenerate logging methods\n\t\t function enableLoggingWhenConsoleArrives(methodName) {\n\t\t return function () {\n\t\t if (typeof console !== undefinedType) {\n\t\t replaceLoggingMethods.call(this);\n\t\t this[methodName].apply(this, arguments);\n\t\t }\n\t\t };\n\t\t }\n\n\t\t // By default, we use closely bound real methods wherever possible, and\n\t\t // otherwise we wait for a console to appear, and then try again.\n\t\t function defaultMethodFactory(methodName, _level, _loggerName) {\n\t\t /*jshint validthis:true */\n\t\t return realMethod(methodName) ||\n\t\t enableLoggingWhenConsoleArrives.apply(this, arguments);\n\t\t }\n\n\t\t function Logger(name, factory) {\n\t\t // Private instance variables.\n\t\t var self = this;\n\t\t /**\n\t\t * The level inherited from a parent logger (or a global default). We\n\t\t * cache this here rather than delegating to the parent so that it stays\n\t\t * in sync with the actual logging methods that we have installed (the\n\t\t * parent could change levels but we might not have rebuilt the loggers\n\t\t * in this child yet).\n\t\t * @type {number}\n\t\t */\n\t\t var inheritedLevel;\n\t\t /**\n\t\t * The default level for this logger, if any. If set, this overrides\n\t\t * `inheritedLevel`.\n\t\t * @type {number|null}\n\t\t */\n\t\t var defaultLevel;\n\t\t /**\n\t\t * A user-specific level for this logger. If set, this overrides\n\t\t * `defaultLevel`.\n\t\t * @type {number|null}\n\t\t */\n\t\t var userLevel;\n\n\t\t var storageKey = \"loglevel\";\n\t\t if (typeof name === \"string\") {\n\t\t storageKey += \":\" + name;\n\t\t } else if (typeof name === \"symbol\") {\n\t\t storageKey = undefined;\n\t\t }\n\n\t\t function persistLevelIfPossible(levelNum) {\n\t\t var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n\t\t if (typeof window === undefinedType || !storageKey) return;\n\n\t\t // Use localStorage if available\n\t\t try {\n\t\t window.localStorage[storageKey] = levelName;\n\t\t return;\n\t\t } catch (ignore) {}\n\n\t\t // Use session cookie as fallback\n\t\t try {\n\t\t window.document.cookie =\n\t\t encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n\t\t } catch (ignore) {}\n\t\t }\n\n\t\t function getPersistedLevel() {\n\t\t var storedLevel;\n\n\t\t if (typeof window === undefinedType || !storageKey) return;\n\n\t\t try {\n\t\t storedLevel = window.localStorage[storageKey];\n\t\t } catch (ignore) {}\n\n\t\t // Fallback to cookies if local storage gives us nothing\n\t\t if (typeof storedLevel === undefinedType) {\n\t\t try {\n\t\t var cookie = window.document.cookie;\n\t\t var cookieName = encodeURIComponent(storageKey);\n\t\t var location = cookie.indexOf(cookieName + \"=\");\n\t\t if (location !== -1) {\n\t\t storedLevel = /^([^;]+)/.exec(\n\t\t cookie.slice(location + cookieName.length + 1)\n\t\t )[1];\n\t\t }\n\t\t } catch (ignore) {}\n\t\t }\n\n\t\t // If the stored level is not valid, treat it as if nothing was stored.\n\t\t if (self.levels[storedLevel] === undefined) {\n\t\t storedLevel = undefined;\n\t\t }\n\n\t\t return storedLevel;\n\t\t }\n\n\t\t function clearPersistedLevel() {\n\t\t if (typeof window === undefinedType || !storageKey) return;\n\n\t\t // Use localStorage if available\n\t\t try {\n\t\t window.localStorage.removeItem(storageKey);\n\t\t } catch (ignore) {}\n\n\t\t // Use session cookie as fallback\n\t\t try {\n\t\t window.document.cookie =\n\t\t encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n\t\t } catch (ignore) {}\n\t\t }\n\n\t\t function normalizeLevel(input) {\n\t\t var level = input;\n\t\t if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n\t\t level = self.levels[level.toUpperCase()];\n\t\t }\n\t\t if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n\t\t return level;\n\t\t } else {\n\t\t throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n\t\t }\n\t\t }\n\n\t\t /*\n\t\t *\n\t\t * Public logger API - see https://github.com/pimterry/loglevel for details\n\t\t *\n\t\t */\n\n\t\t self.name = name;\n\n\t\t self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n\t\t \"ERROR\": 4, \"SILENT\": 5};\n\n\t\t self.methodFactory = factory || defaultMethodFactory;\n\n\t\t self.getLevel = function () {\n\t\t if (userLevel != null) {\n\t\t return userLevel;\n\t\t } else if (defaultLevel != null) {\n\t\t return defaultLevel;\n\t\t } else {\n\t\t return inheritedLevel;\n\t\t }\n\t\t };\n\n\t\t self.setLevel = function (level, persist) {\n\t\t userLevel = normalizeLevel(level);\n\t\t if (persist !== false) { // defaults to true\n\t\t persistLevelIfPossible(userLevel);\n\t\t }\n\n\t\t // NOTE: in v2, this should call rebuild(), which updates children.\n\t\t return replaceLoggingMethods.call(self);\n\t\t };\n\n\t\t self.setDefaultLevel = function (level) {\n\t\t defaultLevel = normalizeLevel(level);\n\t\t if (!getPersistedLevel()) {\n\t\t self.setLevel(level, false);\n\t\t }\n\t\t };\n\n\t\t self.resetLevel = function () {\n\t\t userLevel = null;\n\t\t clearPersistedLevel();\n\t\t replaceLoggingMethods.call(self);\n\t\t };\n\n\t\t self.enableAll = function(persist) {\n\t\t self.setLevel(self.levels.TRACE, persist);\n\t\t };\n\n\t\t self.disableAll = function(persist) {\n\t\t self.setLevel(self.levels.SILENT, persist);\n\t\t };\n\n\t\t self.rebuild = function () {\n\t\t if (defaultLogger !== self) {\n\t\t inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n\t\t }\n\t\t replaceLoggingMethods.call(self);\n\n\t\t if (defaultLogger === self) {\n\t\t for (var childName in _loggersByName) {\n\t\t _loggersByName[childName].rebuild();\n\t\t }\n\t\t }\n\t\t };\n\n\t\t // Initialize all the internal levels.\n\t\t inheritedLevel = normalizeLevel(\n\t\t defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n\t\t );\n\t\t var initialLevel = getPersistedLevel();\n\t\t if (initialLevel != null) {\n\t\t userLevel = normalizeLevel(initialLevel);\n\t\t }\n\t\t replaceLoggingMethods.call(self);\n\t\t }\n\n\t\t /*\n\t\t *\n\t\t * Top-level API\n\t\t *\n\t\t */\n\n\t\t defaultLogger = new Logger();\n\n\t\t defaultLogger.getLogger = function getLogger(name) {\n\t\t if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n\t\t throw new TypeError(\"You must supply a name when creating a logger.\");\n\t\t }\n\n\t\t var logger = _loggersByName[name];\n\t\t if (!logger) {\n\t\t logger = _loggersByName[name] = new Logger(\n\t\t name,\n\t\t defaultLogger.methodFactory\n\t\t );\n\t\t }\n\t\t return logger;\n\t\t };\n\n\t\t // Grab the current global log variable in case of overwrite\n\t\t var _log = (typeof window !== undefinedType) ? window.log : undefined;\n\t\t defaultLogger.noConflict = function() {\n\t\t if (typeof window !== undefinedType &&\n\t\t window.log === defaultLogger) {\n\t\t window.log = _log;\n\t\t }\n\n\t\t return defaultLogger;\n\t\t };\n\n\t\t defaultLogger.getLoggers = function getLoggers() {\n\t\t return _loggersByName;\n\t\t };\n\n\t\t // ES6 default export, for compatibility\n\t\t defaultLogger['default'] = defaultLogger;\n\n\t\t return defaultLogger;\n\t\t})); \n\t} (loglevel$1));\n\treturn loglevel$1.exports;\n}\n\nvar loglevelExports = requireLoglevel();\nvar h = /*@__PURE__*/getDefaultExportFromCjs(loglevelExports);\n\nconst I=(t,e)=>s=>s(t,e),P=(t,e)=>s=>s(t,e,{append:false}),$=()=>{const t=typeof process<\"u\"&&process.env?process.env:{},e=t.NODE_ENV===\"test\",s=\"VITEST\"in t,a=\"JEST_WORKER_ID\"in t,o=\"PLAYWRIGHT_TEST_BASE_URL\"in t,r=t.CI===\"true\",i=t.TEST===\"true\"||t.IS_TEST===\"true\",c=typeof navigator<\"u\"&&navigator.webdriver===true,m=typeof navigator<\"u\"&&/playwright|puppeteer|webdriver|selenium|testcafe/i.test(navigator.userAgent);return e||s||a||o||r||i||c||m},n$1={A11yUi:{CSS_STYLE_CACHE:new Map,IS_TEST_ENVIRONMENT:$(),PERFORMANCE_MEASURES:new Map,STYLING_TASK_QUEUE:new Map,THEMES:new Map,showAverageTimes:()=>{const t={};for(const[s,a]of n$1.A11yUi.PERFORMANCE_MEASURES.entries())t[s]=[a.totalTime/a.count,a.count];const e=Object.entries(t).sort((s,a)=>a[1][0]-s[1][0]);return console.table(Object.fromEntries(e.map(([s,[a,o]])=>[s,{\"avg (ms)\":parseFloat(a.toFixed(2)),count:o}]))),t}}};let d=true,f$1=false;const j=/^[a-z][a-z0-9]{1,}(-[a-z0-9]+)?$/,F=t=>typeof t==\"string\"&&j.test(t),E=t=>{if(!F(t))throw new Error(`[Theming] The theme identifier \"${typeof t==\"string\"?t:\"\"}\" (Type: ${typeof t}) is not valid. Please use only follow this pattern: /^[a-z][a-z0-9]{1,}(-[a-z0-9]+)?$/`)},g=t=>t.replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").replace(/\\s*([{},;])\\s*/g,\"$1\").replace(/:\\s+/g,\":\").replace(/\\s+/g,\" \").replace(/;\\}/g,\"}\").trim(),Y=(t,e,s,a)=>u$1(t,e,s,a),u$1=(t,e,s,a)=>{a=a??{},a.append=a.append??false,E(t),d&&!f$1&&(f$1=true,h.warn(`[Theming] The theme process is locked. This means that the theme \"${t}\" should not be patched.\n\n import { register } from 'adopted-style-sheets';\n import { defineCustomElements } from '...';\n import { THEME } from '...';\n\n register(THEME, defineCustomElements)\n .then(() => {\n // run your app or website\n })\n .catch(console.warn);`));let o=n$1.A11yUi.THEMES.get(t);if(o||(o=new Map,n$1.A11yUi.THEMES.set(t,o)),a.append&&o.has(e)){const r=o.get(e);o.set(e,g(`${r}${s}`));}else o.set(e,g(s));},k=(t,e,s,a)=>p(t,e,s,a),p=(t,e,s,a)=>(E(t),typeof e==\"object\"&&e!==null&&Object.getOwnPropertyNames(e).forEach(o=>{const r=e[o],i=o.toLowerCase(),c=typeof a?.transformTagName==\"function\"&&![\"GLOBAL\",\"PROPERTIES\"].includes(o)?a.transformTagName(i):o;typeof r==\"string\"&&r.length>0&&u$1(t,c.toUpperCase(),r,s);}),t),S=t=>{if(t instanceof HTMLElement){if(typeof t.dataset.theme==\"string\")return t;{let e=t.parentNode;for(;e instanceof ShadowRoot;)e=e.host;return S(e)}}else return null},A=(t={})=>t.themeEncroachCss===\"false\"||t.themeReset===\"true\"?false:{mode:t.themeEncroachCssMode===\"after\"||t.themeEncroachCssMode===\"before\"?t.themeEncroachCssMode:\"before\"},C=()=>typeof n$1.A11yUi.Theme==\"object\"&&n$1.A11yUi.Theme!==null&&typeof n$1.A11yUi.Theme.cache==\"boolean\"&&typeof n$1.A11yUi.Theme.encroachCss==\"object\"&&n$1.A11yUi.Theme.encroachCss!==null&&typeof n$1.A11yUi.Theme.encroachCss.mode==\"string\"&&typeof n$1.A11yUi.Theme.name==\"string\",G=()=>!(typeof n$1.A11yUi.Theme==\"object\"&&n$1.A11yUi.Theme!==null)||n$1.A11yUi.Theme.name!==\"default\",b=t=>{if(C())return n$1.A11yUi.Theme;{const e={cache:true,encroachCss:A(),loglevel:\"silent\",mode:\"csr\",name:null},s=S(t);return s instanceof HTMLElement&&(e.cache=s.dataset.themeCache!==\"false\",e.encroachCss=A(s.dataset),e.loglevel=s.dataset.themeLoglevel===\"debug\"?s.dataset.themeLoglevel:\"silent\",e.mode=s.dataset.themeMode===\"ssr\"?s.dataset.themeMode:\"csr\",e.name=s.dataset.theme||null),e}},B=(t,e)=>({cache:e.cache!==false,detect:e.detect===\"auto\"?\"auto\":\"fixed\",encroachCss:e.encroachCss===false?false:typeof e.encroachCss==\"object\"&&e.encroachCss!=null&&(e.encroachCss.mode===\"after\"||e.encroachCss.mode===\"before\")?e.encroachCss:{mode:\"before\"},loglevel:e.loglevel===\"debug\"?e.loglevel:\"silent\",mode:e.mode===\"ssr\"?e.mode:\"csr\",name:typeof e.name==\"string\"?e.name:t}),K=(t,e)=>{C()===false&&G()&&typeof e==\"object\"&&e!==null&&(e=B(t,e),e.detect===\"fixed\"?(e.name===null&&typeof t==\"string\"&&(e.name=t),t===e.name&&(n$1.A11yUi.Theme=e,h.info(`[Theming] Theme \"${t}\" was set as default theme.`))):f$1||(f$1=true,h.warn(\"[Theming] The presetting of theme options is only relevant by using 'fixed' detection mode.\")));};let U=false;const V=(t,e,s={})=>{U||(U=true,d=false,typeof window<\"u\"&&(window.A11yUi=n$1.A11yUi)),typeof t==\"function\"?t=new Set([t]):Array.isArray(t)&&(t=new Set(t)),t instanceof Set&&t.forEach(o=>{typeof o==\"function\"&&o.length===1?K(o((r,i,c)=>p(r,i,c,s)),{cache:s.theme?.cache,detect:s.theme?.detect,encroachCss:s.theme?.encroachCss,mode:s.theme?.mode,name:s.theme?.name}):h.error(\"[Theming] An attempt was made to load an incompatible theme.\");}),d=true,typeof e==\"function\"?e=new Set([e]):Array.isArray(e)&&(e=new Set(e));const a=[];return e.forEach(o=>{const r=o();r instanceof Promise&&a.push(r);}),Promise.all(a)};const w=new Set,W=/--[^;]+/g,q=/:/,J=typeof MutationObserver<\"u\";let M=25,N=()=>{M=Math.min(25+Math.log2(n$1.A11yUi.STYLING_TASK_QUEUE.size+1)*20,250);};const X=(t,e)=>{let s=e.match(W);if(Array.isArray(s)){s=s.filter(o=>q.test(o));const a=document.createElement(\"style\");a.innerHTML=`.${t} {${s.join(\";\")}}`,document.querySelector(\"head\")?.appendChild(a);}w.add(t);},y=(t,e)=>{const s=n$1.A11yUi.THEMES.get(t);return s instanceof Map&&s.has(e)?s.get(e):\"\"},Z=t=>{for(const e of Array.from(t.childNodes))if(e instanceof HTMLStyleElement&&e.tagName===\"STYLE\"&&e.dataset.themingFallback===void 0)t.removeChild(e);else break},ee=(t,e)=>{try{if(n$1.A11yUi.Theme?.mode===\"ssr\")throw new Error(\"SSR\");const s=[];e.forEach(a=>{const o=new CSSStyleSheet;o.replaceSync(a),s.push(o);}),t.adoptedStyleSheets=s;}catch{[...e].reverse().forEach((a,o)=>{if(typeof a!=\"string\"||a.length===0)return;const r=document.createElement(\"style\");switch(r.dataset.themingFallback=\"\",o){case 4:r.dataset.themingBaseA11y=\"\";break;case 3:r.dataset.themingBaseGlobal=\"\";break;case 2:r.dataset.themingBaseComponent=\"\";break;case 1:r.dataset.themingCustomGlobal=\"\";break;case 0:r.dataset.themingCustomComponent=\"\";break;default:r.dataset.themingUnknown=\"\";break}r.innerHTML=a,t.insertBefore(r,t.firstChild);});}},te=(t,e,s)=>{if(s!==false){const a=[...Array.from(t.childNodes).filter(r=>r instanceof HTMLStyleElement&&r.tagName===\"STYLE\")];let o;try{o=[...Array.from(t.adoptedStyleSheets)];}catch{o=[];}s?.mode===\"before\"?(a.reverse().forEach(r=>e.unshift(r.innerHTML)),o.reverse().forEach(r=>e.unshift(Array.from(r.cssRules).map(i=>i.cssText).join(\"\")))):s?.mode===\"after\"&&(a.forEach(r=>e.push(r.innerHTML)),o.forEach(r=>e.push(Array.from(r.cssRules).map(i=>i.cssText).join(\"\"))));}},se=(t,e,s)=>{const a=e.name||\"default\";let o;try{if(t.shadowRoot===null)throw new Error(\"ShadowRoot is null\");o=t.shadowRoot;}catch{o=t;}if(n$1.A11yUi.CSS_STYLE_CACHE.get(a)?.has(t.tagName))v(t,o,n$1.A11yUi.CSS_STYLE_CACHE.get(a)?.get(t.tagName),s);else {const r=y(a,\"PROPERTIES\"),i=y(a,\"GLOBAL\"),c=y(a,t.tagName);w.has(a)===false&&X(a,i);const m=[r,i,c];te(o,m,e.encroachCss),e.cache===true&&(n$1.A11yUi.CSS_STYLE_CACHE.has(a)===false&&n$1.A11yUi.CSS_STYLE_CACHE.set(a,new Map),n$1.A11yUi.CSS_STYLE_CACHE.get(a)?.set(t.tagName,m)),v(t,o,m,s);}},v=(t,e,s,a)=>{const o=performance.now();if(Z(e),ee(e,s),H(t),a(),n$1.A11yUi.PERFORMANCE_MEASURES.has(t.tagName)){const r=n$1.A11yUi.PERFORMANCE_MEASURES.get(t.tagName);r.count+=1,r.totalTime+=performance.now()-o;}else n$1.A11yUi.PERFORMANCE_MEASURES.set(t.tagName,{count:1,totalTime:performance.now()-o});},L=t=>{const e=n$1.A11yUi.STYLING_TASK_QUEUE.get(t);if(e){const{resetCss:s,themeDetails:a}=e;se(t,a,s),H(t);}};let T=t=>{const e=setTimeout(()=>{clearTimeout(e),t.classList.contains(\"hydrated\")?L(t):T(t);},M);};const ae={attributes:true,attributeFilter:[\"class\"],childList:false,subtree:false},oe={attributes:true,attributeFilter:[],childList:false,subtree:false},R=J?new MutationObserver((t,e)=>{for(const s of t){const a=s.target;a.classList.contains(\"hydrated\")&&(L(a),e.observe(a,oe));}}):null;R&&(T=t=>R.observe(t,ae),N=()=>{});let _=t=>{const e=getComputedStyle(t).getPropertyValue(\"--theme-visibility-delay\").trim();if(e.endsWith(\"ms\"))return parseFloat(e);if(e.endsWith(\"s\"))return parseFloat(e)*1e3;{const s=parseFloat(e);return isNaN(s)?0:s}};n$1.A11yUi.IS_TEST_ENVIRONMENT&&(_=()=>0);const O=(t,e)=>{t.style.setProperty(\"visibility\",e),t.dataset.themed=\"\";},re=(t,e)=>{const s=t.style.visibility||null;n$1.A11yUi.STYLING_TASK_QUEUE.set(t,{resetCss:()=>{const a=_(t);a>0?setTimeout(()=>{O(t,s);},a):O(t,s);},themeDetails:e}),t.style.setProperty(\"visibility\",\"hidden\",\"important\"),T(t);},H=t=>{n$1.A11yUi.STYLING_TASK_QUEUE.delete(t),N();},ne=(t,e)=>{re(t,{...n$1.A11yUi.Theme,...e});};class ie{Prefix;Key;Tag;createTheme=(e,s)=>P(e,s);createTranslation=(e,s)=>I(e,s);constructor(e,s,a){this.Prefix=e,this.Key=Object.getOwnPropertyNames(s),this.Tag=Object.getOwnPropertyNames(a);}}\n\nvar KeyEnum;\n(function (KeyEnum) {\n KeyEnum[KeyEnum[\"error\"] = 0] = \"error\";\n KeyEnum[KeyEnum[\"warning\"] = 1] = \"warning\";\n KeyEnum[KeyEnum[\"info\"] = 2] = \"info\";\n KeyEnum[KeyEnum[\"success\"] = 3] = \"success\";\n KeyEnum[KeyEnum[\"message\"] = 4] = \"message\";\n KeyEnum[KeyEnum[\"close\"] = 5] = \"close\";\n KeyEnum[KeyEnum[\"form-description\"] = 6] = \"form-description\";\n KeyEnum[KeyEnum[\"of\"] = 7] = \"of\";\n KeyEnum[KeyEnum[\"characters\"] = 8] = \"characters\";\n KeyEnum[KeyEnum[\"new\"] = 9] = \"new\";\n KeyEnum[KeyEnum[\"no-entries\"] = 10] = \"no-entries\";\n KeyEnum[KeyEnum[\"change-order\"] = 11] = \"change-order\";\n KeyEnum[KeyEnum[\"action-running\"] = 12] = \"action-running\";\n KeyEnum[KeyEnum[\"action-done\"] = 13] = \"action-done\";\n KeyEnum[KeyEnum[\"page-first\"] = 14] = \"page-first\";\n KeyEnum[KeyEnum[\"page-back\"] = 15] = \"page-back\";\n KeyEnum[KeyEnum[\"page-next\"] = 16] = \"page-next\";\n KeyEnum[KeyEnum[\"page-last\"] = 17] = \"page-last\";\n KeyEnum[KeyEnum[\"entries-per-site\"] = 18] = \"entries-per-site\";\n KeyEnum[KeyEnum[\"page-current\"] = 19] = \"page-current\";\n KeyEnum[KeyEnum[\"page-selected\"] = 20] = \"page-selected\";\n KeyEnum[KeyEnum[\"page-per-site\"] = 21] = \"page-per-site\";\n KeyEnum[KeyEnum[\"logo-description\"] = 22] = \"logo-description\";\n KeyEnum[KeyEnum[\"open-link-in-tab\"] = 23] = \"open-link-in-tab\";\n KeyEnum[KeyEnum[\"kolibri-logo\"] = 24] = \"kolibri-logo\";\n})(KeyEnum || (KeyEnum = {}));\n\nvar TagEnum;\n(function (TagEnum) {\n TagEnum[TagEnum[\"abbr\"] = 0] = \"abbr\";\n TagEnum[TagEnum[\"accordion\"] = 1] = \"accordion\";\n TagEnum[TagEnum[\"alert\"] = 2] = \"alert\";\n TagEnum[TagEnum[\"avatar\"] = 3] = \"avatar\";\n TagEnum[TagEnum[\"badge\"] = 4] = \"badge\";\n TagEnum[TagEnum[\"breadcrumb\"] = 5] = \"breadcrumb\";\n TagEnum[TagEnum[\"button\"] = 6] = \"button\";\n TagEnum[TagEnum[\"button-link\"] = 7] = \"button-link\";\n TagEnum[TagEnum[\"card\"] = 8] = \"card\";\n TagEnum[TagEnum[\"combobox\"] = 9] = \"combobox\";\n TagEnum[TagEnum[\"details\"] = 10] = \"details\";\n TagEnum[TagEnum[\"drawer\"] = 11] = \"drawer\";\n TagEnum[TagEnum[\"form\"] = 12] = \"form\";\n TagEnum[TagEnum[\"heading\"] = 13] = \"heading\";\n TagEnum[TagEnum[\"icon\"] = 14] = \"icon\";\n TagEnum[TagEnum[\"image\"] = 15] = \"image\";\n TagEnum[TagEnum[\"input-checkbox\"] = 16] = \"input-checkbox\";\n TagEnum[TagEnum[\"input-color\"] = 17] = \"input-color\";\n TagEnum[TagEnum[\"input-date\"] = 18] = \"input-date\";\n TagEnum[TagEnum[\"input-email\"] = 19] = \"input-email\";\n TagEnum[TagEnum[\"input-file\"] = 20] = \"input-file\";\n TagEnum[TagEnum[\"input-number\"] = 21] = \"input-number\";\n TagEnum[TagEnum[\"input-password\"] = 22] = \"input-password\";\n TagEnum[TagEnum[\"input-radio\"] = 23] = \"input-radio\";\n TagEnum[TagEnum[\"input-range\"] = 24] = \"input-range\";\n TagEnum[TagEnum[\"input-text\"] = 25] = \"input-text\";\n TagEnum[TagEnum[\"kolibri\"] = 26] = \"kolibri\";\n TagEnum[TagEnum[\"link\"] = 27] = \"link\";\n TagEnum[TagEnum[\"link-button\"] = 28] = \"link-button\";\n TagEnum[TagEnum[\"logo\"] = 29] = \"logo\";\n TagEnum[TagEnum[\"modal\"] = 30] = \"modal\";\n TagEnum[TagEnum[\"nav\"] = 31] = \"nav\";\n TagEnum[TagEnum[\"pagination\"] = 32] = \"pagination\";\n TagEnum[TagEnum[\"popover-button\"] = 33] = \"popover-button\";\n TagEnum[TagEnum[\"progress\"] = 34] = \"progress\";\n TagEnum[TagEnum[\"quote\"] = 35] = \"quote\";\n TagEnum[TagEnum[\"select\"] = 36] = \"select\";\n TagEnum[TagEnum[\"single-select\"] = 37] = \"single-select\";\n TagEnum[TagEnum[\"skip-nav\"] = 38] = \"skip-nav\";\n TagEnum[TagEnum[\"spin\"] = 39] = \"spin\";\n TagEnum[TagEnum[\"split-button\"] = 40] = \"split-button\";\n TagEnum[TagEnum[\"symbol\"] = 41] = \"symbol\";\n TagEnum[TagEnum[\"table\"] = 42] = \"table\";\n TagEnum[TagEnum[\"table-stateful\"] = 43] = \"table-stateful\";\n TagEnum[TagEnum[\"table-stateless\"] = 44] = \"table-stateless\";\n TagEnum[TagEnum[\"tabs\"] = 45] = \"tabs\";\n TagEnum[TagEnum[\"textarea\"] = 46] = \"textarea\";\n TagEnum[TagEnum[\"toast-container\"] = 47] = \"toast-container\";\n TagEnum[TagEnum[\"toolbar\"] = 48] = \"toolbar\";\n TagEnum[TagEnum[\"tooltip\"] = 49] = \"tooltip\";\n TagEnum[TagEnum[\"tree\"] = 50] = \"tree\";\n TagEnum[TagEnum[\"tree-item\"] = 51] = \"tree-item\";\n})(TagEnum || (TagEnum = {}));\n\nconst getWindow = () => {\n if (typeof window !== 'undefined')\n return window;\n return {};\n};\nconst getDocument = () => {\n const win = getWindow();\n if (win && typeof win.document !== 'undefined')\n return win.document;\n return {};\n};\nconst MODES = ['development', 'production', 'test'];\nlet runtimeMode = 'production';\nconst setRuntimeMode = (mode) => {\n try {\n if (MODES.includes(mode)) {\n runtimeMode = mode;\n }\n else {\n throw new Error(`Invalid NODE_ENV value: ${mode}. Expected one of ${MODES.join(', ')}.`);\n }\n }\n catch (e) {\n runtimeMode = 'production';\n }\n};\nconst getInitialMode = () => {\n try {\n const nodeEnv = typeof process !== 'undefined' && process.env ? process.env['NODE_ENV'] : undefined;\n if (nodeEnv && MODES.includes(nodeEnv)) {\n return nodeEnv;\n }\n }\n catch (e) {\n }\n return 'production';\n};\nsetRuntimeMode(getInitialMode());\nlet EXPERIMENTAL_MODE = false;\nlet COLOR_CONTRAST_ANALYSIS = false;\nconst isDevMode = () => runtimeMode === 'development';\nconst isTestMode = () => runtimeMode === 'test';\nconst getExperimentalMode = () => EXPERIMENTAL_MODE === true;\nconst setExperimentalMode = (mode) => {\n EXPERIMENTAL_MODE = mode === true;\n};\nconst getColorContrastAnalysis = () => COLOR_CONTRAST_ANALYSIS === true;\nconst setColorContrastAnalysis = (mode) => {\n COLOR_CONTRAST_ANALYSIS = mode === true;\n};\nconst LOG_STYLE = 'color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000';\nconst mapToArray = (msg) => {\n return Array.isArray(msg) ? msg : [msg];\n};\nconst getLogLabel = (label) => {\n return `%c${label}`;\n};\nconst handleClassifier = (label, classifier) => {\n if (typeof classifier === 'string' && classifier.length > 0) {\n return `${getLogLabel(label)} | ${classifier}`;\n }\n else {\n return getLogLabel(label);\n }\n};\nconst getShield = (label, options) => {\n return [handleClassifier(label, options === null || options === void 0 ? void 0 : options.classifier), `${LOG_STYLE};${(options === null || options === void 0 ? void 0 : options.overwriteStyle) || ''}`];\n};\nconst isDevModeOrForceLog = (forceLog) => isDevMode() || forceLog === true;\nclass Logger {\n constructor(label) {\n this.label = label;\n }\n debug(msg, options) {\n if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {\n console.debug(...getShield(this.label, options), ...mapToArray(msg));\n }\n }\n info(msg, options) {\n if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {\n console.info(...getShield(this.label, options), ...mapToArray(msg));\n }\n }\n trace(msg, options) {\n if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {\n console.trace(...getShield(this.label, options), ...mapToArray(msg));\n }\n }\n warn(msg, options) {\n if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {\n console.warn(...getShield(this.label, options), ...mapToArray(msg));\n }\n }\n error(msg, options) {\n console.error(...getShield(this.label, options), ...mapToArray(msg));\n }\n throw(msg, options) {\n if (isDevModeOrForceLog(options === null || options === void 0 ? void 0 : options.forceLog)) {\n throw new Error(...getShield(this.label, options), ...mapToArray(msg));\n }\n }\n}\nconst Log = new Logger('KoliBri');\n\nconst a11yCache = new Set();\nconst a11yHint = (msg, options) => {\n if (a11yCache.has(msg) === false || false) {\n a11yCache.add(msg);\n Log.debug([msg].concat([]), {\n classifier: `✋ a11y`,\n forceLog: false,\n overwriteStyle: '; background-color: #09f',\n });\n }\n};\nconst deprecatedCache = new Set();\nconst deprecatedHint = (msg, options) => {\n if (deprecatedCache.has(msg) === false || false) {\n deprecatedCache.add(msg);\n Log.warn([msg].concat([]), {\n classifier: `🔥 deprecated`,\n forceLog: false,\n overwriteStyle: '; background-color: #f00',\n });\n }\n};\nconst devCache = new Set();\nconst devHint = (msg, options) => {\n if (devCache.has(msg) === false || !!(options === null || options === void 0 ? void 0 : options.force)) {\n devCache.add(msg);\n Log.debug([msg].concat((options === null || options === void 0 ? void 0 : options.details) || []), {\n classifier: `💻 dev`,\n forceLog: !!(options === null || options === void 0 ? void 0 : options.force),\n overwriteStyle: '; background-color: #f09',\n });\n }\n};\nconst devWarning = (msg, options) => {\n if (devCache.has(msg) === false || false) {\n devCache.add(msg);\n Log.warn([msg].concat([]), {\n classifier: `⚠️ dev`,\n forceLog: false,\n overwriteStyle: '; background-color: #f09',\n });\n }\n};\nconst featureCache = new Set();\nconst featureHint = (msg, done = false, options) => {\n if (featureCache.has(msg) === false || false) {\n featureCache.add(msg);\n msg += done === true ? ' ✅' : '';\n Log.debug([msg].concat([]), {\n classifier: `🌟 feature`,\n forceLog: false,\n overwriteStyle: '; background-color: #309',\n });\n }\n};\ndevHint(`We appreciate any feedback, comments, screenshots, or demo links of an application based on KoliBri (kolibri@itzbund.de). Thank you!`);\nconst uiUxCache = new Set();\nconst uiUxHint = (msg, options) => {\n if (uiUxCache.has(msg) === false || false) {\n uiUxCache.add(msg);\n Log.debug([msg].concat([]), {\n classifier: `📑 ui/ux`,\n forceLog: false,\n overwriteStyle: '; background-color: #060;',\n });\n }\n};\nconst a11yHintDisabled = () => {\n a11yHint(`\"Disabled\" limits accessibility and visibility. From an accessibility perspective, we recommend using the readonly attribute instead of disabled.\\n- https://uxdesign.cc/is-it-ok-to-grey-out-disabled-buttons-8afa74a0fae`);\n};\nconst a11yHintLabelingLandmarks = (value) => {\n if (typeof value !== 'string' || value === '') {\n a11yHint(`Some structural elements, such as the nav tag, can be used multiple times on a webpage. To distinguish between similarly named structural elements, it is necessary to set an ARIA label.\\n- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Navigation_Role#accessibility_concerns`);\n }\n};\nconst uiUxHintMillerscheZahl = (className, length = 8) => {\n if (length > 7) {\n uiUxHint(`[${className}] Within navigation structures, it is recommended to use no more than 7 menu items.\n\nLink:\n- https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two`);\n }\n};\n\nvar n=.2126,r=.7152,t=.0722,e=1/12.92;function u(n){return Math.pow((n+.055)/1.055,2.4)}function a(a){var i=a[0]/255,c=a[1]/255,o=a[2]/255,s=i<=.03928?i*e:u(i),f=c<=.03928?c*e:u(c),l=o<=.03928?o*e:u(o);return s*n+f*r+l*t}function i(n){var r=255;8===(n=n.replace(/^#/,\"\")).length&&(r=parseInt(n.slice(6,8),16),n=n.substring(0,6)),4===n.length&&(r=parseInt(n.slice(3,4).repeat(2),16),n=n.substring(0,3)),3===n.length&&(n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]);var t=parseInt(n,16);return [t>>16,t>>8&255,255&t,r]}function c(n,r){return (Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function o(n,r){return c(a(n),a(r))}function s(n,r){return o(i(n),i(r))}function f(n){return n>=7?\"AAA\":n>=4.5?\"AA\":n>=3?\"AA Large\":\"Fail\"}\n\nvar colorName;\nvar hasRequiredColorName;\n\nfunction requireColorName () {\n\tif (hasRequiredColorName) return colorName;\n\thasRequiredColorName = 1;\n\r\n\tcolorName = {\r\n\t\t\"aliceblue\": [240, 248, 255],\r\n\t\t\"antiquewhite\": [250, 235, 215],\r\n\t\t\"aqua\": [0, 255, 255],\r\n\t\t\"aquamarine\": [127, 255, 212],\r\n\t\t\"azure\": [240, 255, 255],\r\n\t\t\"beige\": [245, 245, 220],\r\n\t\t\"bisque\": [255, 228, 196],\r\n\t\t\"black\": [0, 0, 0],\r\n\t\t\"blanchedalmond\": [255, 235, 205],\r\n\t\t\"blue\": [0, 0, 255],\r\n\t\t\"blueviolet\": [138, 43, 226],\r\n\t\t\"brown\": [165, 42, 42],\r\n\t\t\"burlywood\": [222, 184, 135],\r\n\t\t\"cadetblue\": [95, 158, 160],\r\n\t\t\"chartreuse\": [127, 255, 0],\r\n\t\t\"chocolate\": [210, 105, 30],\r\n\t\t\"coral\": [255, 127, 80],\r\n\t\t\"cornflowerblue\": [100, 149, 237],\r\n\t\t\"cornsilk\": [255, 248, 220],\r\n\t\t\"crimson\": [220, 20, 60],\r\n\t\t\"cyan\": [0, 255, 255],\r\n\t\t\"darkblue\": [0, 0, 139],\r\n\t\t\"darkcyan\": [0, 139, 139],\r\n\t\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\t\"darkgray\": [169, 169, 169],\r\n\t\t\"darkgreen\": [0, 100, 0],\r\n\t\t\"darkgrey\": [169, 169, 169],\r\n\t\t\"darkkhaki\": [189, 183, 107],\r\n\t\t\"darkmagenta\": [139, 0, 139],\r\n\t\t\"darkolivegreen\": [85, 107, 47],\r\n\t\t\"darkorange\": [255, 140, 0],\r\n\t\t\"darkorchid\": [153, 50, 204],\r\n\t\t\"darkred\": [139, 0, 0],\r\n\t\t\"darksalmon\": [233, 150, 122],\r\n\t\t\"darkseagreen\": [143, 188, 143],\r\n\t\t\"darkslateblue\": [72, 61, 139],\r\n\t\t\"darkslategray\": [47, 79, 79],\r\n\t\t\"darkslategrey\": [47, 79, 79],\r\n\t\t\"darkturquoise\": [0, 206, 209],\r\n\t\t\"darkviolet\": [148, 0, 211],\r\n\t\t\"deeppink\": [255, 20, 147],\r\n\t\t\"deepskyblue\": [0, 191, 255],\r\n\t\t\"dimgray\": [105, 105, 105],\r\n\t\t\"dimgrey\": [105, 105, 105],\r\n\t\t\"dodgerblue\": [30, 144, 255],\r\n\t\t\"firebrick\": [178, 34, 34],\r\n\t\t\"floralwhite\": [255, 250, 240],\r\n\t\t\"forestgreen\": [34, 139, 34],\r\n\t\t\"fuchsia\": [255, 0, 255],\r\n\t\t\"gainsboro\": [220, 220, 220],\r\n\t\t\"ghostwhite\": [248, 248, 255],\r\n\t\t\"gold\": [255, 215, 0],\r\n\t\t\"goldenrod\": [218, 165, 32],\r\n\t\t\"gray\": [128, 128, 128],\r\n\t\t\"green\": [0, 128, 0],\r\n\t\t\"greenyellow\": [173, 255, 47],\r\n\t\t\"grey\": [128, 128, 128],\r\n\t\t\"honeydew\": [240, 255, 240],\r\n\t\t\"hotpink\": [255, 105, 180],\r\n\t\t\"indianred\": [205, 92, 92],\r\n\t\t\"indigo\": [75, 0, 130],\r\n\t\t\"ivory\": [255, 255, 240],\r\n\t\t\"khaki\": [240, 230, 140],\r\n\t\t\"lavender\": [230, 230, 250],\r\n\t\t\"lavenderblush\": [255, 240, 245],\r\n\t\t\"lawngreen\": [124, 252, 0],\r\n\t\t\"lemonchiffon\": [255, 250, 205],\r\n\t\t\"lightblue\": [173, 216, 230],\r\n\t\t\"lightcoral\": [240, 128, 128],\r\n\t\t\"lightcyan\": [224, 255, 255],\r\n\t\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\t\"lightgray\": [211, 211, 211],\r\n\t\t\"lightgreen\": [144, 238, 144],\r\n\t\t\"lightgrey\": [211, 211, 211],\r\n\t\t\"lightpink\": [255, 182, 193],\r\n\t\t\"lightsalmon\": [255, 160, 122],\r\n\t\t\"lightseagreen\": [32, 178, 170],\r\n\t\t\"lightskyblue\": [135, 206, 250],\r\n\t\t\"lightslategray\": [119, 136, 153],\r\n\t\t\"lightslategrey\": [119, 136, 153],\r\n\t\t\"lightsteelblue\": [176, 196, 222],\r\n\t\t\"lightyellow\": [255, 255, 224],\r\n\t\t\"lime\": [0, 255, 0],\r\n\t\t\"limegreen\": [50, 205, 50],\r\n\t\t\"linen\": [250, 240, 230],\r\n\t\t\"magenta\": [255, 0, 255],\r\n\t\t\"maroon\": [128, 0, 0],\r\n\t\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\t\"mediumblue\": [0, 0, 205],\r\n\t\t\"mediumorchid\": [186, 85, 211],\r\n\t\t\"mediumpurple\": [147, 112, 219],\r\n\t\t\"mediumseagreen\": [60, 179, 113],\r\n\t\t\"mediumslateblue\": [123, 104, 238],\r\n\t\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\t\"mediumturquoise\": [72, 209, 204],\r\n\t\t\"mediumvioletred\": [199, 21, 133],\r\n\t\t\"midnightblue\": [25, 25, 112],\r\n\t\t\"mintcream\": [245, 255, 250],\r\n\t\t\"mistyrose\": [255, 228, 225],\r\n\t\t\"moccasin\": [255, 228, 181],\r\n\t\t\"navajowhite\": [255, 222, 173],\r\n\t\t\"navy\": [0, 0, 128],\r\n\t\t\"oldlace\": [253, 245, 230],\r\n\t\t\"olive\": [128, 128, 0],\r\n\t\t\"olivedrab\": [107, 142, 35],\r\n\t\t\"orange\": [255, 165, 0],\r\n\t\t\"orangered\": [255, 69, 0],\r\n\t\t\"orchid\": [218, 112, 214],\r\n\t\t\"palegoldenrod\": [238, 232, 170],\r\n\t\t\"palegreen\": [152, 251, 152],\r\n\t\t\"paleturquoise\": [175, 238, 238],\r\n\t\t\"palevioletred\": [219, 112, 147],\r\n\t\t\"papayawhip\": [255, 239, 213],\r\n\t\t\"peachpuff\": [255, 218, 185],\r\n\t\t\"peru\": [205, 133, 63],\r\n\t\t\"pink\": [255, 192, 203],\r\n\t\t\"plum\": [221, 160, 221],\r\n\t\t\"powderblue\": [176, 224, 230],\r\n\t\t\"purple\": [128, 0, 128],\r\n\t\t\"rebeccapurple\": [102, 51, 153],\r\n\t\t\"red\": [255, 0, 0],\r\n\t\t\"rosybrown\": [188, 143, 143],\r\n\t\t\"royalblue\": [65, 105, 225],\r\n\t\t\"saddlebrown\": [139, 69, 19],\r\n\t\t\"salmon\": [250, 128, 114],\r\n\t\t\"sandybrown\": [244, 164, 96],\r\n\t\t\"seagreen\": [46, 139, 87],\r\n\t\t\"seashell\": [255, 245, 238],\r\n\t\t\"sienna\": [160, 82, 45],\r\n\t\t\"silver\": [192, 192, 192],\r\n\t\t\"skyblue\": [135, 206, 235],\r\n\t\t\"slateblue\": [106, 90, 205],\r\n\t\t\"slategray\": [112, 128, 144],\r\n\t\t\"slategrey\": [112, 128, 144],\r\n\t\t\"snow\": [255, 250, 250],\r\n\t\t\"springgreen\": [0, 255, 127],\r\n\t\t\"steelblue\": [70, 130, 180],\r\n\t\t\"tan\": [210, 180, 140],\r\n\t\t\"teal\": [0, 128, 128],\r\n\t\t\"thistle\": [216, 191, 216],\r\n\t\t\"tomato\": [255, 99, 71],\r\n\t\t\"turquoise\": [64, 224, 208],\r\n\t\t\"violet\": [238, 130, 238],\r\n\t\t\"wheat\": [245, 222, 179],\r\n\t\t\"white\": [255, 255, 255],\r\n\t\t\"whitesmoke\": [245, 245, 245],\r\n\t\t\"yellow\": [255, 255, 0],\r\n\t\t\"yellowgreen\": [154, 205, 50]\r\n\t};\n\treturn colorName;\n}\n\n/**\n * @module color-parse\n */\n\nvar colorParse;\nvar hasRequiredColorParse;\n\nfunction requireColorParse () {\n\tif (hasRequiredColorParse) return colorParse;\n\thasRequiredColorParse = 1;\n\n\tvar names = requireColorName();\n\n\tcolorParse = parse;\n\n\t/**\n\t * Base hues\n\t * http://dev.w3.org/csswg/css-color/#typedef-named-hue\n\t */\n\t//FIXME: use external hue detector\n\tvar baseHues = {\n\t\tred: 0,\n\t\torange: 60,\n\t\tyellow: 120,\n\t\tgreen: 180,\n\t\tblue: 240,\n\t\tpurple: 300\n\t};\n\n\t/**\n\t * Parse color from the string passed\n\t *\n\t * @return {Object} A space indicator `space`, an array `values` and `alpha`\n\t */\n\tfunction parse(cstr) {\n\t\tvar m, parts = [], alpha = 1, space;\n\n\t\tif (typeof cstr === 'string') {\n\t\t\tcstr = cstr.toLowerCase();\n\n\t\t\t//keyword\n\t\t\tif (names[cstr]) {\n\t\t\t\tparts = names[cstr].slice();\n\t\t\t\tspace = 'rgb';\n\t\t\t}\n\n\t\t\t//reserved words\n\t\t\telse if (cstr === 'transparent') {\n\t\t\t\talpha = 0;\n\t\t\t\tspace = 'rgb';\n\t\t\t\tparts = [0, 0, 0];\n\t\t\t}\n\n\t\t\t//hex\n\t\t\telse if (/^#[A-Fa-f0-9]+$/.test(cstr)) {\n\t\t\t\tvar base = cstr.slice(1);\n\t\t\t\tvar size = base.length;\n\t\t\t\tvar isShort = size <= 4;\n\t\t\t\talpha = 1;\n\n\t\t\t\tif (isShort) {\n\t\t\t\t\tparts = [\n\t\t\t\t\t\tparseInt(base[0] + base[0], 16),\n\t\t\t\t\t\tparseInt(base[1] + base[1], 16),\n\t\t\t\t\t\tparseInt(base[2] + base[2], 16)\n\t\t\t\t\t];\n\t\t\t\t\tif (size === 4) {\n\t\t\t\t\t\talpha = parseInt(base[3] + base[3], 16) / 255;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tparts = [\n\t\t\t\t\t\tparseInt(base[0] + base[1], 16),\n\t\t\t\t\t\tparseInt(base[2] + base[3], 16),\n\t\t\t\t\t\tparseInt(base[4] + base[5], 16)\n\t\t\t\t\t];\n\t\t\t\t\tif (size === 8) {\n\t\t\t\t\t\talpha = parseInt(base[6] + base[7], 16) / 255;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!parts[0]) parts[0] = 0;\n\t\t\t\tif (!parts[1]) parts[1] = 0;\n\t\t\t\tif (!parts[2]) parts[2] = 0;\n\n\t\t\t\tspace = 'rgb';\n\t\t\t}\n\n\t\t\t//color space\n\t\t\telse if (m = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\s*\\(([^\\)]*)\\)/.exec(cstr)) {\n\t\t\t\tvar name = m[1];\n\t\t\t\tvar isRGB = name === 'rgb';\n\t\t\t\tvar base = name.replace(/a$/, '');\n\t\t\t\tspace = base;\n\t\t\t\tvar size = base === 'cmyk' ? 4 : base === 'gray' ? 1 : 3;\n\t\t\t\tparts = m[2].trim()\n\t\t\t\t\t.split(/\\s*[,\\/]\\s*|\\s+/)\n\t\t\t\t\t.map(function (x, i) {\n\t\t\t\t\t\t//<percentage>\n\t\t\t\t\t\tif (/%$/.test(x)) {\n\t\t\t\t\t\t\t//alpha\n\t\t\t\t\t\t\tif (i === size) return parseFloat(x) / 100\n\t\t\t\t\t\t\t//rgb\n\t\t\t\t\t\t\tif (base === 'rgb') return parseFloat(x) * 255 / 100\n\t\t\t\t\t\t\treturn parseFloat(x)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//hue\n\t\t\t\t\t\telse if (base[i] === 'h') {\n\t\t\t\t\t\t\t//<deg>\n\t\t\t\t\t\t\tif (/deg$/.test(x)) {\n\t\t\t\t\t\t\t\treturn parseFloat(x)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//<base-hue>\n\t\t\t\t\t\t\telse if (baseHues[x] !== undefined) {\n\t\t\t\t\t\t\t\treturn baseHues[x]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn parseFloat(x)\n\t\t\t\t\t});\n\n\t\t\t\tif (name === base) parts.push(1);\n\t\t\t\talpha = (isRGB) ? 1 : (parts[size] === undefined) ? 1 : parts[size];\n\t\t\t\tparts = parts.slice(0, size);\n\t\t\t}\n\n\t\t\t//named channels case\n\t\t\telse if (cstr.length > 10 && /[0-9](?:\\s|\\/)/.test(cstr)) {\n\t\t\t\tparts = cstr.match(/([0-9]+)/g).map(function (value) {\n\t\t\t\t\treturn parseFloat(value)\n\t\t\t\t});\n\n\t\t\t\tspace = cstr.match(/([a-z])/ig).join('').toLowerCase();\n\t\t\t}\n\t\t}\n\n\t\t//numeric case\n\t\telse if (!isNaN(cstr)) {\n\t\t\tspace = 'rgb';\n\t\t\tparts = [cstr >>> 16, (cstr & 0x00ff00) >>> 8, cstr & 0x0000ff];\n\t\t}\n\n\t\t//array-like\n\t\telse if (Array.isArray(cstr) || cstr.length) {\n\t\t\tparts = [cstr[0], cstr[1], cstr[2]];\n\t\t\tspace = 'rgb';\n\t\t\talpha = cstr.length === 4 ? cstr[3] : 1;\n\t\t}\n\n\t\t//object case - detects css cases of rgb and hsl\n\t\telse if (cstr instanceof Object) {\n\t\t\tif (cstr.r != null || cstr.red != null || cstr.R != null) {\n\t\t\t\tspace = 'rgb';\n\t\t\t\tparts = [\n\t\t\t\t\tcstr.r || cstr.red || cstr.R || 0,\n\t\t\t\t\tcstr.g || cstr.green || cstr.G || 0,\n\t\t\t\t\tcstr.b || cstr.blue || cstr.B || 0\n\t\t\t\t];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tspace = 'hsl';\n\t\t\t\tparts = [\n\t\t\t\t\tcstr.h || cstr.hue || cstr.H || 0,\n\t\t\t\t\tcstr.s || cstr.saturation || cstr.S || 0,\n\t\t\t\t\tcstr.l || cstr.lightness || cstr.L || cstr.b || cstr.brightness\n\t\t\t\t];\n\t\t\t}\n\n\t\t\talpha = cstr.a || cstr.alpha || cstr.opacity || 1;\n\n\t\t\tif (cstr.opacity != null) alpha /= 100;\n\t\t}\n\n\t\treturn {\n\t\t\tspace: space,\n\t\t\tvalues: parts,\n\t\t\talpha: alpha\n\t\t}\n\t}\n\treturn colorParse;\n}\n\nvar colorParseExports = requireColorParse();\nvar parse = /*@__PURE__*/getDefaultExportFromCjs(colorParseExports);\n\n/**\n * RGB space.\n *\n * @module color-space/rgb\n */\nconst rgb = {\n\tmin: [0, 0, 0],\n\tmax: [255, 255, 255]};\n\n/**\n * @module color-space/hsl\n */\n\nvar hsl = {\n\tname: 'hsl',\n\tmin: [0, 0, 0],\n\tmax: [360, 100, 100],\n\tchannel: ['hue', 'saturation', 'lightness'],\n\talias: ['HSL'],\n\n\trgb: function (hsl) {\n\t\tvar h = hsl[0] / 360, s = hsl[1] / 100, l = hsl[2] / 100, t1, t2, t3, rgb, val, i = 0;\n\n\t\tif (s === 0) return val = l * 255, [val, val, val];\n\n\t\tt2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\tt1 = 2 * l - t2;\n\n\t\trgb = [0, 0, 0];\n\t\tfor (; i < 3;) {\n\t\t\tt3 = h + 1 / 3 * - (i - 1);\n\t\t\tt3 < 0 ? t3++ : t3 > 1 && t3--;\n\t\t\tval = 6 * t3 < 1 ? t1 + (t2 - t1) * 6 * t3 :\n\t\t\t\t2 * t3 < 1 ? t2 :\n\t\t\t\t\t3 * t3 < 2 ? t1 + (t2 - t1) * (2 / 3 - t3) * 6 :\n\t\t\t\t\t\tt1;\n\t\t\trgb[i++] = val * 255;\n\t\t}\n\n\t\treturn rgb;\n\t}\n};\n\n\n//extend rgb\nrgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255,\n\t\tg = rgb[1] / 255,\n\t\tb = rgb[2] / 255,\n\t\tmin = Math.min(r, g, b),\n\t\tmax = Math.max(r, g, b),\n\t\tdelta = max - min,\n\t\th, s, l;\n\n\tif (max === min) {\n\t\th = 0;\n\t}\n\telse if (r === max) {\n\t\th = (g - b) / delta;\n\t}\n\telse if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t}\n\telse if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\t//FIXME h is possibly undefined\n\t//@ts-ignore\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t}\n\telse if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t}\n\telse {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nvar rgbaConvert = {exports: {}};\n\nvar hasRequiredRgbaConvert;\n\nfunction requireRgbaConvert () {\n\tif (hasRequiredRgbaConvert) return rgbaConvert.exports;\n\thasRequiredRgbaConvert = 1;\n\trgbaConvert.exports = arr;\n\trgbaConvert.exports.arr = arr;\n\trgbaConvert.exports.obj = obj;\n\trgbaConvert.exports.css = css;\n\trgbaConvert.exports.hex = hex;\n\trgbaConvert.exports.num = num;\n\n\tfunction arr(data) {\n\t var a = parse(data);\n\t if (a.length == 3) {\n\t return a.concat(255)\n\t } else {\n\t a[3] = Math.round(a[3]);\n\t return a\n\t }\n\t}\n\n\tfunction obj(data) {\n\t var a = parse(data);\n\t return {\n\t r: a[0],\n\t g: a[1],\n\t b: a[2],\n\t a: a.length == 3\n\t ? 255\n\t : Math.round(a[3])\n\t }\n\t}\n\n\tfunction css(data) {\n\t var a = parse(data);\n\t if (a.length == 3) a.push(255);\n\n\t return a[3] == 255\n\t ? 'rgb(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')'\n\t : a[3] == 0\n\t ? 'rgba(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', 0)'\n\t : 'rgba(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + String(a[3] / 255).substr(1) + ')'\n\t}\n\n\tfunction hex(data) {\n\t var a = parse(data);\n\t if (a.length == 3) a.push(255);\n\t var opaque = a[3] == 255;\n\t var r = num2hex(a[0]);\n\t var g = num2hex(a[1]);\n\t var b = num2hex(a[2]);\n\t var a = num2hex(Math.round(a[3]));\n\t var is = isshort(r, g, b, a);\n\t if (opaque) {\n\t return is\n\t ? '#' + r.charAt(0) + g.charAt(0) + b.charAt(0)\n\t : '#' + r + g + b\n\t }\n\t return is\n\t ? '#' + r.charAt(0) + g.charAt(0) + b.charAt(0) + a.charAt(0)\n\t : '#' + r + g + b + a\n\t}\n\n\tfunction num(data) {\n\t var a = parse(data);\n\t if (a.length == 3) a.push(255);\n\t else a[3] = Math.round(a[3]);\n\t return ((a[3] << 24) >>> 0 | a[0] << 16 | a[1] << 8 | a[2]) >>> 0\n\t}\n\n\tfunction parse(data) {\n\t if (typeof data == 'string') {\n\t data = data.toLowerCase();\n\t return name(data)\n\t || hex3(data)\n\t || hex6(data)\n\t || rgb(data)\n\t || rgba(data)\n\t || [0, 0, 0, 255]\n\t }\n\t return object(data)\n\t || array(data)\n\t || number(data)\n\t || [0, 0, 0, 255]\n\t}\n\n\tfunction num2hex(num) {\n\t var s = num.toString(16);\n\t return s.length == 1\n\t ? '0' + s\n\t : s\n\t}\n\n\tfunction isshort