@evercam/ui 0.0.45-beta.6 → 0.0.45-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/types.ts","../src/components/EBadge.vue?vue&type=script&lang.ts","../src/components/EAvatar.vue?vue&type=script&lang.ts","../node_modules/tailwindcss/lib/util/negateValue.js","../node_modules/tailwindcss/lib/corePluginList.js","../node_modules/tailwindcss/lib/util/configurePlugins.js","../node_modules/picocolors/picocolors.browser.js","../node_modules/tailwindcss/lib/util/log.js","../node_modules/tailwindcss/lib/public/colors.js","../node_modules/tailwindcss/lib/util/defaults.js","../node_modules/tailwindcss/lib/util/toPath.js","../node_modules/tailwindcss/lib/featureFlags.js","../node_modules/tailwindcss/lib/util/normalizeConfig.js","../node_modules/tailwindcss/lib/util/isPlainObject.js","../node_modules/tailwindcss/lib/util/cloneDeep.js","../node_modules/tailwindcss/lib/util/escapeCommas.js","../node_modules/tailwindcss/lib/util/colorNames.js","../node_modules/tailwindcss/lib/util/color.js","../node_modules/tailwindcss/lib/util/withAlphaVariable.js","../node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","../node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","../node_modules/tailwindcss/lib/util/dataTypes.js","../node_modules/tailwindcss/lib/util/validateFormalSyntax.js","../node_modules/tailwindcss/lib/util/pluginUtils.js","../node_modules/tailwindcss/lib/util/toColorValue.js","../node_modules/tailwindcss/lib/util/resolveConfig.js","../node_modules/tailwindcss/stubs/config.full.js","../node_modules/tailwindcss/lib/util/getAllConfigs.js","../node_modules/tailwindcss/lib/public/resolve-config.js","../node_modules/tailwindcss/resolveConfig.js","../node_modules/tailwindcss/colors.js","../config.ts","../src/constants.ts","../src/components/EIcon.vue?vue&type=script&lang.ts","../src/components/ESpinner.vue?vue&type=script&lang.ts","../src/components/ERow.vue?vue&type=script&lang.ts","../src/components/ECol.vue?vue&type=script&lang.ts","../../../node_modules/@evercam/ui/dist/index.mjs","../src/components/EVideoPlayer.vue?vue&type=script&lang.ts","../src/components/ETimeline.config.ts","../src/directives/resize-observer.ts","../src/directives/index.ts","../src/components/ETimeline.vue?vue&type=script&lang.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from \"@/constants\"\r\n\r\nexport enum Size {\r\n dot = \"dot\",\r\n xs = \"xs\",\r\n sm = \"sm\",\r\n md = \"base\",\r\n base = \"base\",\r\n lg = \"lg\",\r\n xl = \"xl\",\r\n \"2xl\" = \"2xl\",\r\n \"3xl\" = \"3xl\",\r\n \"4xl\" = \"4xl\",\r\n \"5xl\" = \"5xl\",\r\n \"6xl\" = \"6xl\",\r\n \"7xl\" = \"7xl\",\r\n \"8xl\" = \"8xl\",\r\n \"9xl\" = \"9xl\",\r\n}\r\n\r\nexport enum BaseColor {\r\n warning = \"warning\",\r\n error = \"error\",\r\n info = \"info\",\r\n success = \"success\",\r\n primary = \"primary\",\r\n brand = \"brand\",\r\n default = \"default\",\r\n}\r\n\r\nexport type TBadgeSize = (typeof BadgeSizes)[number]\r\n\r\nexport type TAvatarSize = (typeof AvatarSizes)[number]\r\n\r\nexport type TIconSize = (typeof IconSizes)[number]\r\n\r\nexport type TBadgeColor = (typeof BadgeColors)[number]\r\n\r\nexport type TailwindColorClass = string\r\n\r\nexport type FlexJustifyContent =\r\n | \"around\"\r\n | \"between\"\r\n | \"center\"\r\n | \"end\"\r\n | \"evenly\"\r\n | \"normal\"\r\n | \"start\"\r\n | \"stretch\"\r\n\r\nexport type FlexAlignItems = \"start\" | \"center\" | \"end\" | \"baseline\" | \"stretch\"\r\n\r\nexport type FlexAlignContent =\r\n | \"around\"\r\n | \"baseline\"\r\n | \"between\"\r\n | \"center\"\r\n | \"end\"\r\n | \"evenly\"\r\n | \"normal\"\r\n | \"start\"\r\n | \"stretch\"\r\n\r\nexport type FlexAlignSelf =\r\n | \"auto\"\r\n | \"baseline\"\r\n | \"center\"\r\n | \"end\"\r\n | \"start\"\r\n | \"stretch\"\r\n\r\nexport enum TimelineAxis {\r\n overview = \"overview\",\r\n detailed = \"detailed\",\r\n detailedBackground = \"detailedBackground\",\r\n}\r\n\r\nexport type TimelineTicksConfig = {\r\n precision: number\r\n interval: any\r\n format: string | ((d: Date) => string)\r\n}\r\n\r\nexport type TimelineAxesConfig = {\r\n [key in TimelineAxis]: TimelineTicksConfig[]\r\n}\r\n\r\nexport type Timestamp = Date | string | number\r\n\r\nexport default {}\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { BaseColor, Size, TBadgeColor, TBadgeSize } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n name: \"EBadge\",\r\n props: {\r\n text: {\r\n type: String,\r\n default: \"\",\r\n },\r\n color: {\r\n type: String as PropType<TBadgeColor>,\r\n default: BaseColor.default,\r\n },\r\n size: {\r\n type: String as PropType<TBadgeSize>,\r\n default: Size.base,\r\n },\r\n },\r\n data() {\r\n return {\r\n colors: {\r\n [BaseColor.error]: \"e-bg-rose-500 e-text-white\",\r\n [BaseColor.info]: \"e-bg-cyan-500 e-text-white\",\r\n [BaseColor.warning]: \"e-bg-amber-500 e-text-white\",\r\n [BaseColor.primary]: \"e-bg-sky-500 e-text-white\",\r\n [BaseColor.default]: \"e-bg-slate-300 e-text-white\",\r\n [BaseColor.success]: \"e-bg-lime-500 e-text-white\",\r\n },\r\n sizes: {\r\n [Size.dot]: \"e-w-2 e-h-2\",\r\n [Size.xs]: \"e-w-3 e-h-3\",\r\n [Size.sm]: \"e-w-4 e-h-4\",\r\n [Size.md]: \"e-w-5 e-h-5\",\r\n [Size.lg]:\r\n \"e-min-w-[2rem] e-max-w-[4rem] e-px-1 e-h-6 e-text-sm e-font-medium\",\r\n [Size.xl]:\r\n \"e-min-w-[3rem] e-max-w-[5rem] e-px-1 e-h-8 e-text-base e-font-medium\",\r\n },\r\n }\r\n },\r\n computed: {\r\n badgeClasses(): string[] {\r\n const colorClasses =\r\n this.colors[this.color] || this.colors[BaseColor.default]\r\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.md]\r\n\r\n return [\r\n \"e-flex e-items-center e-justify-center e-rounded-full\",\r\n colorClasses,\r\n sizeClasses,\r\n ]\r\n },\r\n showText(): boolean {\r\n return [Size.lg, Size.xl].includes(this.size)\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport Badge from \"@/components/EBadge.vue\"\r\nimport { BaseColor, Size, TAvatarSize, TBadgeColor, TBadgeSize } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n name: \"EAvatar\",\r\n components: {\r\n Badge,\r\n },\r\n props: {\r\n size: {\r\n type: String as PropType<TAvatarSize>,\r\n default: Size.md,\r\n },\r\n showBadge: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n badgeColor: {\r\n type: String as PropType<TBadgeColor>,\r\n default: BaseColor.error,\r\n },\r\n badgeText: {\r\n type: String,\r\n default: \"\",\r\n },\r\n badgeSize: {\r\n type: String as PropType<TBadgeSize>,\r\n default: Size.md,\r\n },\r\n image: {\r\n type: String,\r\n default: \"\",\r\n },\r\n },\r\n data() {\r\n return {\r\n sizes: {\r\n [Size.xs]: \"e-w-8 e-h-8 e-text-xs\",\r\n [Size.sm]: \"e-w-10 e-h-10 e-text-sm\",\r\n [Size.md]: \"e-w-14 e-h-14 e-text-base\",\r\n [Size.lg]: \"e-w-20 e-h-20 e-text-2xl\",\r\n [Size.xl]: \"e-w-28 e-h-28 e-text-3xl\",\r\n [Size[\"2xl\"]]: \"e-w-36 e-h-36 e-text-5xl\",\r\n },\r\n }\r\n },\r\n computed: {\r\n avatarClasses(): string[] {\r\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.xs]\r\n\r\n return [\r\n \"e-flex e-items-center e-justify-center e-rounded-full e-bg-purple-500 e-text-white e-font-medium\",\r\n sizeClasses,\r\n ]\r\n },\r\n },\r\n})\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return negateValue;\n }\n});\nfunction negateValue(value) {\n value = `${value}`;\n if (value === \"0\") {\n return \"0\";\n }\n // Flip sign of numbers\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value)) {\n return value.replace(/^[+-]?/, (sign)=>sign === \"-\" ? \"\" : \"-\");\n }\n // What functions we support negating numeric values for\n // var() isn't inherently a numeric function but we support it anyway\n // The trigonometric functions are omitted because you'll need to use calc(…) with them _anyway_\n // to produce generally useful results and that will be covered already\n let numericFunctions = [\n \"var\",\n \"calc\",\n \"min\",\n \"max\",\n \"clamp\"\n ];\n for (const fn of numericFunctions){\n if (value.includes(`${fn}(`)) {\n return `calc(${value} * -1)`;\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"lineClamp\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"captionSide\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"listStyleImage\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"hyphens\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction _default(pluginConfig, plugins) {\n if (pluginConfig === undefined) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(plugins.filter((pluginName)=>{\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(Object.keys(pluginConfig).filter((pluginName)=>{\n return pluginConfig[pluginName] !== false;\n })))\n ];\n return pluginNames;\n}\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dim: function() {\n return dim;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (typeof process !== \"undefined\" && process.env.JEST_WORKER_ID) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message));\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nconst _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"../util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: function() {\n return defaults;\n }\n});\nfunction defaults(target, ...sources) {\n for (let source of sources){\n for(let k in source){\n var _target_hasOwnProperty;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty = target.hasOwnProperty) === null || _target_hasOwnProperty === void 0 ? void 0 : _target_hasOwnProperty.call(target, k))) {\n target[k] = source[k];\n }\n }\n for (let k of Object.getOwnPropertySymbols(source)){\n var _target_hasOwnProperty1;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty1 = target.hasOwnProperty) === null || _target_hasOwnProperty1 === void 0 ? void 0 : _target_hasOwnProperty1.call(target, k))) {\n target[k] = source[k];\n }\n }\n }\n return target;\n}\n","/**\n * Parse a path string into an array of path segments.\n *\n * Square bracket notation `a[b]` may be used to \"escape\" dots that would otherwise be interpreted as path separators.\n *\n * Example:\n * a -> ['a']\n * a.b.c -> ['a', 'b', 'c']\n * a[b].c -> ['a', 'b', 'c']\n * a[b.c].e.f -> ['a', 'b.c', 'e', 'f']\n * a[b][c][d] -> ['a', 'b', 'c', 'd']\n *\n * @param {string|string[]} path\n **/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toPath\", {\n enumerable: true,\n get: function() {\n return toPath;\n }\n});\nfunction toPath(path) {\n if (Array.isArray(path)) return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n flagEnabled: function() {\n return flagEnabled;\n },\n issueFlagNotices: function() {\n return issueFlagNotices;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"./util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet defaults = {\n optimizeUniversalDefaults: false,\n generalizedModifiers: true,\n get disableColorOpacityUtilitiesByDefault () {\n return false;\n },\n get relativeContentPathsByDefault () {\n return false;\n }\n};\nlet featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\",\n \"disableColorOpacityUtilitiesByDefault\",\n \"relativeContentPathsByDefault\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"generalizedModifiers\"\n ]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n var _config_future;\n var _config_future_flag, _ref;\n return config.future === \"all\" || ((_ref = (_config_future_flag = config === null || config === void 0 ? void 0 : (_config_future = config.future) === null || _config_future === void 0 ? void 0 : _config_future[flag]) !== null && _config_future_flag !== void 0 ? _config_future_flag : defaults[flag]) !== null && _ref !== void 0 ? _ref : false);\n }\n if (featureFlags.experimental.includes(flag)) {\n var _config_experimental;\n var _config_experimental_flag, _ref1;\n return config.experimental === \"all\" || ((_ref1 = (_config_experimental_flag = config === null || config === void 0 ? void 0 : (_config_experimental = config.experimental) === null || _config_experimental === void 0 ? void 0 : _config_experimental[flag]) !== null && _config_experimental_flag !== void 0 ? _config_experimental_flag : defaults[flag]) !== null && _ref1 !== void 0 ? _ref1 : false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n var _config_experimental;\n return Object.keys((_config_experimental = config === null || config === void 0 ? void 0 : config.experimental) !== null && _config_experimental !== void 0 ? _config_experimental : {}).filter((flag)=>featureFlags.experimental.includes(flag) && config.experimental[flag]);\n}\nfunction issueFlagNotices(config) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s)=>_picocolors.default.yellow(s)).join(\", \");\n _log.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\"\n ]);\n }\n}\nconst _default = featureFlags;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeConfig\", {\n enumerable: true,\n get: function() {\n return normalizeConfig;\n }\n});\nconst _featureFlags = require(\"../featureFlags\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(require(\"./log\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction normalizeConfig(config) {\n // Quick structure validation\n /**\n * type FilePath = string\n * type RawFile = { raw: string, extension?: string }\n * type ExtractorFn = (content: string) => Array<string>\n * type TransformerFn = (content: string) => string\n *\n * type Content =\n * | Array<FilePath | RawFile>\n * | {\n * files: Array<FilePath | RawFile>,\n * extract?: ExtractorFn | { [extension: string]: ExtractorFn }\n * transform?: TransformerFn | { [extension: string]: TransformerFn }\n * }\n */ let valid = (()=>{\n // `config.purge` should not exist anymore\n if (config.purge) {\n return false;\n }\n // `config.content` should exist\n if (!config.content) {\n return false;\n }\n // `config.content` should be an object or an array\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n // When `config.content` is an array, it should consist of FilePaths or RawFiles\n if (Array.isArray(config.content)) {\n return config.content.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n });\n }\n // When `config.content` is an object\n if (typeof config.content === \"object\" && config.content !== null) {\n // Only `files`, `relative`, `extract`, and `transform` can exist in `config.content`\n if (Object.keys(config.content).some((key)=>![\n \"files\",\n \"relative\",\n \"extract\",\n \"transform\"\n ].includes(key))) {\n return false;\n }\n // `config.content.files` should exist of FilePaths or RawFiles\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n // `config.content.extract` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.extract === \"object\") {\n for (let value of Object.values(config.content.extract)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === undefined || typeof config.content.extract === \"function\")) {\n return false;\n }\n // `config.content.transform` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.transform === \"object\") {\n for (let value of Object.values(config.content.transform)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === undefined || typeof config.content.transform === \"function\")) {\n return false;\n }\n // `config.content.relative` is optional and can be a boolean\n if (typeof config.content.relative !== \"boolean\" && typeof config.content.relative !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n _log.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\"\n ]);\n }\n // Normalize the `safelist`\n config.safelist = (()=>{\n var _purge_options;\n let { content , purge , safelist } = config;\n if (Array.isArray(safelist)) return safelist;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : (_purge_options = purge.options) === null || _purge_options === void 0 ? void 0 : _purge_options.safelist)) return purge.options.safelist;\n return [];\n })();\n // Normalize the `blocklist`\n config.blocklist = (()=>{\n let { blocklist } = config;\n if (Array.isArray(blocklist)) {\n if (blocklist.every((item)=>typeof item === \"string\")) {\n return blocklist;\n }\n _log.default.warn(\"blocklist-invalid\", [\n \"The `blocklist` option must be an array of strings.\",\n \"https://tailwindcss.com/docs/content-configuration#discarding-classes\"\n ]);\n }\n return [];\n })();\n // Normalize prefix option\n if (typeof config.prefix === \"function\") {\n _log.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\"\n ]);\n config.prefix = \"\";\n } else {\n var _config_prefix;\n config.prefix = (_config_prefix = config.prefix) !== null && _config_prefix !== void 0 ? _config_prefix : \"\";\n }\n // Normalize the `content`\n config.content = {\n relative: (()=>{\n let { content } = config;\n if (content === null || content === void 0 ? void 0 : content.relative) {\n return content.relative;\n }\n return (0, _featureFlags.flagEnabled)(config, \"relativeContentPathsByDefault\");\n })(),\n files: (()=>{\n let { content , purge } = config;\n if (Array.isArray(purge)) return purge;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.content)) return purge.content;\n if (Array.isArray(content)) return content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.content)) return content.content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.files)) return content.files;\n return [];\n })(),\n extract: (()=>{\n let extract = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_extract, _config_content1, _config_content_extract, _config_purge2, _config_purge_options, _config_content2, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.extract) return config.purge.extract;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.extract) return config.content.extract;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_extract = _config_purge1.extract) === null || _config_purge_extract === void 0 ? void 0 : _config_purge_extract.DEFAULT) return config.purge.extract.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_extract = _config_content1.extract) === null || _config_content_extract === void 0 ? void 0 : _config_content_extract.DEFAULT) return config.content.extract.DEFAULT;\n if ((_config_purge2 = config.purge) === null || _config_purge2 === void 0 ? void 0 : (_config_purge_options = _config_purge2.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.extractors) return config.purge.options.extractors;\n if ((_config_content2 = config.content) === null || _config_content2 === void 0 ? void 0 : (_config_content_options = _config_content2.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.extractors) return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor = (()=>{\n var _config_purge, _config_purge_options, _config_content, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : (_config_purge_options = _config_purge.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : (_config_content_options = _config_content.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return undefined;\n })();\n if (defaultExtractor !== undefined) {\n extractors.DEFAULT = defaultExtractor;\n }\n // Functions\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){\n for (let extension of extensions){\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (()=>{\n let transform = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_transform, _config_content1, _config_content_transform;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.transform) return config.purge.transform;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.transform) return config.content.transform;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_transform = _config_purge1.transform) === null || _config_purge_transform === void 0 ? void 0 : _config_purge_transform.DEFAULT) return config.purge.transform.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_transform = _config_content1.transform) === null || _config_content_transform === void 0 ? void 0 : _config_content_transform.DEFAULT) return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n // Validate globs to prevent bogus globs.\n // E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`\n for (let file of config.content.files){\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n _log.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return isPlainObject;\n }\n});\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: function() {\n return cloneDeep;\n }\n});\nfunction cloneDeep(value) {\n if (Array.isArray(value)) {\n return value.map((child)=>cloneDeep(child));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(Object.entries(value).map(([k, v])=>[\n k,\n cloneDeep(v)\n ]));\n }\n return value;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return escapeCommas;\n }\n});\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = {\n aliceblue: [\n 240,\n 248,\n 255\n ],\n antiquewhite: [\n 250,\n 235,\n 215\n ],\n aqua: [\n 0,\n 255,\n 255\n ],\n aquamarine: [\n 127,\n 255,\n 212\n ],\n azure: [\n 240,\n 255,\n 255\n ],\n beige: [\n 245,\n 245,\n 220\n ],\n bisque: [\n 255,\n 228,\n 196\n ],\n black: [\n 0,\n 0,\n 0\n ],\n blanchedalmond: [\n 255,\n 235,\n 205\n ],\n blue: [\n 0,\n 0,\n 255\n ],\n blueviolet: [\n 138,\n 43,\n 226\n ],\n brown: [\n 165,\n 42,\n 42\n ],\n burlywood: [\n 222,\n 184,\n 135\n ],\n cadetblue: [\n 95,\n 158,\n 160\n ],\n chartreuse: [\n 127,\n 255,\n 0\n ],\n chocolate: [\n 210,\n 105,\n 30\n ],\n coral: [\n 255,\n 127,\n 80\n ],\n cornflowerblue: [\n 100,\n 149,\n 237\n ],\n cornsilk: [\n 255,\n 248,\n 220\n ],\n crimson: [\n 220,\n 20,\n 60\n ],\n cyan: [\n 0,\n 255,\n 255\n ],\n darkblue: [\n 0,\n 0,\n 139\n ],\n darkcyan: [\n 0,\n 139,\n 139\n ],\n darkgoldenrod: [\n 184,\n 134,\n 11\n ],\n darkgray: [\n 169,\n 169,\n 169\n ],\n darkgreen: [\n 0,\n 100,\n 0\n ],\n darkgrey: [\n 169,\n 169,\n 169\n ],\n darkkhaki: [\n 189,\n 183,\n 107\n ],\n darkmagenta: [\n 139,\n 0,\n 139\n ],\n darkolivegreen: [\n 85,\n 107,\n 47\n ],\n darkorange: [\n 255,\n 140,\n 0\n ],\n darkorchid: [\n 153,\n 50,\n 204\n ],\n darkred: [\n 139,\n 0,\n 0\n ],\n darksalmon: [\n 233,\n 150,\n 122\n ],\n darkseagreen: [\n 143,\n 188,\n 143\n ],\n darkslateblue: [\n 72,\n 61,\n 139\n ],\n darkslategray: [\n 47,\n 79,\n 79\n ],\n darkslategrey: [\n 47,\n 79,\n 79\n ],\n darkturquoise: [\n 0,\n 206,\n 209\n ],\n darkviolet: [\n 148,\n 0,\n 211\n ],\n deeppink: [\n 255,\n 20,\n 147\n ],\n deepskyblue: [\n 0,\n 191,\n 255\n ],\n dimgray: [\n 105,\n 105,\n 105\n ],\n dimgrey: [\n 105,\n 105,\n 105\n ],\n dodgerblue: [\n 30,\n 144,\n 255\n ],\n firebrick: [\n 178,\n 34,\n 34\n ],\n floralwhite: [\n 255,\n 250,\n 240\n ],\n forestgreen: [\n 34,\n 139,\n 34\n ],\n fuchsia: [\n 255,\n 0,\n 255\n ],\n gainsboro: [\n 220,\n 220,\n 220\n ],\n ghostwhite: [\n 248,\n 248,\n 255\n ],\n gold: [\n 255,\n 215,\n 0\n ],\n goldenrod: [\n 218,\n 165,\n 32\n ],\n gray: [\n 128,\n 128,\n 128\n ],\n green: [\n 0,\n 128,\n 0\n ],\n greenyellow: [\n 173,\n 255,\n 47\n ],\n grey: [\n 128,\n 128,\n 128\n ],\n honeydew: [\n 240,\n 255,\n 240\n ],\n hotpink: [\n 255,\n 105,\n 180\n ],\n indianred: [\n 205,\n 92,\n 92\n ],\n indigo: [\n 75,\n 0,\n 130\n ],\n ivory: [\n 255,\n 255,\n 240\n ],\n khaki: [\n 240,\n 230,\n 140\n ],\n lavender: [\n 230,\n 230,\n 250\n ],\n lavenderblush: [\n 255,\n 240,\n 245\n ],\n lawngreen: [\n 124,\n 252,\n 0\n ],\n lemonchiffon: [\n 255,\n 250,\n 205\n ],\n lightblue: [\n 173,\n 216,\n 230\n ],\n lightcoral: [\n 240,\n 128,\n 128\n ],\n lightcyan: [\n 224,\n 255,\n 255\n ],\n lightgoldenrodyellow: [\n 250,\n 250,\n 210\n ],\n lightgray: [\n 211,\n 211,\n 211\n ],\n lightgreen: [\n 144,\n 238,\n 144\n ],\n lightgrey: [\n 211,\n 211,\n 211\n ],\n lightpink: [\n 255,\n 182,\n 193\n ],\n lightsalmon: [\n 255,\n 160,\n 122\n ],\n lightseagreen: [\n 32,\n 178,\n 170\n ],\n lightskyblue: [\n 135,\n 206,\n 250\n ],\n lightslategray: [\n 119,\n 136,\n 153\n ],\n lightslategrey: [\n 119,\n 136,\n 153\n ],\n lightsteelblue: [\n 176,\n 196,\n 222\n ],\n lightyellow: [\n 255,\n 255,\n 224\n ],\n lime: [\n 0,\n 255,\n 0\n ],\n limegreen: [\n 50,\n 205,\n 50\n ],\n linen: [\n 250,\n 240,\n 230\n ],\n magenta: [\n 255,\n 0,\n 255\n ],\n maroon: [\n 128,\n 0,\n 0\n ],\n mediumaquamarine: [\n 102,\n 205,\n 170\n ],\n mediumblue: [\n 0,\n 0,\n 205\n ],\n mediumorchid: [\n 186,\n 85,\n 211\n ],\n mediumpurple: [\n 147,\n 112,\n 219\n ],\n mediumseagreen: [\n 60,\n 179,\n 113\n ],\n mediumslateblue: [\n 123,\n 104,\n 238\n ],\n mediumspringgreen: [\n 0,\n 250,\n 154\n ],\n mediumturquoise: [\n 72,\n 209,\n 204\n ],\n mediumvioletred: [\n 199,\n 21,\n 133\n ],\n midnightblue: [\n 25,\n 25,\n 112\n ],\n mintcream: [\n 245,\n 255,\n 250\n ],\n mistyrose: [\n 255,\n 228,\n 225\n ],\n moccasin: [\n 255,\n 228,\n 181\n ],\n navajowhite: [\n 255,\n 222,\n 173\n ],\n navy: [\n 0,\n 0,\n 128\n ],\n oldlace: [\n 253,\n 245,\n 230\n ],\n olive: [\n 128,\n 128,\n 0\n ],\n olivedrab: [\n 107,\n 142,\n 35\n ],\n orange: [\n 255,\n 165,\n 0\n ],\n orangered: [\n 255,\n 69,\n 0\n ],\n orchid: [\n 218,\n 112,\n 214\n ],\n palegoldenrod: [\n 238,\n 232,\n 170\n ],\n palegreen: [\n 152,\n 251,\n 152\n ],\n paleturquoise: [\n 175,\n 238,\n 238\n ],\n palevioletred: [\n 219,\n 112,\n 147\n ],\n papayawhip: [\n 255,\n 239,\n 213\n ],\n peachpuff: [\n 255,\n 218,\n 185\n ],\n peru: [\n 205,\n 133,\n 63\n ],\n pink: [\n 255,\n 192,\n 203\n ],\n plum: [\n 221,\n 160,\n 221\n ],\n powderblue: [\n 176,\n 224,\n 230\n ],\n purple: [\n 128,\n 0,\n 128\n ],\n rebeccapurple: [\n 102,\n 51,\n 153\n ],\n red: [\n 255,\n 0,\n 0\n ],\n rosybrown: [\n 188,\n 143,\n 143\n ],\n royalblue: [\n 65,\n 105,\n 225\n ],\n saddlebrown: [\n 139,\n 69,\n 19\n ],\n salmon: [\n 250,\n 128,\n 114\n ],\n sandybrown: [\n 244,\n 164,\n 96\n ],\n seagreen: [\n 46,\n 139,\n 87\n ],\n seashell: [\n 255,\n 245,\n 238\n ],\n sienna: [\n 160,\n 82,\n 45\n ],\n silver: [\n 192,\n 192,\n 192\n ],\n skyblue: [\n 135,\n 206,\n 235\n ],\n slateblue: [\n 106,\n 90,\n 205\n ],\n slategray: [\n 112,\n 128,\n 144\n ],\n slategrey: [\n 112,\n 128,\n 144\n ],\n snow: [\n 255,\n 250,\n 250\n ],\n springgreen: [\n 0,\n 255,\n 127\n ],\n steelblue: [\n 70,\n 130,\n 180\n ],\n tan: [\n 210,\n 180,\n 140\n ],\n teal: [\n 0,\n 128,\n 128\n ],\n thistle: [\n 216,\n 191,\n 216\n ],\n tomato: [\n 255,\n 99,\n 71\n ],\n turquoise: [\n 64,\n 224,\n 208\n ],\n violet: [\n 238,\n 130,\n 238\n ],\n wheat: [\n 245,\n 222,\n 179\n ],\n white: [\n 255,\n 255,\n 255\n ],\n whitesmoke: [\n 245,\n 245,\n 245\n ],\n yellow: [\n 255,\n 255,\n 0\n ],\n yellowgreen: [\n 154,\n 205,\n 50\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseColor: function() {\n return parseColor;\n },\n formatColor: function() {\n return formatColor;\n }\n});\nconst _colorNames = /*#__PURE__*/ _interop_require_default(require(\"./colorNames\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nlet SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nlet VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nlet SEP = /(?:\\s*,\\s*|\\s+)/;\nlet ALPHA_SEP = /\\s*[,/]\\s*/;\nlet CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)\\)/;\nlet RGB = new RegExp(`^(rgba?)\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nlet HSL = new RegExp(`^(hsla?)\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nfunction parseColor(value, { loose =false } = {}) {\n var _match_, _match__toString;\n if (typeof value !== \"string\") {\n return null;\n }\n value = value.trim();\n if (value === \"transparent\") {\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n }\n if (value in _colorNames.default) {\n return {\n mode: \"rgb\",\n color: _colorNames.default[value].map((v)=>v.toString())\n };\n }\n let hex = value.replace(SHORT_HEX, (_, r, g, b, a)=>[\n \"#\",\n r,\n r,\n g,\n g,\n b,\n b,\n a ? a + a : \"\"\n ].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [\n parseInt(hex[1], 16),\n parseInt(hex[2], 16),\n parseInt(hex[3], 16)\n ].map((v)=>v.toString()),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : undefined\n };\n }\n var _value_match;\n let match = (_value_match = value.match(RGB)) !== null && _value_match !== void 0 ? _value_match : value.match(HSL);\n if (match === null) {\n return null;\n }\n let color = [\n match[2],\n match[3],\n match[4]\n ].filter(Boolean).map((v)=>v.toString());\n // rgba(var(--my-color), 0.1)\n // hsla(var(--my-color), 0.1)\n if (color.length === 2 && color[0].startsWith(\"var(\")) {\n return {\n mode: match[1],\n color: [\n color[0]\n ],\n alpha: color[1]\n };\n }\n if (!loose && color.length !== 3) {\n return null;\n }\n if (color.length < 3 && !color.some((part)=>/^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color,\n alpha: (_match_ = match[5]) === null || _match_ === void 0 ? void 0 : (_match__toString = _match_.toString) === null || _match__toString === void 0 ? void 0 : _match__toString.call(_match_)\n };\n}\nfunction formatColor({ mode , color , alpha }) {\n let hasAlpha = alpha !== undefined;\n if (mode === \"rgba\" || mode === \"hsla\") {\n return `${mode}(${color.join(\", \")}${hasAlpha ? `, ${alpha}` : \"\"})`;\n }\n return `${mode}(${color.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withAlphaValue: function() {\n return withAlphaValue;\n },\n default: function() {\n return withAlphaVariable;\n }\n});\nconst _color = require(\"./color\");\nfunction withAlphaValue(color, alphaValue, defaultValue) {\n if (typeof color === \"function\") {\n return color({\n opacityValue: alphaValue\n });\n }\n let parsed = (0, _color.parseColor)(color, {\n loose: true\n });\n if (parsed === null) {\n return defaultValue;\n }\n return (0, _color.formatColor)({\n ...parsed,\n alpha: alphaValue\n });\n}\nfunction withAlphaVariable({ color , property , variable }) {\n let properties = [].concat(property);\n if (typeof color === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`\n })\n ];\n }))\n };\n }\n const parsed = (0, _color.parseColor)(color);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n if (parsed.alpha !== undefined) {\n // Has an alpha value, return color as-is\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n (0, _color.formatColor)({\n ...parsed,\n alpha: `var(${variable})`\n })\n ];\n }))\n };\n}\n","/**\n * This splits a string on a top-level character.\n *\n * Regex doesn't support recursion (at least not the JS-flavored version).\n * So we have to use a tiny state machine to keep track of paren placement.\n *\n * Expected behavior using commas:\n * var(--a, 0 0 1px rgb(0, 0, 0)), 0 0 1px rgb(0, 0, 0)\n * ─┬─ ┬ ┬ ┬\n * x x x ╰──────── Split because top-level\n * ╰──────────────┴──┴───────────── Ignored b/c inside >= 1 levels of parens\n *\n * @param {string} input\n * @param {string} separator\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"splitAtTopLevelOnly\", {\n enumerable: true,\n get: function() {\n return splitAtTopLevelOnly;\n }\n});\nfunction splitAtTopLevelOnly(input, separator) {\n let stack = [];\n let parts = [];\n let lastPos = 0;\n let isEscaped = false;\n for(let idx = 0; idx < input.length; idx++){\n let char = input[idx];\n if (stack.length === 0 && char === separator[0] && !isEscaped) {\n if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {\n parts.push(input.slice(lastPos, idx));\n lastPos = idx + separator.length;\n }\n }\n if (isEscaped) {\n isEscaped = false;\n } else if (char === \"\\\\\") {\n isEscaped = true;\n }\n if (char === \"(\" || char === \"[\" || char === \"{\") {\n stack.push(char);\n } else if (char === \")\" && stack[stack.length - 1] === \"(\" || char === \"]\" && stack[stack.length - 1] === \"[\" || char === \"}\" && stack[stack.length - 1] === \"{\") {\n stack.pop();\n }\n }\n parts.push(input.slice(lastPos));\n return parts;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseBoxShadowValue: function() {\n return parseBoxShadowValue;\n },\n formatBoxShadowValue: function() {\n return formatBoxShadowValue;\n }\n});\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet KEYWORDS = new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nlet SPACE = /\\ +(?![^(]*\\))/g // Similar to the one above, but with spaces instead.\n;\nlet LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(input, \",\");\n return shadows.map((shadow)=>{\n let value = shadow.trim();\n let result = {\n raw: value\n };\n let parts = value.split(SPACE);\n let seen = new Set();\n for (let part of parts){\n // Reset index, since the regex is stateful.\n LENGTH.lastIndex = 0;\n // Keyword\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown) result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n // Check if valid\n result.valid = result.x !== undefined && result.y !== undefined;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow)=>{\n if (!shadow.valid) {\n return shadow.raw;\n }\n return [\n shadow.keyword,\n shadow.x,\n shadow.y,\n shadow.blur,\n shadow.spread,\n shadow.color\n ].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalize: function() {\n return normalize;\n },\n url: function() {\n return url;\n },\n number: function() {\n return number;\n },\n percentage: function() {\n return percentage;\n },\n length: function() {\n return length;\n },\n lineWidth: function() {\n return lineWidth;\n },\n shadow: function() {\n return shadow;\n },\n color: function() {\n return color;\n },\n image: function() {\n return image;\n },\n gradient: function() {\n return gradient;\n },\n position: function() {\n return position;\n },\n familyName: function() {\n return familyName;\n },\n genericName: function() {\n return genericName;\n },\n absoluteSize: function() {\n return absoluteSize;\n },\n relativeSize: function() {\n return relativeSize;\n }\n});\nconst _color = require(\"./color\");\nconst _parseBoxShadowValue = require(\"./parseBoxShadowValue\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet cssFunctions = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n];\n// Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types\nfunction isCSSFunction(value) {\n return cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.*\\\\)`).test(value));\n}\nconst placeholder = \"--tw-placeholder\";\nconst placeholderRe = new RegExp(placeholder, \"g\");\nfunction normalize(value, isRoot = true) {\n if (value.startsWith(\"--\")) {\n return `var(${value})`;\n }\n // Keep raw strings if it starts with `url(`\n if (value.includes(\"url(\")) {\n return value.split(/(url\\(.*?\\))/g).filter(Boolean).map((part)=>{\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, false);\n }).join(\"\");\n }\n // Convert `_` to ` `, except for escaped underscores `\\_`\n value = value.replace(/([^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + \" \".repeat(fullMatch.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n // Remove leftover whitespace\n if (isRoot) {\n value = value.trim();\n }\n value = normalizeMathOperatorSpacing(value);\n return value;\n}\n/**\n * Add spaces around operators inside math functions\n * like calc() that do not follow an operator or '('.\n *\n * @param {string} value\n * @returns {string}\n */ function normalizeMathOperatorSpacing(value) {\n return value.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>{\n let vars = [];\n return match.replace(/var\\((--.+?)[,)]/g, (match, g1)=>{\n vars.push(g1);\n return match.replace(g1, placeholder);\n }).replace(/(-?\\d*\\.?\\d(?!\\b-\\d.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \").replace(placeholderRe, ()=>vars.shift());\n });\n}\nfunction url(value) {\n return value.startsWith(\"url(\");\n}\nfunction number(value) {\n return !isNaN(Number(value)) || isCSSFunction(value);\n}\nfunction percentage(value) {\n return value.endsWith(\"%\") && number(value.slice(0, -1)) || isCSSFunction(value);\n}\n// Please refer to MDN when updating this list:\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units\n// https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries#container_query_length_units\nlet lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n \"cqw\",\n \"cqh\",\n \"cqi\",\n \"cqb\",\n \"cqmin\",\n \"cqmax\"\n];\nlet lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value) {\n return value === \"0\" || new RegExp(`^[+-]?[0-9]*\\.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`).test(value) || isCSSFunction(value);\n}\nlet lineWidths = new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nfunction lineWidth(value) {\n return lineWidths.has(value);\n}\nfunction shadow(value) {\n let parsedShadows = (0, _parseBoxShadowValue.parseBoxShadowValue)(normalize(value));\n for (let parsedShadow of parsedShadows){\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value) {\n let colors = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if ((0, _color.parseColor)(part, {\n loose: true\n }) !== null) return colors++, true;\n return false;\n });\n if (!result) return false;\n return colors > 0;\n}\nfunction image(value) {\n let images = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (url(part) || gradient(part) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((fn)=>part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return images > 0;\n}\nlet gradientTypes = new Set([\n \"conic-gradient\",\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-conic-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\"\n]);\nfunction gradient(value) {\n value = normalize(value);\n for (let type of gradientTypes){\n if (value.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nlet validPositions = new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n]);\nfunction position(value) {\n let positions = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return positions > 0;\n}\nfunction familyName(value) {\n let fonts = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n // If it contains spaces, then it should be quoted\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n // If it starts with a number, it's invalid\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result) return false;\n return fonts > 0;\n}\nlet genericNames = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\"\n]);\nfunction genericName(value) {\n return genericNames.has(value);\n}\nlet absoluteSizes = new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\"\n]);\nfunction absoluteSize(value) {\n return absoluteSizes.has(value);\n}\nlet relativeSizes = new Set([\n \"larger\",\n \"smaller\"\n]);\nfunction relativeSize(value) {\n return relativeSizes.has(value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"backgroundSize\", {\n enumerable: true,\n get: function() {\n return backgroundSize;\n }\n});\nconst _dataTypes = require(\"./dataTypes\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nfunction backgroundSize(value) {\n let keywordValues = [\n \"cover\",\n \"contain\"\n ];\n // the <length-percentage> type will probably be a css function\n // so we have to use `splitAtTopLevelOnly`\n return (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n let sizes = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(part, \"_\").filter(Boolean);\n if (sizes.length === 1 && keywordValues.includes(sizes[0])) return true;\n if (sizes.length !== 1 && sizes.length !== 2) return false;\n return sizes.every((size)=>(0, _dataTypes.length)(size) || (0, _dataTypes.percentage)(size) || size === \"auto\");\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n updateAllClasses: function() {\n return updateAllClasses;\n },\n asValue: function() {\n return asValue;\n },\n parseColorFormat: function() {\n return parseColorFormat;\n },\n asColor: function() {\n return asColor;\n },\n asLookupValue: function() {\n return asLookupValue;\n },\n typeMap: function() {\n return typeMap;\n },\n coerceValue: function() {\n return coerceValue;\n },\n getMatchingTypes: function() {\n return getMatchingTypes;\n }\n});\nconst _escapeCommas = /*#__PURE__*/ _interop_require_default(require(\"./escapeCommas\"));\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _dataTypes = require(\"./dataTypes\");\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _validateFormalSyntax = require(\"./validateFormalSyntax\");\nconst _featureFlags = require(\"../featureFlags.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction updateAllClasses(selectors, updateClass) {\n selectors.walkClasses((sel)=>{\n sel.value = updateClass(sel.value);\n if (sel.raws && sel.raws.value) {\n sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);\n }\n });\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return undefined;\n }\n let value = modifier.slice(1, -1);\n if (!validate(value)) {\n return undefined;\n }\n return (0, _dataTypes.normalize)(value);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== undefined) {\n return (0, _negateValue.default)(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === undefined) {\n return undefined;\n }\n return (0, _negateValue.default)(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate =()=>true } = {}) {\n var _options_values;\n let value = (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n if (value !== undefined) {\n return value;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitUtilityModifier(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [\n modifier,\n undefined\n ];\n }\n let arbitrary = isArbitraryValue(modifier);\n // The modifier could be of the form `[foo]/[bar]`\n // We want to handle this case properly\n // without affecting `[foo/bar]`\n if (arbitrary && !modifier.includes(\"]/[\")) {\n return [\n modifier,\n undefined\n ];\n }\n return [\n modifier.slice(0, slashIdx),\n modifier.slice(slashIdx + 1)\n ];\n}\nfunction parseColorFormat(value) {\n if (typeof value === \"string\" && value.includes(\"<alpha-value>\")) {\n let oldValue = value;\n return ({ opacityValue =1 })=>oldValue.replace(\"<alpha-value>\", opacityValue);\n }\n return value;\n}\nfunction unwrapArbitraryModifier(modifier) {\n return (0, _dataTypes.normalize)(modifier.slice(1, -1));\n}\nfunction asColor(modifier, options = {}, { tailwindConfig ={} } = {}) {\n var _options_values;\n if (((_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier]) !== undefined) {\n var _options_values1;\n return parseColorFormat((_options_values1 = options.values) === null || _options_values1 === void 0 ? void 0 : _options_values1[modifier]);\n }\n // TODO: Hoist this up to getMatchingTypes or something\n // We do this here because we need the alpha value (if any)\n let [color, alpha] = splitUtilityModifier(modifier);\n if (alpha !== undefined) {\n var _options_values2, _tailwindConfig_theme, _tailwindConfig_theme_opacity;\n var _options_values_color;\n let normalizedColor = (_options_values_color = (_options_values2 = options.values) === null || _options_values2 === void 0 ? void 0 : _options_values2[color]) !== null && _options_values_color !== void 0 ? _options_values_color : isArbitraryValue(color) ? color.slice(1, -1) : undefined;\n if (normalizedColor === undefined) {\n return undefined;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, unwrapArbitraryModifier(alpha));\n }\n if (((_tailwindConfig_theme = tailwindConfig.theme) === null || _tailwindConfig_theme === void 0 ? void 0 : (_tailwindConfig_theme_opacity = _tailwindConfig_theme.opacity) === null || _tailwindConfig_theme_opacity === void 0 ? void 0 : _tailwindConfig_theme_opacity[alpha]) === undefined) {\n return undefined;\n }\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, {\n validate: _dataTypes.color\n });\n}\nfunction asLookupValue(modifier, options = {}) {\n var _options_values;\n return (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n}\nfunction guess(validate) {\n return (modifier, options)=>{\n return asValue(modifier, options, {\n validate\n });\n };\n}\nlet typeMap = {\n any: asValue,\n color: asColor,\n url: guess(_dataTypes.url),\n image: guess(_dataTypes.image),\n length: guess(_dataTypes.length),\n percentage: guess(_dataTypes.percentage),\n position: guess(_dataTypes.position),\n lookup: asLookupValue,\n \"generic-name\": guess(_dataTypes.genericName),\n \"family-name\": guess(_dataTypes.familyName),\n number: guess(_dataTypes.number),\n \"line-width\": guess(_dataTypes.lineWidth),\n \"absolute-size\": guess(_dataTypes.absoluteSize),\n \"relative-size\": guess(_dataTypes.relativeSize),\n shadow: guess(_dataTypes.shadow),\n size: guess(_validateFormalSyntax.backgroundSize)\n};\nlet supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1) return [\n undefined,\n input\n ];\n return [\n input.slice(0, idx),\n input.slice(idx + 1)\n ];\n}\nfunction coerceValue(types, modifier, options, tailwindConfig) {\n if (options.values && modifier in options.values) {\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n return [\n result,\n type,\n null\n ];\n }\n }\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value] = splitAtFirst(arbitraryValue, \":\");\n // It could be that this resolves to `url(https` which is not a valid\n // identifier. We currently only support \"simple\" words with dashes or\n // underscores. E.g.: family-name\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value = arbitraryValue;\n } else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value.length > 0 && supportedTypes.includes(explicitType)) {\n return [\n asValue(`[${value}]`, options),\n explicitType,\n null\n ];\n }\n }\n let matches = getMatchingTypes(types, modifier, options, tailwindConfig);\n // Find first matching type\n for (let match of matches){\n return match;\n }\n return [];\n}\nfunction* getMatchingTypes(types, rawModifier, options, tailwindConfig) {\n let modifiersEnabled = (0, _featureFlags.flagEnabled)(tailwindConfig, \"generalizedModifiers\");\n let [modifier, utilityModifier] = splitUtilityModifier(rawModifier);\n let canUseUtilityModifier = modifiersEnabled && options.modifiers != null && (options.modifiers === \"any\" || typeof options.modifiers === \"object\" && (utilityModifier && isArbitraryValue(utilityModifier) || utilityModifier in options.modifiers));\n if (!canUseUtilityModifier) {\n modifier = rawModifier;\n utilityModifier = undefined;\n }\n if (utilityModifier !== undefined && modifier === \"\") {\n modifier = \"DEFAULT\";\n }\n // Check the full value first\n // TODO: Move to asValue… somehow\n if (utilityModifier !== undefined) {\n if (typeof options.modifiers === \"object\") {\n var _options_modifiers;\n var _options_modifiers_utilityModifier;\n let configValue = (_options_modifiers_utilityModifier = (_options_modifiers = options.modifiers) === null || _options_modifiers === void 0 ? void 0 : _options_modifiers[utilityModifier]) !== null && _options_modifiers_utilityModifier !== void 0 ? _options_modifiers_utilityModifier : null;\n if (configValue !== null) {\n utilityModifier = configValue;\n } else if (isArbitraryValue(utilityModifier)) {\n utilityModifier = unwrapArbitraryModifier(utilityModifier);\n }\n }\n }\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n yield [\n result,\n type,\n utilityModifier !== null && utilityModifier !== void 0 ? utilityModifier : null\n ];\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return toColorValue;\n }\n});\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _corePluginList = /*#__PURE__*/ _interop_require_default(require(\"../corePluginList\"));\nconst _configurePlugins = /*#__PURE__*/ _interop_require_default(require(\"./configurePlugins\"));\nconst _colors = /*#__PURE__*/ _interop_require_default(require(\"../public/colors\"));\nconst _defaults = require(\"./defaults\");\nconst _toPath = require(\"./toPath\");\nconst _normalizeConfig = require(\"./normalizeConfig\");\nconst _isPlainObject = /*#__PURE__*/ _interop_require_default(require(\"./isPlainObject\"));\nconst _cloneDeep = require(\"./cloneDeep\");\nconst _pluginUtils = require(\"./pluginUtils\");\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _toColorValue = /*#__PURE__*/ _interop_require_default(require(\"./toColorValue\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources){\n for(let k in source){\n let merged = customizer(target[k], source[k]);\n if (merged === undefined) {\n if ((0, _isPlainObject.default)(target[k]) && (0, _isPlainObject.default)(source[k])) {\n target[k] = mergeWith({}, target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nconst configUtils = {\n colors: _colors.default,\n negative (scale) {\n // TODO: Log that this function isn't really needed anymore?\n return Object.keys(scale).filter((key)=>scale[key] !== \"0\").reduce((negativeScale, key)=>{\n let negativeValue = (0, _negateValue.default)(scale[key]);\n if (negativeValue !== undefined) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints (screens) {\n return Object.keys(screens).filter((key)=>typeof screens[key] === \"string\").reduce((breakpoints, key)=>({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }), {});\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend })=>{\n return mergeWith(merged, extend, (mergedValue, extendValue)=>{\n if (mergedValue === undefined) {\n return [\n extendValue\n ];\n }\n if (Array.isArray(mergedValue)) {\n return [\n extendValue,\n ...mergedValue\n ];\n }\n return [\n extendValue,\n mergedValue\n ];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme)=>(0, _defaults.defaults)(merged, theme), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value) {\n // When we have an array of objects, we do want to merge it\n if (Array.isArray(merged) && (0, _isPlainObject.default)(merged[0])) {\n return merged.concat(value);\n }\n // When the incoming value is an array, and the existing config is an object, prepend the existing object\n if (Array.isArray(value) && (0, _isPlainObject.default)(value[0]) && (0, _isPlainObject.default)(merged)) {\n return [\n merged,\n ...value\n ];\n }\n // Override arrays (for example for font-families, box-shadows, ...)\n if (Array.isArray(value)) {\n return value;\n }\n // Execute default behaviour\n return undefined;\n}\nfunction mergeExtensions({ extend , ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions)=>{\n // The `extend` property is an array, so we need to check if it contains any functions\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils)=>mergeWith({}, ...[\n themeValue,\n ...extensions\n ].map((e)=>value(e, resolveThemePath, utils)), mergeExtensionCustomizer);\n });\n}\n/**\n *\n * @param {string} key\n * @return {Iterable<string[] & {alpha: string | undefined}>}\n */ function* toPaths(key) {\n let path = (0, _toPath.toPath)(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern);\n if (matches !== null) {\n let [, prefix, alpha] = matches;\n let newPath = (0, _toPath.toPath)(prefix);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n // theme('colors.red.500 / 0.5') -> ['colors', 'red', '500 / 0', '5]\n const resolvePath = (key, defaultValue)=>{\n for (const path of toPaths(key)){\n let index = 0;\n let val = object;\n while(val !== undefined && val !== null && index < path.length){\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === undefined || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath, configUtils) : val;\n }\n if (val !== undefined) {\n if (path.alpha !== undefined) {\n let normalized = (0, _pluginUtils.parseColorFormat)(val);\n return (0, _withAlphaVariable.withAlphaValue)(normalized, path.alpha, (0, _toColorValue.default)(normalized));\n }\n if ((0, _isPlainObject.default)(val)) {\n return (0, _cloneDeep.cloneDeep)(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath, {\n theme: resolvePath,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key)=>{\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config)=>{\n allConfigs = [\n ...allConfigs,\n config\n ];\n var _config_plugins;\n const plugins = (_config_plugins = config === null || config === void 0 ? void 0 : config.plugins) !== null && _config_plugins !== void 0 ? _config_plugins : [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin)=>{\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n var _plugin_config;\n allConfigs = [\n ...allConfigs,\n ...extractPluginConfigs([\n (_plugin_config = plugin === null || plugin === void 0 ? void 0 : plugin.config) !== null && _plugin_config !== void 0 ? _plugin_config : {}\n ])\n ];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [\n ...corePluginConfigs\n ].reduceRight((resolved, corePluginConfig)=>{\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({\n corePlugins: resolved\n });\n }\n return (0, _configurePlugins.default)(corePluginConfig, resolved);\n }, _corePluginList.default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [\n ...pluginLists\n ].reduceRight((resolved, pluginList)=>{\n return [\n ...resolved,\n ...pluginList\n ];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\"\n }\n ];\n var _t_theme, _c_plugins;\n return (0, _normalizeConfig.normalizeConfig)((0, _defaults.defaults)({\n theme: resolveFunctionKeys(mergeExtensions(mergeThemes(allConfigs.map((t)=>{\n return (_t_theme = t === null || t === void 0 ? void 0 : t.theme) !== null && _t_theme !== void 0 ? _t_theme : {};\n })))),\n corePlugins: resolveCorePlugins(allConfigs.map((c)=>c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c)=>{\n return (_c_plugins = c === null || c === void 0 ? void 0 : c.plugins) !== null && _c_plugins !== void 0 ? _c_plugins : [];\n }))\n }, ...allConfigs));\n}\n","module.exports = {\n content: [],\n presets: [],\n darkMode: 'media', // or 'class'\n theme: {\n accentColor: ({ theme }) => ({\n ...theme('colors'),\n auto: 'auto',\n }),\n animation: {\n none: 'none',\n spin: 'spin 1s linear infinite',\n ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',\n pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n bounce: 'bounce 1s infinite',\n },\n aria: {\n busy: 'busy=\"true\"',\n checked: 'checked=\"true\"',\n disabled: 'disabled=\"true\"',\n expanded: 'expanded=\"true\"',\n hidden: 'hidden=\"true\"',\n pressed: 'pressed=\"true\"',\n readonly: 'readonly=\"true\"',\n required: 'required=\"true\"',\n selected: 'selected=\"true\"',\n },\n aspectRatio: {\n auto: 'auto',\n square: '1 / 1',\n video: '16 / 9',\n },\n backdropBlur: ({ theme }) => theme('blur'),\n backdropBrightness: ({ theme }) => theme('brightness'),\n backdropContrast: ({ theme }) => theme('contrast'),\n backdropGrayscale: ({ theme }) => theme('grayscale'),\n backdropHueRotate: ({ theme }) => theme('hueRotate'),\n backdropInvert: ({ theme }) => theme('invert'),\n backdropOpacity: ({ theme }) => theme('opacity'),\n backdropSaturate: ({ theme }) => theme('saturate'),\n backdropSepia: ({ theme }) => theme('sepia'),\n backgroundColor: ({ theme }) => theme('colors'),\n backgroundImage: {\n none: 'none',\n 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n },\n backgroundOpacity: ({ theme }) => theme('opacity'),\n backgroundPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n backgroundSize: {\n auto: 'auto',\n cover: 'cover',\n contain: 'contain',\n },\n blur: {\n 0: '0',\n none: '0',\n sm: '4px',\n DEFAULT: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '40px',\n '3xl': '64px',\n },\n borderColor: ({ theme }) => ({\n ...theme('colors'),\n DEFAULT: theme('colors.gray.200', 'currentColor'),\n }),\n borderOpacity: ({ theme }) => theme('opacity'),\n borderRadius: {\n none: '0px',\n sm: '0.125rem',\n DEFAULT: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n borderSpacing: ({ theme }) => ({\n ...theme('spacing'),\n }),\n borderWidth: {\n DEFAULT: '1px',\n 0: '0px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n boxShadow: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n none: 'none',\n },\n boxShadowColor: ({ theme }) => theme('colors'),\n brightness: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n caretColor: ({ theme }) => theme('colors'),\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose,\n }),\n columns: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n '3xs': '16rem',\n '2xs': '18rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n },\n container: {},\n content: {\n none: 'none',\n },\n contrast: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 100: '1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n cursor: {\n auto: 'auto',\n default: 'default',\n pointer: 'pointer',\n wait: 'wait',\n text: 'text',\n move: 'move',\n help: 'help',\n 'not-allowed': 'not-allowed',\n none: 'none',\n 'context-menu': 'context-menu',\n progress: 'progress',\n cell: 'cell',\n crosshair: 'crosshair',\n 'vertical-text': 'vertical-text',\n alias: 'alias',\n copy: 'copy',\n 'no-drop': 'no-drop',\n grab: 'grab',\n grabbing: 'grabbing',\n 'all-scroll': 'all-scroll',\n 'col-resize': 'col-resize',\n 'row-resize': 'row-resize',\n 'n-resize': 'n-resize',\n 'e-resize': 'e-resize',\n 's-resize': 's-resize',\n 'w-resize': 'w-resize',\n 'ne-resize': 'ne-resize',\n 'nw-resize': 'nw-resize',\n 'se-resize': 'se-resize',\n 'sw-resize': 'sw-resize',\n 'ew-resize': 'ew-resize',\n 'ns-resize': 'ns-resize',\n 'nesw-resize': 'nesw-resize',\n 'nwse-resize': 'nwse-resize',\n 'zoom-in': 'zoom-in',\n 'zoom-out': 'zoom-out',\n },\n divideColor: ({ theme }) => theme('borderColor'),\n divideOpacity: ({ theme }) => theme('borderOpacity'),\n divideWidth: ({ theme }) => theme('borderWidth'),\n dropShadow: {\n sm: '0 1px 1px rgb(0 0 0 / 0.05)',\n DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],\n md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],\n lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],\n xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],\n '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',\n none: '0 0 #0000',\n },\n fill: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n flex: {\n 1: '1 1 0%',\n auto: '1 1 auto',\n initial: '0 1 auto',\n none: 'none',\n },\n flexBasis: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n }),\n flexGrow: {\n 0: '0',\n DEFAULT: '1',\n },\n flexShrink: {\n 0: '0',\n DEFAULT: '1',\n },\n fontFamily: {\n sans: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n '\"Noto Sans\"',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: ['ui-serif', 'Georgia', 'Cambria', '\"Times New Roman\"', 'Times', 'serif'],\n mono: [\n 'ui-monospace',\n 'SFMono-Regular',\n 'Menlo',\n 'Monaco',\n 'Consolas',\n '\"Liberation Mono\"',\n '\"Courier New\"',\n 'monospace',\n ],\n },\n fontSize: {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n '2xl': ['1.5rem', { lineHeight: '2rem' }],\n '3xl': ['1.875rem', { lineHeight: '2.25rem' }],\n '4xl': ['2.25rem', { lineHeight: '2.5rem' }],\n '5xl': ['3rem', { lineHeight: '1' }],\n '6xl': ['3.75rem', { lineHeight: '1' }],\n '7xl': ['4.5rem', { lineHeight: '1' }],\n '8xl': ['6rem', { lineHeight: '1' }],\n '9xl': ['8rem', { lineHeight: '1' }],\n },\n fontWeight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n gap: ({ theme }) => theme('spacing'),\n gradientColorStops: ({ theme }) => theme('colors'),\n gradientColorStopPositions: {\n '0%': '0%',\n '5%': '5%',\n '10%': '10%',\n '15%': '15%',\n '20%': '20%',\n '25%': '25%',\n '30%': '30%',\n '35%': '35%',\n '40%': '40%',\n '45%': '45%',\n '50%': '50%',\n '55%': '55%',\n '60%': '60%',\n '65%': '65%',\n '70%': '70%',\n '75%': '75%',\n '80%': '80%',\n '85%': '85%',\n '90%': '90%',\n '95%': '95%',\n '100%': '100%',\n },\n grayscale: {\n 0: '0',\n DEFAULT: '100%',\n },\n gridAutoColumns: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridAutoRows: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridColumn: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-7': 'span 7 / span 7',\n 'span-8': 'span 8 / span 8',\n 'span-9': 'span 9 / span 9',\n 'span-10': 'span 10 / span 10',\n 'span-11': 'span 11 / span 11',\n 'span-12': 'span 12 / span 12',\n 'span-full': '1 / -1',\n },\n gridColumnEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridColumnStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridRow: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-full': '1 / -1',\n },\n gridRowEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridRowStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridTemplateColumns: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n },\n gridTemplateRows: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n },\n height: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n hueRotate: {\n 0: '0deg',\n 15: '15deg',\n 30: '30deg',\n 60: '60deg',\n 90: '90deg',\n 180: '180deg',\n },\n inset: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n invert: {\n 0: '0',\n DEFAULT: '100%',\n },\n keyframes: {\n spin: {\n to: {\n transform: 'rotate(360deg)',\n },\n },\n ping: {\n '75%, 100%': {\n transform: 'scale(2)',\n opacity: '0',\n },\n },\n pulse: {\n '50%': {\n opacity: '.5',\n },\n },\n bounce: {\n '0%, 100%': {\n transform: 'translateY(-25%)',\n animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',\n },\n '50%': {\n transform: 'none',\n animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',\n },\n },\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n 3: '.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n },\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n },\n listStyleImage: {\n none: 'none',\n },\n margin: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n }),\n lineClamp: {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n },\n maxHeight: ({ theme }) => ({\n ...theme('spacing'),\n none: 'none',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n none: 'none',\n 0: '0rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n prose: '65ch',\n ...breakpoints(theme('screens')),\n }),\n minHeight: {\n 0: '0px',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n minWidth: {\n 0: '0px',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n objectPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n opacity: {\n 0: '0',\n 5: '0.05',\n 10: '0.1',\n 20: '0.2',\n 25: '0.25',\n 30: '0.3',\n 40: '0.4',\n 50: '0.5',\n 60: '0.6',\n 70: '0.7',\n 75: '0.75',\n 80: '0.8',\n 90: '0.9',\n 95: '0.95',\n 100: '1',\n },\n order: {\n first: '-9999',\n last: '9999',\n none: '0',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n outlineColor: ({ theme }) => theme('colors'),\n outlineOffset: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n outlineWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n padding: ({ theme }) => theme('spacing'),\n placeholderColor: ({ theme }) => theme('colors'),\n placeholderOpacity: ({ theme }) => theme('opacity'),\n ringColor: ({ theme }) => ({\n DEFAULT: theme('colors.blue.500', '#3b82f6'),\n ...theme('colors'),\n }),\n ringOffsetColor: ({ theme }) => theme('colors'),\n ringOffsetWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: '0.5',\n ...theme('opacity'),\n }),\n ringWidth: {\n DEFAULT: '3px',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n rotate: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n 45: '45deg',\n 90: '90deg',\n 180: '180deg',\n },\n saturate: {\n 0: '0',\n 50: '.5',\n 100: '1',\n 150: '1.5',\n 200: '2',\n },\n scale: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n },\n screens: {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n scrollMargin: ({ theme }) => ({\n ...theme('spacing'),\n }),\n scrollPadding: ({ theme }) => theme('spacing'),\n sepia: {\n 0: '0',\n DEFAULT: '100%',\n },\n skew: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n },\n space: ({ theme }) => ({\n ...theme('spacing'),\n }),\n spacing: {\n px: '1px',\n 0: '0px',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n stroke: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n strokeWidth: {\n 0: '0',\n 1: '1',\n 2: '2',\n },\n supports: {},\n data: {},\n textColor: ({ theme }) => theme('colors'),\n textDecorationColor: ({ theme }) => theme('colors'),\n textDecorationThickness: {\n auto: 'auto',\n 'from-font': 'from-font',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textIndent: ({ theme }) => ({\n ...theme('spacing'),\n }),\n textOpacity: ({ theme }) => theme('opacity'),\n textUnderlineOffset: {\n auto: 'auto',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left',\n },\n transitionDelay: {\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionDuration: {\n DEFAULT: '150ms',\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionProperty: {\n none: 'none',\n all: 'all',\n DEFAULT:\n 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',\n colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform',\n },\n transitionTimingFunction: {\n DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',\n },\n translate: ({ theme }) => ({\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n width: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n screen: '100vw',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n willChange: {\n auto: 'auto',\n scroll: 'scroll-position',\n contents: 'contents',\n transform: 'transform',\n },\n zIndex: {\n auto: 'auto',\n 0: '0',\n 10: '10',\n 20: '20',\n 30: '30',\n 40: '40',\n 50: '50',\n },\n },\n plugins: [],\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return getAllConfigs;\n }\n});\nconst _configfull = /*#__PURE__*/ _interop_require_default(require(\"../../stubs/config.full.js\"));\nconst _featureFlags = require(\"../featureFlags\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getAllConfigs(config) {\n var _config_presets;\n const configs = ((_config_presets = config === null || config === void 0 ? void 0 : config.presets) !== null && _config_presets !== void 0 ? _config_presets : [\n _configfull.default\n ]).slice().reverse().flatMap((preset)=>getAllConfigs(preset instanceof Function ? preset() : preset));\n const features = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: ({ theme })=>({\n DEFAULT: \"#3b82f67f\",\n ...theme(\"colors\")\n })\n }\n },\n disableColorOpacityUtilitiesByDefault: {\n corePlugins: {\n backgroundOpacity: false,\n borderOpacity: false,\n divideOpacity: false,\n placeholderOpacity: false,\n ringOpacity: false,\n textOpacity: false\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature)=>(0, _featureFlags.flagEnabled)(config, feature)).map((feature)=>features[feature]);\n return [\n config,\n ...experimentals,\n ...configs\n ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _resolveConfig = /*#__PURE__*/ _interop_require_default(require(\"../util/resolveConfig\"));\nconst _getAllConfigs = /*#__PURE__*/ _interop_require_default(require(\"../util/getAllConfigs\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction resolveConfig(...configs) {\n let [, ...defaultConfigs] = (0, _getAllConfigs.default)(configs[0]);\n return (0, _resolveConfig.default)([\n ...configs,\n ...defaultConfigs\n ]);\n}\n","let resolveConfig = require('./lib/public/resolve-config')\nmodule.exports = (resolveConfig.__esModule ? resolveConfig : { default: resolveConfig }).default\n","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","import * as TailwindColors from \"tailwindcss/colors\"\r\n\r\nexport const BrandColors = {\r\n 50: \"#FCE3E4\",\r\n 100: \"#F9CDCE\",\r\n 200: \"#F39699\",\r\n 300: \"#ED6368\",\r\n 400: \"#E72C32\",\r\n 500: \"#C4161C\",\r\n 600: \"#9C1216\",\r\n 700: \"#770D11\",\r\n 800: \"#4E090B\",\r\n 900: \"#290506\",\r\n}\r\n\r\nconst customColors = {\r\n onprimary: TailwindColors.white,\r\n warning: TailwindColors.amber,\r\n error: TailwindColors.rose,\r\n info: TailwindColors.cyan,\r\n success: TailwindColors.lime,\r\n primary: TailwindColors.sky,\r\n brand: BrandColors,\r\n}\r\n\r\nexport const CustomColors = {\r\n ...customColors,\r\n // Warning\r\n warning: customColors.warning[\"500\"],\r\n \"warning-darken\": customColors.warning[\"600\"],\r\n \"warning-lighten\": customColors.warning[\"400\"],\r\n // Success\r\n success: customColors.success[\"500\"],\r\n \"success-darken\": customColors.success[\"600\"],\r\n \"success-lighten\": customColors.success[\"400\"],\r\n // Error\r\n error: customColors.error[\"500\"],\r\n \"error-darken\": customColors.error[\"600\"],\r\n \"error-lighten\": customColors.error[\"400\"],\r\n // Info\r\n info: customColors.info[\"500\"],\r\n \"info-darken\": customColors.info[\"600\"],\r\n \"info-lighten\": customColors.info[\"400\"],\r\n // Primary\r\n primary: customColors.primary[\"500\"],\r\n \"primary-darken\": customColors.primary[\"600\"],\r\n \"primary-lighten\": customColors.primary[\"400\"],\r\n // Surfaces\r\n onsurface: TailwindColors.slate[\"500\"],\r\n onbackground: TailwindColors.slate[\"700\"],\r\n surface: TailwindColors.slate[\"50\"],\r\n background: TailwindColors.white,\r\n}\r\n\r\nexport default {\r\n prefix: \"e-\",\r\n corePlugins: {\r\n preflight: false,\r\n },\r\n content: [\"./src/**/*.{html,js,vue,ts}\"],\r\n theme: {\r\n extend: {\r\n colors: CustomColors,\r\n maxWidth: {\r\n \"1/12\": \"8.333333333%\",\r\n \"2/12\": \"16.666666666%\",\r\n \"3/12\": \"25%\",\r\n \"4/12\": \"33.333333333%\",\r\n \"5/12\": \"41.666666667%\",\r\n \"6/12\": \"50%\",\r\n \"7/12\": \"58.333333334%\",\r\n \"8/12\": \"66.666666666%\",\r\n \"9/12\": \"75%\",\r\n \"10/12\": \"83.333333334%\",\r\n \"11/12\": \"91.666666666%\",\r\n \"12/12\": \"100%\",\r\n },\r\n },\r\n fontSize: {\r\n xs: \"0.75rem\",\r\n sm: \"0.875rem\",\r\n base: \"1rem\",\r\n lg: \"1.125rem\",\r\n xl: \"1.25rem\",\r\n \"2xl\": \"1.5rem\",\r\n \"3xl\": \"1.875rem\",\r\n \"4xl\": \"2.25rem\",\r\n \"5xl\": \"3rem\",\r\n \"6xl\": \"3.75rem\",\r\n \"7xl\": \"4.5rem\",\r\n \"8xl\": \"6rem\",\r\n \"9xl\": \"8rem\",\r\n },\r\n },\r\n plugins: [],\r\n safelist: [\r\n {\r\n pattern: /e-w-(full|auto)/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-grow/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-basis-(\\d{1,2}\\/\\d{1,2}|full|auto|0)/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /^!?e-max-w-(\\d{1,2}\\/\\d{1,2})/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-offset-(1[0-2]|[1-9])/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-items-(start|center|end|baseline|stretch)/,\r\n },\r\n {\r\n pattern: /e-self-(start|center|end|baseline|stretch)/,\r\n },\r\n {\r\n pattern:\r\n /e-justify-(around|between|center|end|evenly|normal|start|stretch)/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern:\r\n /e-content-(around|baseline|between|center|end|evenly|normal|start|stretch)/,\r\n },\r\n ],\r\n}\r\n","import resolveConfig from \"tailwindcss/resolveConfig\"\r\nimport tailwindConfig from \"../config\"\r\nimport { Size, BaseColor } from \"@/types\"\r\n\r\nexport const fullConfig = resolveConfig(tailwindConfig) as any\r\n\r\nexport const TextSizes = fullConfig.theme.fontSize\r\n\r\nexport const Colors = fullConfig.theme.colors\r\n\r\nexport const BadgeSizes = [\r\n Size.dot,\r\n Size.xs,\r\n Size.sm,\r\n Size.md,\r\n Size.lg,\r\n Size.xl,\r\n] as const\r\n\r\nexport const AvatarSizes = [\r\n Size.xs,\r\n Size.sm,\r\n Size.md,\r\n Size.lg,\r\n Size.xl,\r\n Size[\"2xl\"],\r\n] as const\r\n\r\nexport const IconSizes = [\r\n Size.xs,\r\n Size.sm,\r\n Size.md,\r\n Size.base,\r\n Size.lg,\r\n Size.xl,\r\n Size[\"2xl\"],\r\n Size[\"3xl\"],\r\n Size[\"4xl\"],\r\n Size[\"5xl\"],\r\n Size[\"6xl\"],\r\n Size[\"7xl\"],\r\n Size[\"8xl\"],\r\n Size[\"9xl\"],\r\n] as const\r\n\r\nexport const BadgeColors = [\r\n BaseColor.warning,\r\n BaseColor.error,\r\n BaseColor.info,\r\n BaseColor.success,\r\n BaseColor.primary,\r\n BaseColor.default,\r\n] as const\r\n\r\nexport const EVENTS = [\r\n \"play\",\r\n \"pause\",\r\n \"ended\",\r\n \"loadeddata\",\r\n \"waiting\",\r\n \"playing\",\r\n \"timeupdate\",\r\n \"canplay\",\r\n \"canplaythrough\",\r\n \"statechanged\",\r\n]\r\n\r\nexport default {}\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { IconSizes } from \"@/constants\"\r\nimport { BaseColor, Size, TailwindColorClass, TIconSize } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n name: \"EIcon\",\r\n props: {\r\n icon: {\r\n type: String,\r\n default: \"\",\r\n },\r\n color: {\r\n type: String as PropType<TailwindColorClass>,\r\n default: BaseColor.default,\r\n },\r\n size: {\r\n type: String as PropType<TIconSize>,\r\n default: Size.sm,\r\n },\r\n },\r\n computed: {\r\n sizes(): Record<Size, string> {\r\n return IconSizes.reduce((acc, s) => {\r\n return {\r\n ...acc,\r\n [s]: `e-text-${s}`,\r\n }\r\n }, {}) as Record<Size, string>\r\n },\r\n iconClasses(): string[] {\r\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.sm]\r\n const iconClasses = `${\r\n this.icon?.split(\" \")?.length > 1 ? this.icon : `fa fa-${this.icon}`\r\n }`\r\n const color = this.color\r\n\r\n return [\r\n \"e-inline-flex e-items-center e-justify-center e-rounded-full\",\r\n color,\r\n iconClasses,\r\n sizeClasses,\r\n ]\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { Size } from \"@/types\"\r\nimport { TextSizes, Colors } from \"@/constants\"\r\n\r\nexport default Vue.extend({\r\n name: \"ESpinner\",\r\n props: {\r\n dark: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n color: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n animationDuration: {\r\n type: [Number, String],\r\n default: 1000,\r\n },\r\n size: {\r\n type: String as PropType<Size>,\r\n default: Size.base,\r\n },\r\n opacity: {\r\n type: [String, Number],\r\n default: 1,\r\n },\r\n },\r\n data() {\r\n return {\r\n sizes: TextSizes,\r\n colors: Colors,\r\n }\r\n },\r\n computed: {\r\n computedSize(): number {\r\n return this.sizes[Size[this.size]] || this.size || this.sizes[Size.base]\r\n },\r\n fill(): { primary: string; secondary: string } {\r\n let fill = {\r\n primary: this.colors.brand[500],\r\n secondary: this.colors.neutral[300],\r\n }\r\n\r\n if (this.dark && !this.color) {\r\n fill = {\r\n primary: this.colors.neutral[100],\r\n secondary: this.colors.neutral[100],\r\n }\r\n }\r\n\r\n if (!this.dark && this.color) {\r\n fill = {\r\n primary: this.colors.brand[500],\r\n secondary: this.colors.neutral[950],\r\n }\r\n }\r\n\r\n if (!this.dark && !this.color) {\r\n fill = {\r\n primary: this.colors.neutral[200],\r\n secondary: this.colors.neutral[200],\r\n }\r\n }\r\n\r\n return fill\r\n },\r\n },\r\n methods: {\r\n getNthPathStyle(index: number) {\r\n const animationDuration =\r\n typeof this.animationDuration === \"string\"\r\n ? Number.parseInt(this.animationDuration)\r\n : this.animationDuration\r\n\r\n return {\r\n animationDuration: `${this.animationDuration}ms`,\r\n animationDelay: `${(index / 10) * animationDuration}ms`,\r\n fill: `${this.fill[index % 2 === 0 ? \"primary\" : \"secondary\"]}`,\r\n }\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { FlexAlignContent, FlexAlignItems, FlexJustifyContent } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n props: {\r\n align: {\r\n type: String as PropType<FlexAlignItems>,\r\n default: undefined,\r\n },\r\n alignContent: {\r\n type: String as PropType<FlexAlignContent>,\r\n default: undefined,\r\n },\r\n justify: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyXs: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifySm: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyMd: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyLg: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyXl: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n noGutters: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n justifyClasses(): Record<string, boolean> {\r\n return {\r\n [`e-justify-${this.justify}`]: !!this.justify,\r\n [`xs:e-justify-${this.justifySm}`]: !!this.justifySm,\r\n [`sm:e-justify-${this.justifySm}`]: !!this.justifySm,\r\n [`md:e-justify-${this.justifyMd}`]: !!this.justifyMd,\r\n [`lg:e-justify-${this.justifyLg}`]: !!this.justifyLg,\r\n [`xl:e-justify-${this.justifyXl}`]: !!this.justifyXl,\r\n }\r\n },\r\n rowClasses(): Record<string, boolean> {\r\n return {\r\n ...(this.align ? { [`e-items-${this.align}`]: true } : {}),\r\n ...(this.alignContent\r\n ? { [`e-content-${this.alignContent}`]: true }\r\n : {}),\r\n ...(this.noGutters ? { [\"e-row--no-gutters\"]: true } : {}),\r\n ...this.justifyClasses,\r\n }\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { FlexAlignSelf } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n props: {\r\n alignSelf: {\r\n type: String as PropType<FlexAlignSelf>,\r\n default: \"auto\",\r\n },\r\n cols: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n lg: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n md: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n offset: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetLg: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetMd: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetSm: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetXs: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetXl: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n sm: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n xs: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n xl: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n },\r\n computed: {\r\n colClasses(): Record<string, boolean> {\r\n return {\r\n // Align self\r\n ...(this.alignSelf ? { [`e-self-${this.alignSelf}`]: true } : {}),\r\n\r\n // cols=\"auto\"\r\n [this.autoClasses(\"xs:\", this.xs)]: this.isSizePropAuto(this.xs),\r\n [this.autoClasses(\"sm:\", this.sm)]: this.isSizePropAuto(this.sm),\r\n [this.autoClasses(\"md:\", this.md)]: this.isSizePropAuto(this.md),\r\n [this.autoClasses(\"lg:\", this.lg)]: this.isSizePropAuto(this.lg),\r\n [this.autoClasses(\"xl:e\", this.xl)]: this.isSizePropAuto(this.xl),\r\n [this.autoClasses(\"\", this.cols)]: this.isSizePropAuto(this.cols, true),\r\n\r\n // cols=\"12\"\r\n \"xs:e-basis-full xs:!e-max-w-12/12\": this.xs === 12 || this.xs === \"12\",\r\n \"sm:e-basis-full sm:!e-max-w-12/12\": this.sm === 12 || this.sm === \"12\",\r\n \"md:e-basis-full md:!e-max-w-12/12\": this.md === 12 || this.md === \"12\",\r\n \"lg:e-basis-full lg:!e-max-w-12/12\": this.lg === 12 || this.lg === \"12\",\r\n \"xl:e-basis-full xl:!e-max-w-12/12\": this.xl === 12 || this.xl === \"12\",\r\n \"e-basis-full e-max-w-12/12\": this.cols === 12 || this.cols === \"12\",\r\n\r\n // cols=\"n\"\r\n [`xs:e-basis-${this.xs}/12 xs:!e-max-w-${this.xs}/12`]:\r\n this.isSizePropertyNumeric(this.xs),\r\n [`sm:e-basis-${this.sm}/12 sm:!e-max-w-${this.sm}/12`]:\r\n this.isSizePropertyNumeric(this.sm),\r\n [`md:e-basis-${this.md}/12 md:!e-max-w-${this.md}/12`]:\r\n this.isSizePropertyNumeric(this.md),\r\n [`lg:e-basis-${this.lg}/12 lg:!e-max-w-${this.lg}/12`]:\r\n this.isSizePropertyNumeric(this.lg),\r\n [`xl:e-basis-${this.xl}/12 xl:!e-max-w-${this.xl}/12`]:\r\n this.isSizePropertyNumeric(this.xl),\r\n [`e-basis-${this.cols}/12 !e-max-w-${this.cols}/12`]:\r\n this.isSizePropertyNumeric(this.cols),\r\n\r\n // offset=\"n\"\r\n [`xs:e-offset-${this.offsetXs}`]: this.offsetXs !== undefined,\r\n [`sm:e-offset-${this.offsetSm}`]: this.offsetSm !== undefined,\r\n [`md:e-offset-${this.offsetMd}`]: this.offsetMd !== undefined,\r\n [`lg:e-offset-${this.offsetLg}`]: this.offsetLg !== undefined,\r\n [`xl:e-offset-${this.offsetXl}`]: this.offsetXl !== undefined,\r\n [`e-offset-${this.offset}`]: this.offset !== undefined,\r\n }\r\n },\r\n },\r\n methods: {\r\n autoClasses(prefix: string, value: boolean | string | number) {\r\n const basis = value === \"auto\" ? \"auto\" : \"0\"\r\n const grow = value === \"auto\" ? \"-0\" : \"\"\r\n const width = value === \"auto\" ? \"auto\" : \"full\"\r\n\r\n return `${prefix}e-basis-${basis} ${prefix}e-grow${grow} ${prefix}e-w-${width}`\r\n },\r\n isSizePropAuto(\r\n prop: boolean | string | number | undefined,\r\n acceptUndefined = false\r\n ) {\r\n return (\r\n prop === \"auto\" ||\r\n prop === 0 ||\r\n prop === \"0\" ||\r\n (acceptUndefined && !prop)\r\n )\r\n },\r\n isSizePropertyNumeric(prop: boolean | string | number | undefined) {\r\n const n = Number.parseInt(prop as string)\r\n\r\n return prop !== \"auto\" && !isNaN(n) && n >= 1 && n < 12\r\n },\r\n },\r\n})\r\n","import V from \"vue\";\nimport * as u from \"d3\";\nimport K from \"moment-timezone\";\nvar T = /* @__PURE__ */ ((e) => (e.dot = \"dot\", e.xs = \"xs\", e.sm = \"sm\", e.md = \"base\", e.base = \"base\", e.lg = \"lg\", e.xl = \"xl\", e[\"2xl\"] = \"2xl\", e[\"3xl\"] = \"3xl\", e[\"4xl\"] = \"4xl\", e[\"5xl\"] = \"5xl\", e[\"6xl\"] = \"6xl\", e[\"7xl\"] = \"7xl\", e[\"8xl\"] = \"8xl\", e[\"9xl\"] = \"9xl\", e))(T || {}), j = /* @__PURE__ */ ((e) => (e.warning = \"warning\", e.error = \"error\", e.info = \"info\", e.success = \"success\", e.primary = \"primary\", e.brand = \"brand\", e.default = \"default\", e))(j || {}), ee = /* @__PURE__ */ ((e) => (e.overview = \"overview\", e.detailed = \"detailed\", e.detailedBackground = \"detailedBackground\", e))(ee || {});\nconst et = V.extend({\n name: \"EBadge\",\n props: {\n text: {\n type: String,\n default: \"\"\n },\n color: {\n type: String,\n default: j.default\n },\n size: {\n type: String,\n default: T.base\n }\n },\n data() {\n return {\n colors: {\n [j.error]: \"e-bg-rose-500 e-text-white\",\n [j.info]: \"e-bg-cyan-500 e-text-white\",\n [j.warning]: \"e-bg-amber-500 e-text-white\",\n [j.primary]: \"e-bg-sky-500 e-text-white\",\n [j.default]: \"e-bg-slate-300 e-text-white\",\n [j.success]: \"e-bg-lime-500 e-text-white\"\n },\n sizes: {\n [T.dot]: \"e-w-2 e-h-2\",\n [T.xs]: \"e-w-3 e-h-3\",\n [T.sm]: \"e-w-4 e-h-4\",\n [T.md]: \"e-w-5 e-h-5\",\n [T.lg]: \"e-min-w-[2rem] e-max-w-[4rem] e-px-1 e-h-6 e-text-sm e-font-medium\",\n [T.xl]: \"e-min-w-[3rem] e-max-w-[5rem] e-px-1 e-h-8 e-text-base e-font-medium\"\n }\n };\n },\n computed: {\n badgeClasses() {\n const e = this.colors[this.color] || this.colors[j.default], t = this.sizes[this.size] || this.sizes[T.md];\n return [\n \"e-flex e-items-center e-justify-center e-rounded-full\",\n e,\n t\n ];\n },\n showText() {\n return [T.lg, T.xl].includes(this.size);\n }\n }\n});\nfunction q(e, t, r, n, a, o, i, c) {\n var l = typeof e == \"function\" ? e.options : e;\n t && (l.render = t, l.staticRenderFns = r, l._compiled = !0), n && (l.functional = !0), o && (l._scopeId = \"data-v-\" + o);\n var s;\n if (i ? (s = function(h) {\n h = h || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !h && typeof __VUE_SSR_CONTEXT__ != \"undefined\" && (h = __VUE_SSR_CONTEXT__), a && a.call(this, h), h && h._registeredComponents && h._registeredComponents.add(i);\n }, l._ssrRegister = s) : a && (s = c ? function() {\n a.call(\n this,\n (l.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : a), s)\n if (l.functional) {\n l._injectStyles = s;\n var d = l.render;\n l.render = function(E, y) {\n return s.call(y), d(E, y);\n };\n } else {\n var v = l.beforeCreate;\n l.beforeCreate = v ? [].concat(v, s) : [s];\n }\n return {\n exports: e,\n options: l\n };\n}\nvar tt = function() {\n var t = this, r = t._self._c;\n return r(\"span\", { staticClass: \"e-badge\", class: t.badgeClasses }, [t.showText ? r(\"span\", [t._v(t._s(t.text))]) : t._e()]);\n}, rt = [], nt = /* @__PURE__ */ q(\n et,\n tt,\n rt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Ae = nt.exports, it = V.extend({\n name: \"EAvatar\",\n components: {\n Badge: Ae\n },\n props: {\n size: {\n type: String,\n default: T.md\n },\n showBadge: {\n type: Boolean,\n default: !1\n },\n badgeColor: {\n type: String,\n default: j.error\n },\n badgeText: {\n type: String,\n default: \"\"\n },\n badgeSize: {\n type: String,\n default: T.md\n },\n image: {\n type: String,\n default: \"\"\n }\n },\n data() {\n return {\n sizes: {\n [T.xs]: \"e-w-8 e-h-8 e-text-xs\",\n [T.sm]: \"e-w-10 e-h-10 e-text-sm\",\n [T.md]: \"e-w-14 e-h-14 e-text-base\",\n [T.lg]: \"e-w-20 e-h-20 e-text-2xl\",\n [T.xl]: \"e-w-28 e-h-28 e-text-3xl\",\n [T[\"2xl\"]]: \"e-w-36 e-h-36 e-text-5xl\"\n }\n };\n },\n computed: {\n avatarClasses() {\n return [\n \"e-flex e-items-center e-justify-center e-rounded-full e-bg-purple-500 e-text-white e-font-medium\",\n this.sizes[this.size] || this.sizes[T.xs]\n ];\n }\n }\n});\nvar st = function() {\n var t = this, r = t._self._c;\n return r(\"div\", { staticClass: \"e-avatar e-relative\", class: t.avatarClasses }, [t._t(\"default\", function() {\n return [t.image ? r(\"img\", { staticClass: \"e-avatar__image e-w-full e-h-full e-object-cover e-rounded-full\", attrs: { src: t.image } }) : t._e()];\n }), t.showBadge ? r(\"div\", { staticClass: \"e-avatar__badge e-absolute e-top-0 e-right-0\" }, [t._t(\"badge\", function() {\n return [r(\"Badge\", { attrs: { text: t.badgeText, color: t.badgeColor, size: t.badgeSize } })];\n })], 2) : t._e()], 2);\n}, at = [], ot = /* @__PURE__ */ q(\n it,\n st,\n at,\n !1,\n null,\n null,\n null,\n null\n);\nconst lt = ot.exports;\nfunction ut(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Fe = {}, Me = {}, fe = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r) {\n if (r = `${r}`, r === \"0\")\n return \"0\";\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(r))\n return r.replace(/^[+-]?/, (a) => a === \"-\" ? \"\" : \"-\");\n let n = [\n \"var\",\n \"calc\",\n \"min\",\n \"max\",\n \"clamp\"\n ];\n for (const a of n)\n if (r.includes(`${a}(`))\n return `calc(${r} * -1)`;\n }\n})(fe);\nvar ze = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n const t = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"lineClamp\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"captionSide\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"listStyleImage\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"hyphens\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n ];\n})(ze);\nvar Pe = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r, n) {\n return r === void 0 ? n : Array.isArray(r) ? r : [\n ...new Set(n.filter((o) => r !== !1 && r[o] !== !1).concat(Object.keys(r).filter((o) => r[o] !== !1)))\n ];\n }\n})(Pe);\nvar he = {}, re = {}, me = { exports: {} }, z = String, Le = function() {\n return { isColorSupported: !1, reset: z, bold: z, dim: z, italic: z, underline: z, inverse: z, hidden: z, strikethrough: z, black: z, red: z, green: z, yellow: z, blue: z, magenta: z, cyan: z, white: z, gray: z, bgBlack: z, bgRed: z, bgGreen: z, bgYellow: z, bgBlue: z, bgMagenta: z, bgCyan: z, bgWhite: z };\n};\nme.exports = Le();\nme.exports.createColors = Le;\nvar Ge = me.exports;\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(l, s) {\n for (var d in s)\n Object.defineProperty(l, d, {\n enumerable: !0,\n get: s[d]\n });\n }\n t(e, {\n dim: function() {\n return i;\n },\n default: function() {\n return c;\n }\n });\n const r = /* @__PURE__ */ n(Ge);\n function n(l) {\n return l && l.__esModule ? l : {\n default: l\n };\n }\n let a = /* @__PURE__ */ new Set();\n function o(l, s, d) {\n typeof process != \"undefined\" && process.env.JEST_WORKER_ID || d && a.has(d) || (d && a.add(d), console.warn(\"\"), s.forEach((v) => console.warn(l, \"-\", v)));\n }\n function i(l) {\n return r.default.dim(l);\n }\n const c = {\n info(l, s) {\n o(r.default.bold(r.default.cyan(\"info\")), ...Array.isArray(l) ? [\n l\n ] : [\n s,\n l\n ]);\n },\n warn(l, s) {\n o(r.default.bold(r.default.yellow(\"warn\")), ...Array.isArray(l) ? [\n l\n ] : [\n s,\n l\n ]);\n },\n risk(l, s) {\n o(r.default.bold(r.default.magenta(\"risk\")), ...Array.isArray(l) ? [\n l\n ] : [\n s,\n l\n ]);\n }\n };\n})(re);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return a;\n }\n });\n const t = /* @__PURE__ */ r(re);\n function r(o) {\n return o && o.__esModule ? o : {\n default: o\n };\n }\n function n({ version: o, from: i, to: c }) {\n t.default.warn(`${i}-color-renamed`, [\n `As of Tailwind CSS ${o}, \\`${i}\\` has been renamed to \\`${c}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n }\n const a = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue() {\n return n({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n }), this.sky;\n },\n get warmGray() {\n return n({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n }), this.stone;\n },\n get trueGray() {\n return n({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n }), this.neutral;\n },\n get coolGray() {\n return n({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n }), this.gray;\n },\n get blueGray() {\n return n({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n }), this.slate;\n }\n };\n})(he);\nvar He = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"defaults\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r, ...n) {\n for (let i of n) {\n for (let c in i) {\n var a;\n !(r == null || (a = r.hasOwnProperty) === null || a === void 0) && a.call(r, c) || (r[c] = i[c]);\n }\n for (let c of Object.getOwnPropertySymbols(i)) {\n var o;\n !(r == null || (o = r.hasOwnProperty) === null || o === void 0) && o.call(r, c) || (r[c] = i[c]);\n }\n }\n return r;\n }\n})(He);\nvar je = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"toPath\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r) {\n if (Array.isArray(r))\n return r;\n let n = r.split(\"[\").length - 1, a = r.split(\"]\").length - 1;\n if (n !== a)\n throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`);\n return r.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n }\n})(je);\nvar Be = {}, ne = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(v, h) {\n for (var E in h)\n Object.defineProperty(v, E, {\n enumerable: !0,\n get: h[E]\n });\n }\n t(e, {\n flagEnabled: function() {\n return c;\n },\n issueFlagNotices: function() {\n return s;\n },\n default: function() {\n return d;\n }\n });\n const r = /* @__PURE__ */ a(Ge), n = /* @__PURE__ */ a(re);\n function a(v) {\n return v && v.__esModule ? v : {\n default: v\n };\n }\n let o = {\n optimizeUniversalDefaults: !1,\n generalizedModifiers: !0,\n get disableColorOpacityUtilitiesByDefault() {\n return !1;\n },\n get relativeContentPathsByDefault() {\n return !1;\n }\n }, i = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\",\n \"disableColorOpacityUtilitiesByDefault\",\n \"relativeContentPathsByDefault\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"generalizedModifiers\"\n ]\n };\n function c(v, h) {\n if (i.future.includes(h)) {\n var E, y, k;\n return v.future === \"all\" || ((k = (y = v == null || (E = v.future) === null || E === void 0 ? void 0 : E[h]) !== null && y !== void 0 ? y : o[h]) !== null && k !== void 0 ? k : !1);\n }\n if (i.experimental.includes(h)) {\n var A, P, L;\n return v.experimental === \"all\" || ((L = (P = v == null || (A = v.experimental) === null || A === void 0 ? void 0 : A[h]) !== null && P !== void 0 ? P : o[h]) !== null && L !== void 0 ? L : !1);\n }\n return !1;\n }\n function l(v) {\n if (v.experimental === \"all\")\n return i.experimental;\n var h;\n return Object.keys((h = v == null ? void 0 : v.experimental) !== null && h !== void 0 ? h : {}).filter((E) => i.experimental.includes(E) && v.experimental[E]);\n }\n function s(v) {\n if (process.env.JEST_WORKER_ID === void 0 && l(v).length > 0) {\n let h = l(v).map((E) => r.default.yellow(E)).join(\", \");\n n.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${h}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\"\n ]);\n }\n }\n const d = i;\n})(ne);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"normalizeConfig\", {\n enumerable: !0,\n get: function() {\n return o;\n }\n });\n const t = ne, r = /* @__PURE__ */ a(re);\n function n(i) {\n if (typeof WeakMap != \"function\")\n return null;\n var c = /* @__PURE__ */ new WeakMap(), l = /* @__PURE__ */ new WeakMap();\n return (n = function(s) {\n return s ? l : c;\n })(i);\n }\n function a(i, c) {\n if (!c && i && i.__esModule)\n return i;\n if (i === null || typeof i != \"object\" && typeof i != \"function\")\n return {\n default: i\n };\n var l = n(c);\n if (l && l.has(i))\n return l.get(i);\n var s = {}, d = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var v in i)\n if (v !== \"default\" && Object.prototype.hasOwnProperty.call(i, v)) {\n var h = d ? Object.getOwnPropertyDescriptor(i, v) : null;\n h && (h.get || h.set) ? Object.defineProperty(s, v, h) : s[v] = i[v];\n }\n return s.default = i, l && l.set(i, s), s;\n }\n function o(i) {\n if ((() => {\n if (i.purge || !i.content || !Array.isArray(i.content) && !(typeof i.content == \"object\" && i.content !== null))\n return !1;\n if (Array.isArray(i.content))\n return i.content.every((s) => typeof s == \"string\" ? !0 : !(typeof (s == null ? void 0 : s.raw) != \"string\" || s != null && s.extension && typeof (s == null ? void 0 : s.extension) != \"string\"));\n if (typeof i.content == \"object\" && i.content !== null) {\n if (Object.keys(i.content).some((s) => ![\n \"files\",\n \"relative\",\n \"extract\",\n \"transform\"\n ].includes(s)))\n return !1;\n if (Array.isArray(i.content.files)) {\n if (!i.content.files.every((s) => typeof s == \"string\" ? !0 : !(typeof (s == null ? void 0 : s.raw) != \"string\" || s != null && s.extension && typeof (s == null ? void 0 : s.extension) != \"string\")))\n return !1;\n if (typeof i.content.extract == \"object\") {\n for (let s of Object.values(i.content.extract))\n if (typeof s != \"function\")\n return !1;\n } else if (!(i.content.extract === void 0 || typeof i.content.extract == \"function\"))\n return !1;\n if (typeof i.content.transform == \"object\") {\n for (let s of Object.values(i.content.transform))\n if (typeof s != \"function\")\n return !1;\n } else if (!(i.content.transform === void 0 || typeof i.content.transform == \"function\"))\n return !1;\n if (typeof i.content.relative != \"boolean\" && typeof i.content.relative != \"undefined\")\n return !1;\n }\n return !0;\n }\n return !1;\n })() || r.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\"\n ]), i.safelist = (() => {\n var s;\n let { content: d, purge: v, safelist: h } = i;\n return Array.isArray(h) ? h : Array.isArray(d == null ? void 0 : d.safelist) ? d.safelist : Array.isArray(v == null ? void 0 : v.safelist) ? v.safelist : Array.isArray(v == null || (s = v.options) === null || s === void 0 ? void 0 : s.safelist) ? v.options.safelist : [];\n })(), i.blocklist = (() => {\n let { blocklist: s } = i;\n if (Array.isArray(s)) {\n if (s.every((d) => typeof d == \"string\"))\n return s;\n r.default.warn(\"blocklist-invalid\", [\n \"The `blocklist` option must be an array of strings.\",\n \"https://tailwindcss.com/docs/content-configuration#discarding-classes\"\n ]);\n }\n return [];\n })(), typeof i.prefix == \"function\")\n r.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\"\n ]), i.prefix = \"\";\n else {\n var l;\n i.prefix = (l = i.prefix) !== null && l !== void 0 ? l : \"\";\n }\n i.content = {\n relative: (() => {\n let { content: s } = i;\n return s != null && s.relative ? s.relative : (0, t.flagEnabled)(i, \"relativeContentPathsByDefault\");\n })(),\n files: (() => {\n let { content: s, purge: d } = i;\n return Array.isArray(d) ? d : Array.isArray(d == null ? void 0 : d.content) ? d.content : Array.isArray(s) ? s : Array.isArray(s == null ? void 0 : s.content) ? s.content : Array.isArray(s == null ? void 0 : s.files) ? s.files : [];\n })(),\n extract: (() => {\n let s = (() => {\n var h, E, y, k, A, P, L, M, G, H;\n return !((h = i.purge) === null || h === void 0) && h.extract ? i.purge.extract : !((E = i.content) === null || E === void 0) && E.extract ? i.content.extract : !((y = i.purge) === null || y === void 0 || (k = y.extract) === null || k === void 0) && k.DEFAULT ? i.purge.extract.DEFAULT : !((A = i.content) === null || A === void 0 || (P = A.extract) === null || P === void 0) && P.DEFAULT ? i.content.extract.DEFAULT : !((L = i.purge) === null || L === void 0 || (M = L.options) === null || M === void 0) && M.extractors ? i.purge.options.extractors : !((G = i.content) === null || G === void 0 || (H = G.options) === null || H === void 0) && H.extractors ? i.content.options.extractors : {};\n })(), d = {}, v = (() => {\n var h, E, y, k;\n if (!((h = i.purge) === null || h === void 0 || (E = h.options) === null || E === void 0) && E.defaultExtractor)\n return i.purge.options.defaultExtractor;\n if (!((y = i.content) === null || y === void 0 || (k = y.options) === null || k === void 0) && k.defaultExtractor)\n return i.content.options.defaultExtractor;\n })();\n if (v !== void 0 && (d.DEFAULT = v), typeof s == \"function\")\n d.DEFAULT = s;\n else if (Array.isArray(s))\n for (let { extensions: h, extractor: E } of s != null ? s : [])\n for (let y of h)\n d[y] = E;\n else\n typeof s == \"object\" && s !== null && Object.assign(d, s);\n return d;\n })(),\n transform: (() => {\n let s = (() => {\n var v, h, E, y, k, A;\n return !((v = i.purge) === null || v === void 0) && v.transform ? i.purge.transform : !((h = i.content) === null || h === void 0) && h.transform ? i.content.transform : !((E = i.purge) === null || E === void 0 || (y = E.transform) === null || y === void 0) && y.DEFAULT ? i.purge.transform.DEFAULT : !((k = i.content) === null || k === void 0 || (A = k.transform) === null || A === void 0) && A.DEFAULT ? i.content.transform.DEFAULT : {};\n })(), d = {};\n return typeof s == \"function\" && (d.DEFAULT = s), typeof s == \"object\" && s !== null && Object.assign(d, s), d;\n })()\n };\n for (let s of i.content.files)\n if (typeof s == \"string\" && /{([^,]*?)}/g.test(s)) {\n r.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, r.dim)(s)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, r.dim)(s.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n return i;\n }\n})(Be);\nvar We = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r) {\n if (Object.prototype.toString.call(r) !== \"[object Object]\")\n return !1;\n const n = Object.getPrototypeOf(r);\n return n === null || n === Object.prototype;\n }\n})(We);\nvar Re = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"cloneDeep\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r) {\n return Array.isArray(r) ? r.map((n) => t(n)) : typeof r == \"object\" && r !== null ? Object.fromEntries(Object.entries(r).map(([n, a]) => [\n n,\n t(a)\n ])) : r;\n }\n})(Re);\nvar Ue = {}, Ne = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r) {\n return r.replace(/\\\\,/g, \"\\\\2c \");\n }\n})(Ne);\nvar pe = {}, ge = {}, Ie = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n const t = {\n aliceblue: [\n 240,\n 248,\n 255\n ],\n antiquewhite: [\n 250,\n 235,\n 215\n ],\n aqua: [\n 0,\n 255,\n 255\n ],\n aquamarine: [\n 127,\n 255,\n 212\n ],\n azure: [\n 240,\n 255,\n 255\n ],\n beige: [\n 245,\n 245,\n 220\n ],\n bisque: [\n 255,\n 228,\n 196\n ],\n black: [\n 0,\n 0,\n 0\n ],\n blanchedalmond: [\n 255,\n 235,\n 205\n ],\n blue: [\n 0,\n 0,\n 255\n ],\n blueviolet: [\n 138,\n 43,\n 226\n ],\n brown: [\n 165,\n 42,\n 42\n ],\n burlywood: [\n 222,\n 184,\n 135\n ],\n cadetblue: [\n 95,\n 158,\n 160\n ],\n chartreuse: [\n 127,\n 255,\n 0\n ],\n chocolate: [\n 210,\n 105,\n 30\n ],\n coral: [\n 255,\n 127,\n 80\n ],\n cornflowerblue: [\n 100,\n 149,\n 237\n ],\n cornsilk: [\n 255,\n 248,\n 220\n ],\n crimson: [\n 220,\n 20,\n 60\n ],\n cyan: [\n 0,\n 255,\n 255\n ],\n darkblue: [\n 0,\n 0,\n 139\n ],\n darkcyan: [\n 0,\n 139,\n 139\n ],\n darkgoldenrod: [\n 184,\n 134,\n 11\n ],\n darkgray: [\n 169,\n 169,\n 169\n ],\n darkgreen: [\n 0,\n 100,\n 0\n ],\n darkgrey: [\n 169,\n 169,\n 169\n ],\n darkkhaki: [\n 189,\n 183,\n 107\n ],\n darkmagenta: [\n 139,\n 0,\n 139\n ],\n darkolivegreen: [\n 85,\n 107,\n 47\n ],\n darkorange: [\n 255,\n 140,\n 0\n ],\n darkorchid: [\n 153,\n 50,\n 204\n ],\n darkred: [\n 139,\n 0,\n 0\n ],\n darksalmon: [\n 233,\n 150,\n 122\n ],\n darkseagreen: [\n 143,\n 188,\n 143\n ],\n darkslateblue: [\n 72,\n 61,\n 139\n ],\n darkslategray: [\n 47,\n 79,\n 79\n ],\n darkslategrey: [\n 47,\n 79,\n 79\n ],\n darkturquoise: [\n 0,\n 206,\n 209\n ],\n darkviolet: [\n 148,\n 0,\n 211\n ],\n deeppink: [\n 255,\n 20,\n 147\n ],\n deepskyblue: [\n 0,\n 191,\n 255\n ],\n dimgray: [\n 105,\n 105,\n 105\n ],\n dimgrey: [\n 105,\n 105,\n 105\n ],\n dodgerblue: [\n 30,\n 144,\n 255\n ],\n firebrick: [\n 178,\n 34,\n 34\n ],\n floralwhite: [\n 255,\n 250,\n 240\n ],\n forestgreen: [\n 34,\n 139,\n 34\n ],\n fuchsia: [\n 255,\n 0,\n 255\n ],\n gainsboro: [\n 220,\n 220,\n 220\n ],\n ghostwhite: [\n 248,\n 248,\n 255\n ],\n gold: [\n 255,\n 215,\n 0\n ],\n goldenrod: [\n 218,\n 165,\n 32\n ],\n gray: [\n 128,\n 128,\n 128\n ],\n green: [\n 0,\n 128,\n 0\n ],\n greenyellow: [\n 173,\n 255,\n 47\n ],\n grey: [\n 128,\n 128,\n 128\n ],\n honeydew: [\n 240,\n 255,\n 240\n ],\n hotpink: [\n 255,\n 105,\n 180\n ],\n indianred: [\n 205,\n 92,\n 92\n ],\n indigo: [\n 75,\n 0,\n 130\n ],\n ivory: [\n 255,\n 255,\n 240\n ],\n khaki: [\n 240,\n 230,\n 140\n ],\n lavender: [\n 230,\n 230,\n 250\n ],\n lavenderblush: [\n 255,\n 240,\n 245\n ],\n lawngreen: [\n 124,\n 252,\n 0\n ],\n lemonchiffon: [\n 255,\n 250,\n 205\n ],\n lightblue: [\n 173,\n 216,\n 230\n ],\n lightcoral: [\n 240,\n 128,\n 128\n ],\n lightcyan: [\n 224,\n 255,\n 255\n ],\n lightgoldenrodyellow: [\n 250,\n 250,\n 210\n ],\n lightgray: [\n 211,\n 211,\n 211\n ],\n lightgreen: [\n 144,\n 238,\n 144\n ],\n lightgrey: [\n 211,\n 211,\n 211\n ],\n lightpink: [\n 255,\n 182,\n 193\n ],\n lightsalmon: [\n 255,\n 160,\n 122\n ],\n lightseagreen: [\n 32,\n 178,\n 170\n ],\n lightskyblue: [\n 135,\n 206,\n 250\n ],\n lightslategray: [\n 119,\n 136,\n 153\n ],\n lightslategrey: [\n 119,\n 136,\n 153\n ],\n lightsteelblue: [\n 176,\n 196,\n 222\n ],\n lightyellow: [\n 255,\n 255,\n 224\n ],\n lime: [\n 0,\n 255,\n 0\n ],\n limegreen: [\n 50,\n 205,\n 50\n ],\n linen: [\n 250,\n 240,\n 230\n ],\n magenta: [\n 255,\n 0,\n 255\n ],\n maroon: [\n 128,\n 0,\n 0\n ],\n mediumaquamarine: [\n 102,\n 205,\n 170\n ],\n mediumblue: [\n 0,\n 0,\n 205\n ],\n mediumorchid: [\n 186,\n 85,\n 211\n ],\n mediumpurple: [\n 147,\n 112,\n 219\n ],\n mediumseagreen: [\n 60,\n 179,\n 113\n ],\n mediumslateblue: [\n 123,\n 104,\n 238\n ],\n mediumspringgreen: [\n 0,\n 250,\n 154\n ],\n mediumturquoise: [\n 72,\n 209,\n 204\n ],\n mediumvioletred: [\n 199,\n 21,\n 133\n ],\n midnightblue: [\n 25,\n 25,\n 112\n ],\n mintcream: [\n 245,\n 255,\n 250\n ],\n mistyrose: [\n 255,\n 228,\n 225\n ],\n moccasin: [\n 255,\n 228,\n 181\n ],\n navajowhite: [\n 255,\n 222,\n 173\n ],\n navy: [\n 0,\n 0,\n 128\n ],\n oldlace: [\n 253,\n 245,\n 230\n ],\n olive: [\n 128,\n 128,\n 0\n ],\n olivedrab: [\n 107,\n 142,\n 35\n ],\n orange: [\n 255,\n 165,\n 0\n ],\n orangered: [\n 255,\n 69,\n 0\n ],\n orchid: [\n 218,\n 112,\n 214\n ],\n palegoldenrod: [\n 238,\n 232,\n 170\n ],\n palegreen: [\n 152,\n 251,\n 152\n ],\n paleturquoise: [\n 175,\n 238,\n 238\n ],\n palevioletred: [\n 219,\n 112,\n 147\n ],\n papayawhip: [\n 255,\n 239,\n 213\n ],\n peachpuff: [\n 255,\n 218,\n 185\n ],\n peru: [\n 205,\n 133,\n 63\n ],\n pink: [\n 255,\n 192,\n 203\n ],\n plum: [\n 221,\n 160,\n 221\n ],\n powderblue: [\n 176,\n 224,\n 230\n ],\n purple: [\n 128,\n 0,\n 128\n ],\n rebeccapurple: [\n 102,\n 51,\n 153\n ],\n red: [\n 255,\n 0,\n 0\n ],\n rosybrown: [\n 188,\n 143,\n 143\n ],\n royalblue: [\n 65,\n 105,\n 225\n ],\n saddlebrown: [\n 139,\n 69,\n 19\n ],\n salmon: [\n 250,\n 128,\n 114\n ],\n sandybrown: [\n 244,\n 164,\n 96\n ],\n seagreen: [\n 46,\n 139,\n 87\n ],\n seashell: [\n 255,\n 245,\n 238\n ],\n sienna: [\n 160,\n 82,\n 45\n ],\n silver: [\n 192,\n 192,\n 192\n ],\n skyblue: [\n 135,\n 206,\n 235\n ],\n slateblue: [\n 106,\n 90,\n 205\n ],\n slategray: [\n 112,\n 128,\n 144\n ],\n slategrey: [\n 112,\n 128,\n 144\n ],\n snow: [\n 255,\n 250,\n 250\n ],\n springgreen: [\n 0,\n 255,\n 127\n ],\n steelblue: [\n 70,\n 130,\n 180\n ],\n tan: [\n 210,\n 180,\n 140\n ],\n teal: [\n 0,\n 128,\n 128\n ],\n thistle: [\n 216,\n 191,\n 216\n ],\n tomato: [\n 255,\n 99,\n 71\n ],\n turquoise: [\n 64,\n 224,\n 208\n ],\n violet: [\n 238,\n 130,\n 238\n ],\n wheat: [\n 245,\n 222,\n 179\n ],\n white: [\n 255,\n 255,\n 255\n ],\n whitesmoke: [\n 245,\n 245,\n 245\n ],\n yellow: [\n 255,\n 255,\n 0\n ],\n yellowgreen: [\n 154,\n 205,\n 50\n ]\n };\n})(Ie);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(y, k) {\n for (var A in k)\n Object.defineProperty(y, A, {\n enumerable: !0,\n get: k[A]\n });\n }\n t(e, {\n parseColor: function() {\n return h;\n },\n formatColor: function() {\n return E;\n }\n });\n const r = /* @__PURE__ */ n(Ie);\n function n(y) {\n return y && y.__esModule ? y : {\n default: y\n };\n }\n let a = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i, o = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i, i = /(?:\\d+|\\d*\\.\\d+)%?/, c = /(?:\\s*,\\s*|\\s+)/, l = /\\s*[,/]\\s*/, s = /var\\(--(?:[^ )]*?)\\)/, d = new RegExp(`^(rgba?)\\\\(\\\\s*(${i.source}|${s.source})(?:${c.source}(${i.source}|${s.source}))?(?:${c.source}(${i.source}|${s.source}))?(?:${l.source}(${i.source}|${s.source}))?\\\\s*\\\\)$`), v = new RegExp(`^(hsla?)\\\\(\\\\s*((?:${i.source})(?:deg|rad|grad|turn)?|${s.source})(?:${c.source}(${i.source}|${s.source}))?(?:${c.source}(${i.source}|${s.source}))?(?:${l.source}(${i.source}|${s.source}))?\\\\s*\\\\)$`);\n function h(y, { loose: k = !1 } = {}) {\n var A, P;\n if (typeof y != \"string\")\n return null;\n if (y = y.trim(), y === \"transparent\")\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n if (y in r.default)\n return {\n mode: \"rgb\",\n color: r.default[y].map((W) => W.toString())\n };\n let L = y.replace(o, (W, N, R, g, D) => [\n \"#\",\n N,\n N,\n R,\n R,\n g,\n g,\n D ? D + D : \"\"\n ].join(\"\")).match(a);\n if (L !== null)\n return {\n mode: \"rgb\",\n color: [\n parseInt(L[1], 16),\n parseInt(L[2], 16),\n parseInt(L[3], 16)\n ].map((W) => W.toString()),\n alpha: L[4] ? (parseInt(L[4], 16) / 255).toString() : void 0\n };\n var M;\n let G = (M = y.match(d)) !== null && M !== void 0 ? M : y.match(v);\n if (G === null)\n return null;\n let H = [\n G[2],\n G[3],\n G[4]\n ].filter(Boolean).map((W) => W.toString());\n return H.length === 2 && H[0].startsWith(\"var(\") ? {\n mode: G[1],\n color: [\n H[0]\n ],\n alpha: H[1]\n } : !k && H.length !== 3 || H.length < 3 && !H.some((W) => /^var\\(.*?\\)$/.test(W)) ? null : {\n mode: G[1],\n color: H,\n alpha: (A = G[5]) === null || A === void 0 || (P = A.toString) === null || P === void 0 ? void 0 : P.call(A)\n };\n }\n function E({ mode: y, color: k, alpha: A }) {\n let P = A !== void 0;\n return y === \"rgba\" || y === \"hsla\" ? `${y}(${k.join(\", \")}${P ? `, ${A}` : \"\"})` : `${y}(${k.join(\" \")}${P ? ` / ${A}` : \"\"})`;\n }\n})(ge);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(o, i) {\n for (var c in i)\n Object.defineProperty(o, c, {\n enumerable: !0,\n get: i[c]\n });\n }\n t(e, {\n withAlphaValue: function() {\n return n;\n },\n default: function() {\n return a;\n }\n });\n const r = ge;\n function n(o, i, c) {\n if (typeof o == \"function\")\n return o({\n opacityValue: i\n });\n let l = (0, r.parseColor)(o, {\n loose: !0\n });\n return l === null ? c : (0, r.formatColor)({\n ...l,\n alpha: i\n });\n }\n function a({ color: o, property: i, variable: c }) {\n let l = [].concat(i);\n if (typeof o == \"function\")\n return {\n [c]: \"1\",\n ...Object.fromEntries(l.map((d) => [\n d,\n o({\n opacityVariable: c,\n opacityValue: `var(${c})`\n })\n ]))\n };\n const s = (0, r.parseColor)(o);\n return s === null ? Object.fromEntries(l.map((d) => [\n d,\n o\n ])) : s.alpha !== void 0 ? Object.fromEntries(l.map((d) => [\n d,\n o\n ])) : {\n [c]: \"1\",\n ...Object.fromEntries(l.map((d) => [\n d,\n (0, r.formatColor)({\n ...s,\n alpha: `var(${c})`\n })\n ]))\n };\n }\n})(pe);\nvar ve = {}, Ve = {}, ie = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"splitAtTopLevelOnly\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r, n) {\n let a = [], o = [], i = 0, c = !1;\n for (let l = 0; l < r.length; l++) {\n let s = r[l];\n a.length === 0 && s === n[0] && !c && (n.length === 1 || r.slice(l, l + n.length) === n) && (o.push(r.slice(i, l)), i = l + n.length), c ? c = !1 : s === \"\\\\\" && (c = !0), s === \"(\" || s === \"[\" || s === \"{\" ? a.push(s) : (s === \")\" && a[a.length - 1] === \"(\" || s === \"]\" && a[a.length - 1] === \"[\" || s === \"}\" && a[a.length - 1] === \"{\") && a.pop();\n }\n return o.push(r.slice(i)), o;\n }\n})(ie);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(l, s) {\n for (var d in s)\n Object.defineProperty(l, d, {\n enumerable: !0,\n get: s[d]\n });\n }\n t(e, {\n parseBoxShadowValue: function() {\n return i;\n },\n formatBoxShadowValue: function() {\n return c;\n }\n });\n const r = ie;\n let n = /* @__PURE__ */ new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n ]), a = /\\ +(?![^(]*\\))/g, o = /^-?(\\d+|\\.\\d+)(.*?)$/g;\n function i(l) {\n return (0, r.splitAtTopLevelOnly)(l, \",\").map((d) => {\n let v = d.trim(), h = {\n raw: v\n }, E = v.split(a), y = /* @__PURE__ */ new Set();\n for (let k of E)\n o.lastIndex = 0, !y.has(\"KEYWORD\") && n.has(k) ? (h.keyword = k, y.add(\"KEYWORD\")) : o.test(k) ? y.has(\"X\") ? y.has(\"Y\") ? y.has(\"BLUR\") ? y.has(\"SPREAD\") || (h.spread = k, y.add(\"SPREAD\")) : (h.blur = k, y.add(\"BLUR\")) : (h.y = k, y.add(\"Y\")) : (h.x = k, y.add(\"X\")) : h.color ? (h.unknown || (h.unknown = []), h.unknown.push(k)) : h.color = k;\n return h.valid = h.x !== void 0 && h.y !== void 0, h;\n });\n }\n function c(l) {\n return l.map((s) => s.valid ? [\n s.keyword,\n s.x,\n s.y,\n s.blur,\n s.spread,\n s.color\n ].filter(Boolean).join(\" \") : s.raw).join(\", \");\n }\n})(Ve);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(f, _) {\n for (var F in _)\n Object.defineProperty(f, F, {\n enumerable: !0,\n get: _[F]\n });\n }\n t(e, {\n normalize: function() {\n return s;\n },\n url: function() {\n return v;\n },\n number: function() {\n return h;\n },\n percentage: function() {\n return E;\n },\n length: function() {\n return A;\n },\n lineWidth: function() {\n return L;\n },\n shadow: function() {\n return M;\n },\n color: function() {\n return G;\n },\n image: function() {\n return H;\n },\n gradient: function() {\n return N;\n },\n position: function() {\n return g;\n },\n familyName: function() {\n return D;\n },\n genericName: function() {\n return m;\n },\n absoluteSize: function() {\n return x;\n },\n relativeSize: function() {\n return $;\n }\n });\n const r = ge, n = Ve, a = ie;\n let o = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n ];\n function i(f) {\n return o.some((_) => new RegExp(`^${_}\\\\(.*\\\\)`).test(f));\n }\n const c = \"--tw-placeholder\", l = new RegExp(c, \"g\");\n function s(f, _ = !0) {\n return f.startsWith(\"--\") ? `var(${f})` : f.includes(\"url(\") ? f.split(/(url\\(.*?\\))/g).filter(Boolean).map((F) => /^url\\(.*?\\)$/.test(F) ? F : s(F, !1)).join(\"\") : (f = f.replace(/([^\\\\])_+/g, (F, O) => O + \" \".repeat(F.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\"), _ && (f = f.trim()), f = d(f), f);\n }\n function d(f) {\n return f.replace(/(calc|min|max|clamp)\\(.+\\)/g, (_) => {\n let F = [];\n return _.replace(/var\\((--.+?)[,)]/g, (O, Z) => (F.push(Z), O.replace(Z, c))).replace(/(-?\\d*\\.?\\d(?!\\b-\\d.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \").replace(l, () => F.shift());\n });\n }\n function v(f) {\n return f.startsWith(\"url(\");\n }\n function h(f) {\n return !isNaN(Number(f)) || i(f);\n }\n function E(f) {\n return f.endsWith(\"%\") && h(f.slice(0, -1)) || i(f);\n }\n let k = `(?:${[\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n \"cqw\",\n \"cqh\",\n \"cqi\",\n \"cqb\",\n \"cqmin\",\n \"cqmax\"\n ].join(\"|\")})`;\n function A(f) {\n return f === \"0\" || new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${k}$`).test(f) || i(f);\n }\n let P = /* @__PURE__ */ new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n ]);\n function L(f) {\n return P.has(f);\n }\n function M(f) {\n let _ = (0, n.parseBoxShadowValue)(s(f));\n for (let F of _)\n if (!F.valid)\n return !1;\n return !0;\n }\n function G(f) {\n let _ = 0;\n return (0, a.splitAtTopLevelOnly)(f, \"_\").every((O) => (O = s(O), O.startsWith(\"var(\") ? !0 : (0, r.parseColor)(O, {\n loose: !0\n }) !== null ? (_++, !0) : !1)) ? _ > 0 : !1;\n }\n function H(f) {\n let _ = 0;\n return (0, a.splitAtTopLevelOnly)(f, \",\").every((O) => (O = s(O), O.startsWith(\"var(\") ? !0 : v(O) || N(O) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((Z) => O.startsWith(Z)) ? (_++, !0) : !1)) ? _ > 0 : !1;\n }\n let W = /* @__PURE__ */ new Set([\n \"conic-gradient\",\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-conic-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\"\n ]);\n function N(f) {\n f = s(f);\n for (let _ of W)\n if (f.startsWith(`${_}(`))\n return !0;\n return !1;\n }\n let R = /* @__PURE__ */ new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]);\n function g(f) {\n let _ = 0;\n return (0, a.splitAtTopLevelOnly)(f, \"_\").every((O) => (O = s(O), O.startsWith(\"var(\") ? !0 : R.has(O) || A(O) || E(O) ? (_++, !0) : !1)) ? _ > 0 : !1;\n }\n function D(f) {\n let _ = 0;\n return (0, a.splitAtTopLevelOnly)(f, \",\").every((O) => (O = s(O), O.startsWith(\"var(\") ? !0 : O.includes(\" \") && !/(['\"])([^\"']+)\\1/g.test(O) || /^\\d/g.test(O) ? !1 : (_++, !0))) ? _ > 0 : !1;\n }\n let C = /* @__PURE__ */ new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\"\n ]);\n function m(f) {\n return C.has(f);\n }\n let b = /* @__PURE__ */ new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\"\n ]);\n function x(f) {\n return b.has(f);\n }\n let p = /* @__PURE__ */ new Set([\n \"larger\",\n \"smaller\"\n ]);\n function $(f) {\n return p.has(f);\n }\n})(ve);\nvar qe = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"backgroundSize\", {\n enumerable: !0,\n get: function() {\n return n;\n }\n });\n const t = ve, r = ie;\n function n(a) {\n let o = [\n \"cover\",\n \"contain\"\n ];\n return (0, r.splitAtTopLevelOnly)(a, \",\").every((i) => {\n let c = (0, r.splitAtTopLevelOnly)(i, \"_\").filter(Boolean);\n return c.length === 1 && o.includes(c[0]) ? !0 : c.length !== 1 && c.length !== 2 ? !1 : c.every((l) => (0, t.length)(l) || (0, t.percentage)(l) || l === \"auto\");\n });\n }\n})(qe);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n function t(g, D) {\n for (var C in D)\n Object.defineProperty(g, C, {\n enumerable: !0,\n get: D[C]\n });\n }\n t(e, {\n updateAllClasses: function() {\n return s;\n },\n asValue: function() {\n return h;\n },\n parseColorFormat: function() {\n return k;\n },\n asColor: function() {\n return P;\n },\n asLookupValue: function() {\n return L;\n },\n typeMap: function() {\n return G;\n },\n coerceValue: function() {\n return N;\n },\n getMatchingTypes: function() {\n return R;\n }\n });\n const r = /* @__PURE__ */ l(Ne), n = pe, a = ve, o = /* @__PURE__ */ l(fe), i = qe, c = ne;\n function l(g) {\n return g && g.__esModule ? g : {\n default: g\n };\n }\n function s(g, D) {\n g.walkClasses((C) => {\n C.value = D(C.value), C.raws && C.raws.value && (C.raws.value = (0, r.default)(C.raws.value));\n });\n }\n function d(g, D) {\n if (!E(g))\n return;\n let C = g.slice(1, -1);\n if (D(C))\n return (0, a.normalize)(C);\n }\n function v(g, D = {}, C) {\n let m = D[g];\n if (m !== void 0)\n return (0, o.default)(m);\n if (E(g)) {\n let b = d(g, C);\n return b === void 0 ? void 0 : (0, o.default)(b);\n }\n }\n function h(g, D = {}, { validate: C = () => !0 } = {}) {\n var m;\n let b = (m = D.values) === null || m === void 0 ? void 0 : m[g];\n return b !== void 0 ? b : D.supportsNegativeValues && g.startsWith(\"-\") ? v(g.slice(1), D.values, C) : d(g, C);\n }\n function E(g) {\n return g.startsWith(\"[\") && g.endsWith(\"]\");\n }\n function y(g) {\n let D = g.lastIndexOf(\"/\");\n return D === -1 || D === g.length - 1 ? [\n g,\n void 0\n ] : E(g) && !g.includes(\"]/[\") ? [\n g,\n void 0\n ] : [\n g.slice(0, D),\n g.slice(D + 1)\n ];\n }\n function k(g) {\n if (typeof g == \"string\" && g.includes(\"<alpha-value>\")) {\n let D = g;\n return ({ opacityValue: C = 1 }) => D.replace(\"<alpha-value>\", C);\n }\n return g;\n }\n function A(g) {\n return (0, a.normalize)(g.slice(1, -1));\n }\n function P(g, D = {}, { tailwindConfig: C = {} } = {}) {\n var m;\n if (((m = D.values) === null || m === void 0 ? void 0 : m[g]) !== void 0) {\n var b;\n return k((b = D.values) === null || b === void 0 ? void 0 : b[g]);\n }\n let [x, p] = y(g);\n if (p !== void 0) {\n var $, f, _, F;\n let O = (F = ($ = D.values) === null || $ === void 0 ? void 0 : $[x]) !== null && F !== void 0 ? F : E(x) ? x.slice(1, -1) : void 0;\n return O === void 0 ? void 0 : (O = k(O), E(p) ? (0, n.withAlphaValue)(O, A(p)) : ((f = C.theme) === null || f === void 0 || (_ = f.opacity) === null || _ === void 0 ? void 0 : _[p]) === void 0 ? void 0 : (0, n.withAlphaValue)(O, C.theme.opacity[p]));\n }\n return h(g, D, {\n validate: a.color\n });\n }\n function L(g, D = {}) {\n var C;\n return (C = D.values) === null || C === void 0 ? void 0 : C[g];\n }\n function M(g) {\n return (D, C) => h(D, C, {\n validate: g\n });\n }\n let G = {\n any: h,\n color: P,\n url: M(a.url),\n image: M(a.image),\n length: M(a.length),\n percentage: M(a.percentage),\n position: M(a.position),\n lookup: L,\n \"generic-name\": M(a.genericName),\n \"family-name\": M(a.familyName),\n number: M(a.number),\n \"line-width\": M(a.lineWidth),\n \"absolute-size\": M(a.absoluteSize),\n \"relative-size\": M(a.relativeSize),\n shadow: M(a.shadow),\n size: M(i.backgroundSize)\n }, H = Object.keys(G);\n function W(g, D) {\n let C = g.indexOf(D);\n return C === -1 ? [\n void 0,\n g\n ] : [\n g.slice(0, C),\n g.slice(C + 1)\n ];\n }\n function N(g, D, C, m) {\n if (C.values && D in C.values)\n for (let { type: x } of g != null ? g : []) {\n let p = G[x](D, C, {\n tailwindConfig: m\n });\n if (p !== void 0)\n return [\n p,\n x,\n null\n ];\n }\n if (E(D)) {\n let x = D.slice(1, -1), [p, $] = W(x, \":\");\n if (!/^[\\w-_]+$/g.test(p))\n $ = x;\n else if (p !== void 0 && !H.includes(p))\n return [];\n if ($.length > 0 && H.includes(p))\n return [\n h(`[${$}]`, C),\n p,\n null\n ];\n }\n let b = R(g, D, C, m);\n for (let x of b)\n return x;\n return [];\n }\n function* R(g, D, C, m) {\n let b = (0, c.flagEnabled)(m, \"generalizedModifiers\"), [x, p] = y(D);\n if (b && C.modifiers != null && (C.modifiers === \"any\" || typeof C.modifiers == \"object\" && (p && E(p) || p in C.modifiers)) || (x = D, p = void 0), p !== void 0 && x === \"\" && (x = \"DEFAULT\"), p !== void 0 && typeof C.modifiers == \"object\") {\n var f, _;\n let F = (_ = (f = C.modifiers) === null || f === void 0 ? void 0 : f[p]) !== null && _ !== void 0 ? _ : null;\n F !== null ? p = F : E(p) && (p = A(p));\n }\n for (let { type: F } of g != null ? g : []) {\n let O = G[F](x, C, {\n tailwindConfig: m\n });\n O !== void 0 && (yield [\n O,\n F,\n p != null ? p : null\n ]);\n }\n }\n})(Ue);\nvar Xe = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return t;\n }\n });\n function t(r) {\n return typeof r == \"function\" ? r({}) : r;\n }\n})(Xe);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return C;\n }\n });\n const t = /* @__PURE__ */ E(fe), r = /* @__PURE__ */ E(ze), n = /* @__PURE__ */ E(Pe), a = /* @__PURE__ */ E(he), o = He, i = je, c = Be, l = /* @__PURE__ */ E(We), s = Re, d = Ue, v = pe, h = /* @__PURE__ */ E(Xe);\n function E(m) {\n return m && m.__esModule ? m : {\n default: m\n };\n }\n function y(m) {\n return typeof m == \"function\";\n }\n function k(m, ...b) {\n let x = b.pop();\n for (let p of b)\n for (let $ in p) {\n let f = x(m[$], p[$]);\n f === void 0 ? (0, l.default)(m[$]) && (0, l.default)(p[$]) ? m[$] = k({}, m[$], p[$], x) : m[$] = p[$] : m[$] = f;\n }\n return m;\n }\n const A = {\n colors: a.default,\n negative(m) {\n return Object.keys(m).filter((b) => m[b] !== \"0\").reduce((b, x) => {\n let p = (0, t.default)(m[x]);\n return p !== void 0 && (b[`-${x}`] = p), b;\n }, {});\n },\n breakpoints(m) {\n return Object.keys(m).filter((b) => typeof m[b] == \"string\").reduce((b, x) => ({\n ...b,\n [`screen-${x}`]: m[x]\n }), {});\n }\n };\n function P(m, ...b) {\n return y(m) ? m(...b) : m;\n }\n function L(m) {\n return m.reduce((b, { extend: x }) => k(b, x, (p, $) => p === void 0 ? [\n $\n ] : Array.isArray(p) ? [\n $,\n ...p\n ] : [\n $,\n p\n ]), {});\n }\n function M(m) {\n return {\n ...m.reduce((b, x) => (0, o.defaults)(b, x), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: L(m)\n };\n }\n function G(m, b) {\n if (Array.isArray(m) && (0, l.default)(m[0]))\n return m.concat(b);\n if (Array.isArray(b) && (0, l.default)(b[0]) && (0, l.default)(m))\n return [\n m,\n ...b\n ];\n if (Array.isArray(b))\n return b;\n }\n function H({ extend: m, ...b }) {\n return k(b, m, (x, p) => !y(x) && !p.some(y) ? k({}, x, ...p, G) : ($, f) => k({}, ...[\n x,\n ...p\n ].map((_) => P(_, $, f)), G));\n }\n function* W(m) {\n let b = (0, i.toPath)(m);\n if (b.length === 0 || (yield b, Array.isArray(m)))\n return;\n let x = /^(.*?)\\s*\\/\\s*([^/]+)$/, p = m.match(x);\n if (p !== null) {\n let [, $, f] = p, _ = (0, i.toPath)($);\n _.alpha = f, yield _;\n }\n }\n function N(m) {\n const b = (x, p) => {\n for (const $ of W(x)) {\n let f = 0, _ = m;\n for (; _ != null && f < $.length; )\n _ = _[$[f++]], _ = y(_) && ($.alpha === void 0 || f <= $.length - 1) ? _(b, A) : _;\n if (_ !== void 0) {\n if ($.alpha !== void 0) {\n let F = (0, d.parseColorFormat)(_);\n return (0, v.withAlphaValue)(F, $.alpha, (0, h.default)(F));\n }\n return (0, l.default)(_) ? (0, s.cloneDeep)(_) : _;\n }\n }\n return p;\n };\n return Object.assign(b, {\n theme: b,\n ...A\n }), Object.keys(m).reduce((x, p) => (x[p] = y(m[p]) ? m[p](b, A) : m[p], x), {});\n }\n function R(m) {\n let b = [];\n return m.forEach((x) => {\n b = [\n ...b,\n x\n ];\n var p;\n const $ = (p = x == null ? void 0 : x.plugins) !== null && p !== void 0 ? p : [];\n $.length !== 0 && $.forEach((f) => {\n f.__isOptionsFunction && (f = f());\n var _;\n b = [\n ...b,\n ...R([\n (_ = f == null ? void 0 : f.config) !== null && _ !== void 0 ? _ : {}\n ])\n ];\n });\n }), b;\n }\n function g(m) {\n return [\n ...m\n ].reduceRight((x, p) => y(p) ? p({\n corePlugins: x\n }) : (0, n.default)(p, x), r.default);\n }\n function D(m) {\n return [\n ...m\n ].reduceRight((x, p) => [\n ...x,\n ...p\n ], []);\n }\n function C(m) {\n let b = [\n ...R(m),\n {\n prefix: \"\",\n important: !1,\n separator: \":\"\n }\n ];\n var x, p;\n return (0, c.normalizeConfig)((0, o.defaults)({\n theme: N(H(M(b.map(($) => (x = $ == null ? void 0 : $.theme) !== null && x !== void 0 ? x : {})))),\n corePlugins: g(b.map(($) => $.corePlugins)),\n plugins: D(m.map(($) => (p = $ == null ? void 0 : $.plugins) !== null && p !== void 0 ? p : []))\n }, ...b));\n }\n})(Me);\nvar Ye = {}, ct = {\n content: [],\n presets: [],\n darkMode: \"media\",\n // or 'class'\n theme: {\n accentColor: ({ theme: e }) => ({\n ...e(\"colors\"),\n auto: \"auto\"\n }),\n animation: {\n none: \"none\",\n spin: \"spin 1s linear infinite\",\n ping: \"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",\n pulse: \"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n bounce: \"bounce 1s infinite\"\n },\n aria: {\n busy: 'busy=\"true\"',\n checked: 'checked=\"true\"',\n disabled: 'disabled=\"true\"',\n expanded: 'expanded=\"true\"',\n hidden: 'hidden=\"true\"',\n pressed: 'pressed=\"true\"',\n readonly: 'readonly=\"true\"',\n required: 'required=\"true\"',\n selected: 'selected=\"true\"'\n },\n aspectRatio: {\n auto: \"auto\",\n square: \"1 / 1\",\n video: \"16 / 9\"\n },\n backdropBlur: ({ theme: e }) => e(\"blur\"),\n backdropBrightness: ({ theme: e }) => e(\"brightness\"),\n backdropContrast: ({ theme: e }) => e(\"contrast\"),\n backdropGrayscale: ({ theme: e }) => e(\"grayscale\"),\n backdropHueRotate: ({ theme: e }) => e(\"hueRotate\"),\n backdropInvert: ({ theme: e }) => e(\"invert\"),\n backdropOpacity: ({ theme: e }) => e(\"opacity\"),\n backdropSaturate: ({ theme: e }) => e(\"saturate\"),\n backdropSepia: ({ theme: e }) => e(\"sepia\"),\n backgroundColor: ({ theme: e }) => e(\"colors\"),\n backgroundImage: {\n none: \"none\",\n \"gradient-to-t\": \"linear-gradient(to top, var(--tw-gradient-stops))\",\n \"gradient-to-tr\": \"linear-gradient(to top right, var(--tw-gradient-stops))\",\n \"gradient-to-r\": \"linear-gradient(to right, var(--tw-gradient-stops))\",\n \"gradient-to-br\": \"linear-gradient(to bottom right, var(--tw-gradient-stops))\",\n \"gradient-to-b\": \"linear-gradient(to bottom, var(--tw-gradient-stops))\",\n \"gradient-to-bl\": \"linear-gradient(to bottom left, var(--tw-gradient-stops))\",\n \"gradient-to-l\": \"linear-gradient(to left, var(--tw-gradient-stops))\",\n \"gradient-to-tl\": \"linear-gradient(to top left, var(--tw-gradient-stops))\"\n },\n backgroundOpacity: ({ theme: e }) => e(\"opacity\"),\n backgroundPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\"\n },\n backgroundSize: {\n auto: \"auto\",\n cover: \"cover\",\n contain: \"contain\"\n },\n blur: {\n 0: \"0\",\n none: \"0\",\n sm: \"4px\",\n DEFAULT: \"8px\",\n md: \"12px\",\n lg: \"16px\",\n xl: \"24px\",\n \"2xl\": \"40px\",\n \"3xl\": \"64px\"\n },\n borderColor: ({ theme: e }) => ({\n ...e(\"colors\"),\n DEFAULT: e(\"colors.gray.200\", \"currentColor\")\n }),\n borderOpacity: ({ theme: e }) => e(\"opacity\"),\n borderRadius: {\n none: \"0px\",\n sm: \"0.125rem\",\n DEFAULT: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\"\n },\n borderSpacing: ({ theme: e }) => ({\n ...e(\"spacing\")\n }),\n borderWidth: {\n DEFAULT: \"1px\",\n 0: \"0px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n boxShadow: {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n DEFAULT: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n none: \"none\"\n },\n boxShadowColor: ({ theme: e }) => e(\"colors\"),\n brightness: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\"\n },\n caretColor: ({ theme: e }) => e(\"colors\"),\n colors: ({ colors: e }) => ({\n inherit: e.inherit,\n current: e.current,\n transparent: e.transparent,\n black: e.black,\n white: e.white,\n slate: e.slate,\n gray: e.gray,\n zinc: e.zinc,\n neutral: e.neutral,\n stone: e.stone,\n red: e.red,\n orange: e.orange,\n amber: e.amber,\n yellow: e.yellow,\n lime: e.lime,\n green: e.green,\n emerald: e.emerald,\n teal: e.teal,\n cyan: e.cyan,\n sky: e.sky,\n blue: e.blue,\n indigo: e.indigo,\n violet: e.violet,\n purple: e.purple,\n fuchsia: e.fuchsia,\n pink: e.pink,\n rose: e.rose\n }),\n columns: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n \"3xs\": \"16rem\",\n \"2xs\": \"18rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\"\n },\n container: {},\n content: {\n none: \"none\"\n },\n contrast: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 100: \"1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\"\n },\n cursor: {\n auto: \"auto\",\n default: \"default\",\n pointer: \"pointer\",\n wait: \"wait\",\n text: \"text\",\n move: \"move\",\n help: \"help\",\n \"not-allowed\": \"not-allowed\",\n none: \"none\",\n \"context-menu\": \"context-menu\",\n progress: \"progress\",\n cell: \"cell\",\n crosshair: \"crosshair\",\n \"vertical-text\": \"vertical-text\",\n alias: \"alias\",\n copy: \"copy\",\n \"no-drop\": \"no-drop\",\n grab: \"grab\",\n grabbing: \"grabbing\",\n \"all-scroll\": \"all-scroll\",\n \"col-resize\": \"col-resize\",\n \"row-resize\": \"row-resize\",\n \"n-resize\": \"n-resize\",\n \"e-resize\": \"e-resize\",\n \"s-resize\": \"s-resize\",\n \"w-resize\": \"w-resize\",\n \"ne-resize\": \"ne-resize\",\n \"nw-resize\": \"nw-resize\",\n \"se-resize\": \"se-resize\",\n \"sw-resize\": \"sw-resize\",\n \"ew-resize\": \"ew-resize\",\n \"ns-resize\": \"ns-resize\",\n \"nesw-resize\": \"nesw-resize\",\n \"nwse-resize\": \"nwse-resize\",\n \"zoom-in\": \"zoom-in\",\n \"zoom-out\": \"zoom-out\"\n },\n divideColor: ({ theme: e }) => e(\"borderColor\"),\n divideOpacity: ({ theme: e }) => e(\"borderOpacity\"),\n divideWidth: ({ theme: e }) => e(\"borderWidth\"),\n dropShadow: {\n sm: \"0 1px 1px rgb(0 0 0 / 0.05)\",\n DEFAULT: [\"0 1px 2px rgb(0 0 0 / 0.1)\", \"0 1px 1px rgb(0 0 0 / 0.06)\"],\n md: [\"0 4px 3px rgb(0 0 0 / 0.07)\", \"0 2px 2px rgb(0 0 0 / 0.06)\"],\n lg: [\"0 10px 8px rgb(0 0 0 / 0.04)\", \"0 4px 3px rgb(0 0 0 / 0.1)\"],\n xl: [\"0 20px 13px rgb(0 0 0 / 0.03)\", \"0 8px 5px rgb(0 0 0 / 0.08)\"],\n \"2xl\": \"0 25px 25px rgb(0 0 0 / 0.15)\",\n none: \"0 0 #0000\"\n },\n fill: ({ theme: e }) => ({\n none: \"none\",\n ...e(\"colors\")\n }),\n flex: {\n 1: \"1 1 0%\",\n auto: \"1 1 auto\",\n initial: \"0 1 auto\",\n none: \"none\"\n },\n flexBasis: ({ theme: e }) => ({\n auto: \"auto\",\n ...e(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\"\n }),\n flexGrow: {\n 0: \"0\",\n DEFAULT: \"1\"\n },\n flexShrink: {\n 0: \"0\",\n DEFAULT: \"1\"\n },\n fontFamily: {\n sans: [\n \"ui-sans-serif\",\n \"system-ui\",\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n \"Roboto\",\n '\"Helvetica Neue\"',\n \"Arial\",\n '\"Noto Sans\"',\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"'\n ],\n serif: [\"ui-serif\", \"Georgia\", \"Cambria\", '\"Times New Roman\"', \"Times\", \"serif\"],\n mono: [\n \"ui-monospace\",\n \"SFMono-Regular\",\n \"Menlo\",\n \"Monaco\",\n \"Consolas\",\n '\"Liberation Mono\"',\n '\"Courier New\"',\n \"monospace\"\n ]\n },\n fontSize: {\n xs: [\"0.75rem\", { lineHeight: \"1rem\" }],\n sm: [\"0.875rem\", { lineHeight: \"1.25rem\" }],\n base: [\"1rem\", { lineHeight: \"1.5rem\" }],\n lg: [\"1.125rem\", { lineHeight: \"1.75rem\" }],\n xl: [\"1.25rem\", { lineHeight: \"1.75rem\" }],\n \"2xl\": [\"1.5rem\", { lineHeight: \"2rem\" }],\n \"3xl\": [\"1.875rem\", { lineHeight: \"2.25rem\" }],\n \"4xl\": [\"2.25rem\", { lineHeight: \"2.5rem\" }],\n \"5xl\": [\"3rem\", { lineHeight: \"1\" }],\n \"6xl\": [\"3.75rem\", { lineHeight: \"1\" }],\n \"7xl\": [\"4.5rem\", { lineHeight: \"1\" }],\n \"8xl\": [\"6rem\", { lineHeight: \"1\" }],\n \"9xl\": [\"8rem\", { lineHeight: \"1\" }]\n },\n fontWeight: {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\"\n },\n gap: ({ theme: e }) => e(\"spacing\"),\n gradientColorStops: ({ theme: e }) => e(\"colors\"),\n gradientColorStopPositions: {\n \"0%\": \"0%\",\n \"5%\": \"5%\",\n \"10%\": \"10%\",\n \"15%\": \"15%\",\n \"20%\": \"20%\",\n \"25%\": \"25%\",\n \"30%\": \"30%\",\n \"35%\": \"35%\",\n \"40%\": \"40%\",\n \"45%\": \"45%\",\n \"50%\": \"50%\",\n \"55%\": \"55%\",\n \"60%\": \"60%\",\n \"65%\": \"65%\",\n \"70%\": \"70%\",\n \"75%\": \"75%\",\n \"80%\": \"80%\",\n \"85%\": \"85%\",\n \"90%\": \"90%\",\n \"95%\": \"95%\",\n \"100%\": \"100%\"\n },\n grayscale: {\n 0: \"0\",\n DEFAULT: \"100%\"\n },\n gridAutoColumns: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\"\n },\n gridAutoRows: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\"\n },\n gridColumn: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\"\n },\n gridColumnEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\"\n },\n gridColumnStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\"\n },\n gridRow: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-full\": \"1 / -1\"\n },\n gridRowEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\"\n },\n gridRowStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\"\n },\n gridTemplateColumns: {\n none: \"none\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\"\n },\n gridTemplateRows: {\n none: \"none\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\"\n },\n height: ({ theme: e }) => ({\n auto: \"auto\",\n ...e(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n full: \"100%\",\n screen: \"100vh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n hueRotate: {\n 0: \"0deg\",\n 15: \"15deg\",\n 30: \"30deg\",\n 60: \"60deg\",\n 90: \"90deg\",\n 180: \"180deg\"\n },\n inset: ({ theme: e }) => ({\n auto: \"auto\",\n ...e(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\"\n }),\n invert: {\n 0: \"0\",\n DEFAULT: \"100%\"\n },\n keyframes: {\n spin: {\n to: {\n transform: \"rotate(360deg)\"\n }\n },\n ping: {\n \"75%, 100%\": {\n transform: \"scale(2)\",\n opacity: \"0\"\n }\n },\n pulse: {\n \"50%\": {\n opacity: \".5\"\n }\n },\n bounce: {\n \"0%, 100%\": {\n transform: \"translateY(-25%)\",\n animationTimingFunction: \"cubic-bezier(0.8,0,1,1)\"\n },\n \"50%\": {\n transform: \"none\",\n animationTimingFunction: \"cubic-bezier(0,0,0.2,1)\"\n }\n }\n },\n letterSpacing: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\"\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\"\n },\n listStyleType: {\n none: \"none\",\n disc: \"disc\",\n decimal: \"decimal\"\n },\n listStyleImage: {\n none: \"none\"\n },\n margin: ({ theme: e }) => ({\n auto: \"auto\",\n ...e(\"spacing\")\n }),\n lineClamp: {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\"\n },\n maxHeight: ({ theme: e }) => ({\n ...e(\"spacing\"),\n none: \"none\",\n full: \"100%\",\n screen: \"100vh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n maxWidth: ({ theme: e, breakpoints: t }) => ({\n none: \"none\",\n 0: \"0rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n prose: \"65ch\",\n ...t(e(\"screens\"))\n }),\n minHeight: {\n 0: \"0px\",\n full: \"100%\",\n screen: \"100vh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n },\n minWidth: {\n 0: \"0px\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n },\n objectPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\"\n },\n opacity: {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 40: \"0.4\",\n 50: \"0.5\",\n 60: \"0.6\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\"\n },\n order: {\n first: \"-9999\",\n last: \"9999\",\n none: \"0\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\"\n },\n outlineColor: ({ theme: e }) => e(\"colors\"),\n outlineOffset: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n outlineWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n padding: ({ theme: e }) => e(\"spacing\"),\n placeholderColor: ({ theme: e }) => e(\"colors\"),\n placeholderOpacity: ({ theme: e }) => e(\"opacity\"),\n ringColor: ({ theme: e }) => ({\n DEFAULT: e(\"colors.blue.500\", \"#3b82f6\"),\n ...e(\"colors\")\n }),\n ringOffsetColor: ({ theme: e }) => e(\"colors\"),\n ringOffsetWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n ringOpacity: ({ theme: e }) => ({\n DEFAULT: \"0.5\",\n ...e(\"opacity\")\n }),\n ringWidth: {\n DEFAULT: \"3px\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n rotate: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\",\n 45: \"45deg\",\n 90: \"90deg\",\n 180: \"180deg\"\n },\n saturate: {\n 0: \"0\",\n 50: \".5\",\n 100: \"1\",\n 150: \"1.5\",\n 200: \"2\"\n },\n scale: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\"\n },\n screens: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\"\n },\n scrollMargin: ({ theme: e }) => ({\n ...e(\"spacing\")\n }),\n scrollPadding: ({ theme: e }) => e(\"spacing\"),\n sepia: {\n 0: \"0\",\n DEFAULT: \"100%\"\n },\n skew: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\"\n },\n space: ({ theme: e }) => ({\n ...e(\"spacing\")\n }),\n spacing: {\n px: \"1px\",\n 0: \"0px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\"\n },\n stroke: ({ theme: e }) => ({\n none: \"none\",\n ...e(\"colors\")\n }),\n strokeWidth: {\n 0: \"0\",\n 1: \"1\",\n 2: \"2\"\n },\n supports: {},\n data: {},\n textColor: ({ theme: e }) => e(\"colors\"),\n textDecorationColor: ({ theme: e }) => e(\"colors\"),\n textDecorationThickness: {\n auto: \"auto\",\n \"from-font\": \"from-font\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n textIndent: ({ theme: e }) => ({\n ...e(\"spacing\")\n }),\n textOpacity: ({ theme: e }) => e(\"opacity\"),\n textUnderlineOffset: {\n auto: \"auto\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\"\n },\n transformOrigin: {\n center: \"center\",\n top: \"top\",\n \"top-right\": \"top right\",\n right: \"right\",\n \"bottom-right\": \"bottom right\",\n bottom: \"bottom\",\n \"bottom-left\": \"bottom left\",\n left: \"left\",\n \"top-left\": \"top left\"\n },\n transitionDelay: {\n 0: \"0s\",\n 75: \"75ms\",\n 100: \"100ms\",\n 150: \"150ms\",\n 200: \"200ms\",\n 300: \"300ms\",\n 500: \"500ms\",\n 700: \"700ms\",\n 1e3: \"1000ms\"\n },\n transitionDuration: {\n DEFAULT: \"150ms\",\n 0: \"0s\",\n 75: \"75ms\",\n 100: \"100ms\",\n 150: \"150ms\",\n 200: \"200ms\",\n 300: \"300ms\",\n 500: \"500ms\",\n 700: \"700ms\",\n 1e3: \"1000ms\"\n },\n transitionProperty: {\n none: \"none\",\n all: \"all\",\n DEFAULT: \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter\",\n colors: \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n opacity: \"opacity\",\n shadow: \"box-shadow\",\n transform: \"transform\"\n },\n transitionTimingFunction: {\n DEFAULT: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n \"in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n },\n translate: ({ theme: e }) => ({\n ...e(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\"\n }),\n width: ({ theme: e }) => ({\n auto: \"auto\",\n ...e(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n screen: \"100vw\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\"\n }),\n willChange: {\n auto: \"auto\",\n scroll: \"scroll-position\",\n contents: \"contents\",\n transform: \"transform\"\n },\n zIndex: {\n auto: \"auto\",\n 0: \"0\",\n 10: \"10\",\n 20: \"20\",\n 30: \"30\",\n 40: \"40\",\n 50: \"50\"\n }\n },\n plugins: []\n};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return a;\n }\n });\n const t = /* @__PURE__ */ n(ct), r = ne;\n function n(o) {\n return o && o.__esModule ? o : {\n default: o\n };\n }\n function a(o) {\n var i;\n const c = ((i = o == null ? void 0 : o.presets) !== null && i !== void 0 ? i : [\n t.default\n ]).slice().reverse().flatMap((d) => a(d instanceof Function ? d() : d)), l = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: ({ theme: d }) => ({\n DEFAULT: \"#3b82f67f\",\n ...d(\"colors\")\n })\n }\n },\n disableColorOpacityUtilitiesByDefault: {\n corePlugins: {\n backgroundOpacity: !1,\n borderOpacity: !1,\n divideOpacity: !1,\n placeholderOpacity: !1,\n ringOpacity: !1,\n textOpacity: !1\n }\n }\n }, s = Object.keys(l).filter((d) => (0, r.flagEnabled)(o, d)).map((d) => l[d]);\n return [\n o,\n ...s,\n ...c\n ];\n }\n})(Ye);\n(function(e) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), Object.defineProperty(e, \"default\", {\n enumerable: !0,\n get: function() {\n return a;\n }\n });\n const t = /* @__PURE__ */ n(Me), r = /* @__PURE__ */ n(Ye);\n function n(o) {\n return o && o.__esModule ? o : {\n default: o\n };\n }\n function a(...o) {\n let [, ...i] = (0, r.default)(o[0]);\n return (0, t.default)([\n ...o,\n ...i\n ]);\n }\n})(Fe);\nlet se = Fe;\nvar dt = (se.__esModule ? se : { default: se }).default;\nconst ft = /* @__PURE__ */ ut(dt);\nlet ae = he;\nvar U = (ae.__esModule ? ae : { default: ae }).default;\nconst ht = {\n 50: \"#FCE3E4\",\n 100: \"#F9CDCE\",\n 200: \"#F39699\",\n 300: \"#ED6368\",\n 400: \"#E72C32\",\n 500: \"#C4161C\",\n 600: \"#9C1216\",\n 700: \"#770D11\",\n 800: \"#4E090B\",\n 900: \"#290506\"\n}, B = {\n onprimary: U.white,\n warning: U.amber,\n error: U.rose,\n info: U.cyan,\n success: U.lime,\n primary: U.sky,\n brand: ht\n}, mt = {\n ...B,\n // Warning\n warning: B.warning[500],\n \"warning-darken\": B.warning[600],\n \"warning-lighten\": B.warning[400],\n // Success\n success: B.success[500],\n \"success-darken\": B.success[600],\n \"success-lighten\": B.success[400],\n // Error\n error: B.error[500],\n \"error-darken\": B.error[600],\n \"error-lighten\": B.error[400],\n // Info\n info: B.info[500],\n \"info-darken\": B.info[600],\n \"info-lighten\": B.info[400],\n // Primary\n primary: B.primary[500],\n \"primary-darken\": B.primary[600],\n \"primary-lighten\": B.primary[400],\n // Surfaces\n onsurface: U.slate[500],\n onbackground: U.slate[700],\n surface: U.slate[50],\n background: U.white\n}, pt = {\n prefix: \"e-\",\n corePlugins: {\n preflight: !1\n },\n content: [\"./src/**/*.{html,js,vue,ts}\"],\n theme: {\n extend: {\n colors: mt,\n maxWidth: {\n \"1/12\": \"8.333333333%\",\n \"2/12\": \"16.666666666%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333333%\",\n \"5/12\": \"41.666666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333334%\",\n \"8/12\": \"66.666666666%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333334%\",\n \"11/12\": \"91.666666666%\",\n \"12/12\": \"100%\"\n }\n },\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\"\n }\n },\n plugins: [],\n safelist: [\n {\n pattern: /e-w-(full|auto)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"]\n },\n {\n pattern: /e-grow/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"]\n },\n {\n pattern: /e-basis-(\\d{1,2}\\/\\d{1,2}|full|auto|0)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"]\n },\n {\n pattern: /^!?e-max-w-(\\d{1,2}\\/\\d{1,2})/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"]\n },\n {\n pattern: /e-offset-(1[0-2]|[1-9])/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"]\n },\n {\n pattern: /e-items-(start|center|end|baseline|stretch)/\n },\n {\n pattern: /e-self-(start|center|end|baseline|stretch)/\n },\n {\n pattern: /e-justify-(around|between|center|end|evenly|normal|start|stretch)/,\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"]\n },\n {\n pattern: /e-content-(around|baseline|between|center|end|evenly|normal|start|stretch)/\n }\n ]\n}, Ze = ft(pt), gt = Ze.theme.fontSize, vt = Ze.theme.colors, er = [\n T.dot,\n T.xs,\n T.sm,\n T.md,\n T.lg,\n T.xl\n], tr = [\n T.xs,\n T.sm,\n T.md,\n T.lg,\n T.xl,\n T[\"2xl\"]\n], yt = [\n T.xs,\n T.sm,\n T.md,\n T.base,\n T.lg,\n T.xl,\n T[\"2xl\"],\n T[\"3xl\"],\n T[\"4xl\"],\n T[\"5xl\"],\n T[\"6xl\"],\n T[\"7xl\"],\n T[\"8xl\"],\n T[\"9xl\"]\n], rr = [\n j.warning,\n j.error,\n j.info,\n j.success,\n j.primary,\n j.default\n], nr = [\n \"play\",\n \"pause\",\n \"ended\",\n \"loadeddata\",\n \"waiting\",\n \"playing\",\n \"timeupdate\",\n \"canplay\",\n \"canplaythrough\",\n \"statechanged\"\n], bt = V.extend({\n name: \"EIcon\",\n props: {\n icon: {\n type: String,\n default: \"\"\n },\n color: {\n type: String,\n default: j.default\n },\n size: {\n type: String,\n default: T.sm\n }\n },\n computed: {\n sizes() {\n return yt.reduce((e, t) => ({\n ...e,\n [t]: `e-text-${t}`\n }), {});\n },\n iconClasses() {\n var n, a;\n const e = this.sizes[this.size] || this.sizes[T.sm], t = `${((a = (n = this.icon) == null ? void 0 : n.split(\" \")) == null ? void 0 : a.length) > 1 ? this.icon : `fa fa-${this.icon}`}`;\n return [\n \"e-inline-flex e-items-center e-justify-center e-rounded-full\",\n this.color,\n t,\n e\n ];\n }\n }\n});\nvar xt = function() {\n var t = this, r = t._self._c;\n return r(\"div\", { staticClass: \"e-icon\" }, [r(\"i\", { class: t.iconClasses })]);\n}, _t = [], wt = /* @__PURE__ */ q(\n bt,\n xt,\n _t,\n !1,\n null,\n null,\n null,\n null\n);\nconst Ct = wt.exports, St = V.extend({\n name: \"ESpinner\",\n props: {\n dark: {\n type: Boolean,\n default: !1\n },\n color: {\n type: Boolean,\n default: !0\n },\n animationDuration: {\n type: [Number, String],\n default: 1e3\n },\n size: {\n type: String,\n default: T.base\n },\n opacity: {\n type: [String, Number],\n default: 1\n }\n },\n data() {\n return {\n sizes: gt,\n colors: vt\n };\n },\n computed: {\n computedSize() {\n return this.sizes[T[this.size]] || this.size || this.sizes[T.base];\n },\n fill() {\n let e = {\n primary: this.colors.brand[500],\n secondary: this.colors.neutral[300]\n };\n return this.dark && !this.color && (e = {\n primary: this.colors.neutral[100],\n secondary: this.colors.neutral[100]\n }), !this.dark && this.color && (e = {\n primary: this.colors.brand[500],\n secondary: this.colors.neutral[950]\n }), !this.dark && !this.color && (e = {\n primary: this.colors.neutral[200],\n secondary: this.colors.neutral[200]\n }), e;\n }\n },\n methods: {\n getNthPathStyle(e) {\n const t = typeof this.animationDuration == \"string\" ? Number.parseInt(this.animationDuration) : this.animationDuration;\n return {\n animationDuration: `${this.animationDuration}ms`,\n animationDelay: `${e / 10 * t}ms`,\n fill: `${this.fill[e % 2 === 0 ? \"primary\" : \"secondary\"]}`\n };\n }\n }\n});\nvar Tt = function() {\n var t = this, r = t._self._c;\n return r(\"svg\", { staticClass: \"e-spinner e-block\", class: {\n \"e-spinner--dark\": t.dark,\n \"e-spinner--grey\": !t.color\n }, style: { opacity: t.opacity }, attrs: { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 1629.32 1608.86\", width: t.computedSize, height: t.computedSize } }, [r(\"path\", { staticClass: \"e-spinner__primary\", style: t.getNthPathStyle(0), attrs: { d: \"m1254.12,591.61C992.01,401.11,439.78,0,439.78,0h601.2c14.3,0,48.95,9.02,62.54,38.01,55.27,117.88,111.32,235.46,170.48,351.43,33.16,70.9-8.99,170.35-19.87,202.16\" } }), r(\"path\", { staticClass: \"e-spinner__secondary\", style: t.getNthPathStyle(1), attrs: { d: \"m1404.65,131.67c-29.37,89.94-55.8,170.95-82.25,251.93-4.05.87-8.1,1.73-12.15,2.61-40.61-83.95-81.21-167.9-123.12-254.54h217.51Z\" } }), r(\"path\", { staticClass: \"e-spinner__primary\", style: t.getNthPathStyle(2), attrs: { d: \"m1129.06,1093.51c100.75-307.98,312.75-956.75,312.75-956.75,0,0,180.36,558.53,184.75,572.14,4.39,13.59,6.45,49.34-16.96,71.19-95.21,88.81-189.88,178.28-282.06,270.2-57.29,53.34-164.86,43.8-198.48,43.21\" } }), r(\"path\", { staticClass: \"e-spinner__secondary\", style: t.getNthPathStyle(3), attrs: { d: \"m1342.3,1083.06c66.6-63.43,133.22-126.86,207.93-197.98,21.51,73.55,40.3,137.81,60.64,207.37h-263.35c-1.75-3.13-3.48-6.27-5.22-9.39\" } }), r(\"path\", { staticClass: \"e-spinner__primary\", style: t.getNthPathStyle(4), attrs: { d: \"m610.27,1137.17c324.03-.53,1006.55-1.85,1006.55-1.85,0,0-474.19,345.83-485.74,354.25-11.55,8.42-44.87,21.56-72.94,6.14-114.11-62.68-228.69-124.66-344.81-183.5-68.56-37.76-93.12-142.93-103.06-175.04\" } }), r(\"path\", { staticClass: \"e-spinner__secondary\", style: t.getNthPathStyle(5), attrs: { d: \"m938.58,1468.29c-62.81,42.58-118.35,80.24-180.28,122.23-28.35-87.22-54.62-168.03-80.89-248.86,2.62-2.92,5.26-5.85,7.9-8.76,81.89,43.78,163.79,87.56,253.26,135.39\" } }), r(\"path\", { staticClass: \"e-spinner__primary\", style: t.getNthPathStyle(6), attrs: { d: \"m413.07,652.86c101.35,307.77,314.99,956,314.99,956,0,0-476.23-343.04-487.83-351.39-11.58-8.36-34.44-35.93-28.52-67.4,24.07-127.96,47.3-256.13,67.09-384.8,14.54-76.9,106.84-132.96,134.28-152.42\" } }), r(\"path\", { staticClass: \"e-spinner__secondary\", style: t.getNthPathStyle(7), attrs: { d: \"m197.48,1068.8c-62.36-47.73-115.99-88.79-176.78-135.33,75.54-54.91,146.18-106.24,216.83-157.57,3.73,2.24,7.45,4.47,11.19,6.71-16.36,91.3-32.7,182.61-51.25,286.19\" } }), r(\"path\", { staticClass: \"e-spinner__primary\", style: t.getNthPathStyle(8), attrs: { d: \"m813.58,314.41C551.63,505.15,0,907.07,0,907.07c0,0,180.68-558.4,185.09-572.01,4.39-13.59,23.65-43.78,55.41-47.8,129.19-16.29,258.32-33.41,386.86-53.99,77.67-9.72,159.3,60.97,186.22,81.13\" } }), r(\"path\", { staticClass: \"e-spinner__secondary\", style: t.getNthPathStyle(9), attrs: { d: \"m635.14,199.78c-91.99,12.38-183.97,24.77-288.07,38.76,25.77-73.18,48.3-137.14,73.8-209.53,76.56,55.41,147.27,106.58,217.97,157.75-1.23,4.34-2.46,8.68-3.69,13.02\" } })]);\n}, Et = [], $t = /* @__PURE__ */ q(\n St,\n Tt,\n Et,\n !1,\n null,\n \"f6962f4a\",\n null,\n null\n);\nconst Ke = $t.exports, Dt = V.extend({\n props: {\n align: {\n type: String,\n default: void 0\n },\n alignContent: {\n type: String,\n default: void 0\n },\n justify: {\n type: String,\n default: void 0\n },\n justifyXs: {\n type: String,\n default: void 0\n },\n justifySm: {\n type: String,\n default: void 0\n },\n justifyMd: {\n type: String,\n default: void 0\n },\n justifyLg: {\n type: String,\n default: void 0\n },\n justifyXl: {\n type: String,\n default: void 0\n },\n noGutters: {\n type: Boolean,\n default: !1\n }\n },\n computed: {\n justifyClasses() {\n return {\n [`e-justify-${this.justify}`]: !!this.justify,\n [`xs:e-justify-${this.justifySm}`]: !!this.justifySm,\n [`sm:e-justify-${this.justifySm}`]: !!this.justifySm,\n [`md:e-justify-${this.justifyMd}`]: !!this.justifyMd,\n [`lg:e-justify-${this.justifyLg}`]: !!this.justifyLg,\n [`xl:e-justify-${this.justifyXl}`]: !!this.justifyXl\n };\n },\n rowClasses() {\n return {\n ...this.align ? { [`e-items-${this.align}`]: !0 } : {},\n ...this.alignContent ? { [`e-content-${this.alignContent}`]: !0 } : {},\n ...this.noGutters ? { \"e-row--no-gutters\": !0 } : {},\n ...this.justifyClasses\n };\n }\n }\n});\nvar kt = function() {\n var t = this, r = t._self._c;\n return t._self._setupProxy, r(\"div\", { staticClass: \"e-row e-flex e-flex-wrap\", class: t.rowClasses }, [t._t(\"default\")], 2);\n}, Ot = [], At = /* @__PURE__ */ q(\n Dt,\n kt,\n Ot,\n !1,\n null,\n null,\n null,\n null\n);\nconst Ft = At.exports, Mt = V.extend({\n props: {\n alignSelf: {\n type: String,\n default: \"auto\"\n },\n cols: {\n type: [Boolean, String, Number],\n default: void 0\n },\n lg: {\n type: [Boolean, String, Number],\n default: void 0\n },\n md: {\n type: [Boolean, String, Number],\n default: void 0\n },\n offset: {\n type: [String, Number],\n default: void 0\n },\n offsetLg: {\n type: [String, Number],\n default: void 0\n },\n offsetMd: {\n type: [String, Number],\n default: void 0\n },\n offsetSm: {\n type: [String, Number],\n default: void 0\n },\n offsetXs: {\n type: [String, Number],\n default: void 0\n },\n offsetXl: {\n type: [String, Number],\n default: void 0\n },\n sm: {\n type: [Boolean, String, Number],\n default: void 0\n },\n xs: {\n type: [Boolean, String, Number],\n default: void 0\n },\n xl: {\n type: [Boolean, String, Number],\n default: void 0\n }\n },\n computed: {\n colClasses() {\n return {\n // Align self\n ...this.alignSelf ? { [`e-self-${this.alignSelf}`]: !0 } : {},\n // cols=\"auto\"\n [this.autoClasses(\"xs:\", this.xs)]: this.isSizePropAuto(this.xs),\n [this.autoClasses(\"sm:\", this.sm)]: this.isSizePropAuto(this.sm),\n [this.autoClasses(\"md:\", this.md)]: this.isSizePropAuto(this.md),\n [this.autoClasses(\"lg:\", this.lg)]: this.isSizePropAuto(this.lg),\n [this.autoClasses(\"xl:e\", this.xl)]: this.isSizePropAuto(this.xl),\n [this.autoClasses(\"\", this.cols)]: this.isSizePropAuto(this.cols, !0),\n // cols=\"12\"\n \"xs:e-basis-full xs:!e-max-w-12/12\": this.xs === 12 || this.xs === \"12\",\n \"sm:e-basis-full sm:!e-max-w-12/12\": this.sm === 12 || this.sm === \"12\",\n \"md:e-basis-full md:!e-max-w-12/12\": this.md === 12 || this.md === \"12\",\n \"lg:e-basis-full lg:!e-max-w-12/12\": this.lg === 12 || this.lg === \"12\",\n \"xl:e-basis-full xl:!e-max-w-12/12\": this.xl === 12 || this.xl === \"12\",\n \"e-basis-full e-max-w-12/12\": this.cols === 12 || this.cols === \"12\",\n // cols=\"n\"\n [`xs:e-basis-${this.xs}/12 xs:!e-max-w-${this.xs}/12`]: this.isSizePropertyNumeric(this.xs),\n [`sm:e-basis-${this.sm}/12 sm:!e-max-w-${this.sm}/12`]: this.isSizePropertyNumeric(this.sm),\n [`md:e-basis-${this.md}/12 md:!e-max-w-${this.md}/12`]: this.isSizePropertyNumeric(this.md),\n [`lg:e-basis-${this.lg}/12 lg:!e-max-w-${this.lg}/12`]: this.isSizePropertyNumeric(this.lg),\n [`xl:e-basis-${this.xl}/12 xl:!e-max-w-${this.xl}/12`]: this.isSizePropertyNumeric(this.xl),\n [`e-basis-${this.cols}/12 !e-max-w-${this.cols}/12`]: this.isSizePropertyNumeric(this.cols),\n // offset=\"n\"\n [`xs:e-offset-${this.offsetXs}`]: this.offsetXs !== void 0,\n [`sm:e-offset-${this.offsetSm}`]: this.offsetSm !== void 0,\n [`md:e-offset-${this.offsetMd}`]: this.offsetMd !== void 0,\n [`lg:e-offset-${this.offsetLg}`]: this.offsetLg !== void 0,\n [`xl:e-offset-${this.offsetXl}`]: this.offsetXl !== void 0,\n [`e-offset-${this.offset}`]: this.offset !== void 0\n };\n }\n },\n methods: {\n autoClasses(e, t) {\n return `${e}e-basis-${t === \"auto\" ? \"auto\" : \"0\"} ${e}e-grow${t === \"auto\" ? \"-0\" : \"\"} ${e}e-w-${t === \"auto\" ? \"auto\" : \"full\"}`;\n },\n isSizePropAuto(e, t = !1) {\n return e === \"auto\" || e === 0 || e === \"0\" || t && !e;\n },\n isSizePropertyNumeric(e) {\n const t = Number.parseInt(e);\n return e !== \"auto\" && !isNaN(t) && t >= 1 && t < 12;\n }\n }\n});\nvar zt = function() {\n var t = this, r = t._self._c;\n return r(\"div\", { staticClass: \"e-col\", class: t.colClasses }, [t._t(\"default\")], 2);\n}, Pt = [], Lt = /* @__PURE__ */ q(\n Mt,\n zt,\n Pt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Gt = Lt.exports;\nfunction Je() {\n return !!(document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement);\n}\nfunction Ht(e) {\n if (Je())\n return new Promise((t) => t());\n if (e.requestFullscreen)\n return e == null ? void 0 : e.requestFullscreen();\n if (e.mozRequestFullScreen)\n return e == null ? void 0 : e.mozRequestFullScreen();\n if (e.webkitRequestFullScreen)\n return e == null ? void 0 : e.webkitRequestFullScreen();\n if (e.msRequestFullscreen)\n return e == null ? void 0 : e.msRequestFullscreen();\n}\nfunction jt() {\n if (!Je())\n return new Promise((e) => e());\n if (document.exitFullscreen)\n return document.exitFullscreen();\n if (document.mozCancelFullScreen)\n return document.mozCancelFullScreen();\n if (document.webkitCancelFullScreen)\n return document.webkitCancelFullScreen();\n if (document.msExitFullscreen)\n return document.msExitFullscreen();\n}\nconst oe = new Intl.NumberFormat(void 0, {\n minimumIntegerDigits: 2\n}), ye = [\n \"play\",\n \"pause\",\n \"ended\",\n \"loadeddata\",\n \"waiting\",\n \"playing\",\n \"timeupdate\",\n \"canplay\",\n \"canplaythrough\",\n \"statechanged\",\n \"error\"\n], J = (e) => {\n const t = Math.floor(e % 60), r = Math.floor(e / 60) % 60, n = Math.floor(e / 3600);\n return n === 0 ? `${r}:${oe.format(t)}` : `${n}:${oe.format(\n r\n )}:${oe.format(t)}`;\n}, Bt = V.extend({\n name: \"VideoPlayer\",\n components: {\n ESpinner: Ke\n },\n props: {\n sources: {\n type: [Array, String],\n required: !0\n },\n videoListeners: {\n type: Object,\n default: () => ({})\n },\n videoOptions: {\n type: Object,\n default: () => ({})\n }\n },\n data() {\n return {\n playing: !1,\n percentagePlayed: 0,\n videoLength: \"0:00\",\n duration: 0,\n videoDuration: 0,\n currentTime: \"0:00\",\n realtime: 0,\n isScrubbing: !1,\n wasPaused: !1,\n isFullscreen: !1,\n isFinished: !1,\n isLoading: !0,\n isError: !1\n };\n },\n computed: {\n sourceItems() {\n return Array.isArray(this.sources) ? this.sources : [{ src: this.sources }];\n },\n hasStartedOrFinished() {\n return (this.isFinished || this.realtime <= 0.1) && !this.isLoading && !this.isLooped();\n },\n withControls() {\n const e = this.videoOptions;\n return (e == null ? void 0 : e.controls) === !1 ? \"hide\" : \"\";\n }\n },\n mounted() {\n this.bindEvents(), this.initializePlayer(), this.initializeFullscreenListeners();\n },\n destroyed() {\n this.unbindEvents(), this.destroyPlayer(), this.removeFullscreenListeners();\n },\n methods: {\n handle404Error() {\n if (typeof this.sources == \"object\" && \"srcObject\" in this.sources) {\n this.handleLoading();\n return;\n } else\n this.isError = !0, this.isLoading = !1, this.playing = !1;\n },\n bindEvents() {\n ye.forEach((e) => {\n this.bindVideoEvent(e);\n });\n },\n unbindEvents() {\n ye.forEach((e) => {\n this.unbindVideoEvent(e);\n });\n },\n bindVideoEvent(e) {\n const t = this.$refs.player, r = this.$refs.timelineContainer;\n t.addEventListener(\n e,\n (n) => {\n e === \"loadeddata\" && (this.videoLength = J(t.duration)), e === \"timeupdate\" && (this.percentagePlayed = t.currentTime / t.duration * 100, r.style.setProperty(\n \"--progress-position\",\n this.percentagePlayed.toString()\n )), this.$emit(e, { event: n, player: this });\n },\n !0\n );\n },\n unbindVideoEvent(e) {\n const t = this.$refs.player, r = this.$refs.timelineContainer;\n t.addEventListener(\n e,\n (n) => {\n e === \"loadeddata\" && (this.videoLength = J(t.duration)), e === \"timeupdate\" && (this.percentagePlayed = t.currentTime / t.duration * 100, r.style.setProperty(\n \"--progress-position\",\n this.percentagePlayed.toString()\n )), this.$emit(e, { event: n, player: this });\n },\n !0\n );\n },\n initializePlayer() {\n const e = this.$refs.player;\n e && (e.autoplay && this.setPlaying(!0), document.addEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd), document.addEventListener(\"keydown\", this.handleKeyDown));\n },\n destroyPlayer() {\n window.removeEventListener(\"keydown\", this.handleKeyDown), document.removeEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd);\n },\n removeFullscreenListeners() {\n document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled ? (document.removeEventListener(\n \"fullscreenchange\",\n this.handleFullscreenChange\n ), document.removeEventListener(\n \"webkitfullscreenchange\",\n this.handleFullscreenChange\n ), document.removeEventListener(\n \"mozfullscreenchange\",\n this.handleFullscreenChange\n ), document.removeEventListener(\n \"MSFullscreenChange\",\n this.handleFullscreenChange\n )) : console.log(\"Fullscreen API is not supported in this browser.\");\n },\n initializeFullscreenListeners() {\n document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled ? (document.addEventListener(\n \"fullscreenchange\",\n this.handleFullscreenChange\n ), document.addEventListener(\n \"webkitfullscreenchange\",\n this.handleFullscreenChange\n ), document.addEventListener(\n \"mozfullscreenchange\",\n this.handleFullscreenChange\n ), document.addEventListener(\n \"MSFullscreenChange\",\n this.handleFullscreenChange\n )) : console.log(\"Fullscreen API is not supported in this browser.\");\n },\n handleFullscreenChange() {\n this.isFullscreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement || window.innerWidth == screen.width && window.innerHeight == screen.height;\n },\n isLooped() {\n return this.$refs.player.loop;\n },\n handleScrubbingOnMouseEnd(e) {\n this.isScrubbing && this.toggleScrubbing(e);\n },\n handleEnded() {\n this.isFinished = !0, this.playing = !1;\n },\n handleLoading() {\n this.isLoading = !1;\n },\n play() {\n const e = this.$refs.player;\n if (!e)\n return;\n e.play() !== void 0 && e.play().then(() => this.setPlaying(!0)).catch(console.error);\n },\n pause() {\n const e = this.$refs.player;\n e && (e.pause(), this.setPlaying(!1));\n },\n togglePlay() {\n this.playing ? this.pause() : this.play();\n },\n setPlaying(e) {\n this.playing = e;\n },\n seekToPercentage(e) {\n const t = this.$refs.player;\n if (!t)\n return;\n const r = e / 100 * t.duration;\n t.currentTime = r;\n },\n convertTimeToDuration(e) {\n return [parseInt(e / 60 % 60, 10), parseInt(e % 60, 10)].join(\":\").replace(/\\b(\\d)\\b/g, \"0$1\");\n },\n closeFullscreenMode() {\n document.fullscreenElement && (jt().then(() => {\n this.isFullscreen = !1, console.log(\"Exited fullscreen\");\n }), this.isFullscreen = !1);\n },\n openFullscreenMode() {\n const e = this.$refs.videoContainer;\n e && (Ht(e).then(() => {\n this.isFullscreen = !0;\n }), this.isFullscreen = !0);\n },\n toggleFullscreenMode() {\n this.isFullscreen ? this.closeFullscreenMode() : this.openFullscreenMode();\n },\n getDuration() {\n const e = this.$refs.player;\n this.videoLength = J(e.duration), this.videoDuration = e.duration;\n },\n handleTimeUpdate() {\n const e = this.$refs.player, t = this.$refs.timelineContainer;\n if (!e || !t)\n return;\n this.currentTime = J(e.currentTime), this.realtime = e.currentTime;\n const r = Number(this.realtime) / Number(this.videoDuration);\n t.style.setProperty(\n \"--progress-position\",\n r.toString()\n );\n },\n handleTimelineUpdate(e) {\n const t = this.$refs.player;\n if (!document.body.contains(t))\n return;\n const r = this.$refs.timelineContainer, n = r.getBoundingClientRect(), a = Math.min(Math.max(0, e.x - n.x), n.width) / n.width;\n r.style.setProperty(\n \"--preview-position\",\n a.toString()\n ), this.isScrubbing && (e.preventDefault(), r.style.setProperty(\n \"--progress-position\",\n a.toString()\n ));\n },\n skip(e = 5) {\n const t = this.$refs.player;\n t.currentTime += e;\n },\n async toggleScrubbing(e) {\n const t = this.$refs.timelineContainer, r = this.$refs.videoContainer, n = this.$refs.player;\n if (!n)\n return;\n const a = t.getBoundingClientRect(), o = Math.min(Math.max(0, e.x - a.x), a.width) / a.width;\n if (this.isScrubbing = (e.buttons & 1) === 1, r.classList.toggle(\"scrubbing\", this.isScrubbing), this.isScrubbing) {\n this.wasPaused = n.paused, await n.pause(), this.handleTimelineUpdate(e);\n return;\n }\n if (this.realtime = o * this.videoDuration, n.currentTime = o * this.videoDuration, this.wasPaused)\n return;\n const i = n.play();\n i !== void 0 && i.then(() => this.handleTimelineUpdate(e)).catch(console.error);\n },\n handleKeyDown(e) {\n var r;\n const t = (r = document.activeElement) == null ? void 0 : r.tagName.toLowerCase();\n if (t !== \"input\")\n switch (e.key.toLowerCase()) {\n case \" \":\n if (t === \"button\")\n return;\n this.togglePlay();\n break;\n case \"k\":\n this.togglePlay();\n break;\n case \"escape\":\n e.preventDefault(), this.closeFullscreenMode(), this.isFullscreen = !1;\n break;\n case \"f\":\n this.openFullscreenMode(), this.isFullscreen = !0;\n break;\n }\n }\n }\n});\nvar Wt = function() {\n var t = this, r = t._self._c;\n return r(\"div\", { ref: \"videoContainer\", staticClass: \"video-container paused\", attrs: { \"data-volume-level\": \"high\" } }, [r(\"video\", t._g(t._b({ ref: \"player\", attrs: { controls: !1, preload: \"auto\" }, on: { ended: t.handleEnded, click: t.togglePlay, loadedmetadata: t.getDuration, timeupdate: t.handleTimeUpdate, loadeddata: t.handleLoading } }, \"video\", t.videoOptions, !1), t.videoListeners), t._l(t.sourceItems, function(n) {\n return r(\"source\", { key: n.src, attrs: { src: n.src, type: n.type }, on: { error: t.handle404Error } });\n }), 0), t.isLoading ? r(\"div\", { staticClass: \"spinner-container\" }, [r(\"ESpinner\", { attrs: { size: \"9xl\", opacity: \"0.6\", dark: !0 } })], 1) : t._e(), t.isError ? r(\"div\", { staticClass: \"spinner-container e-gap-3\" }, [r(\"i\", { staticClass: \"fa-solid fa-video-slash fa-2xl e-align-middle\" }), r(\"span\", [t._v(\"This video file cannot be played.\")])]) : t._e(), r(\"div\", { class: [\"video-controls-container\", t.withControls] }, [r(\"div\", { staticClass: \"controls\" }, [r(\"button\", { ref: \"playPauseBtn\", staticClass: \"play-pause-btn fa-lg fa-solid\", class: {\n \"fa-play\": !t.playing,\n \"fa-pause\": t.playing\n }, attrs: { title: t.playing ? \"pause\" : \"play\" }, on: { click: t.togglePlay } }), r(\"div\", { staticClass: \"duration-container\" }, [r(\"div\", { ref: \"currentTimeElem\", staticClass: \"current-time\" }, [t._v(\" \" + t._s(t.currentTime) + \" \")]), t._v(\" / \"), r(\"div\", { ref: \"totalTimeElem\", staticClass: \"total-time\" }, [t._v(t._s(t.videoLength))])]), r(\"div\", { ref: \"timelineContainer\", staticClass: \"timeline-container\", on: { mousemove: t.handleTimelineUpdate, mousedown: t.toggleScrubbing } }, [t._m(0)]), r(\"button\", { ref: \"fullScreenBtn\", staticClass: \"full-screen-btn fa-solid\", class: {\n \"fa-expand\": !t.isFullscreen,\n \"fa-compress\": t.isFullscreen\n }, on: { click: t.toggleFullscreenMode } })])])]);\n}, Rt = [function() {\n var e = this, t = e._self._c;\n return t(\"div\", { staticClass: \"timeline\" }, [t(\"div\", { staticClass: \"thumb-indicator\" })]);\n}], Ut = /* @__PURE__ */ q(\n Bt,\n Wt,\n Rt,\n !1,\n null,\n \"e3141ce0\",\n null,\n null\n);\nconst Nt = Ut.exports, te = (e) => {\n const t = u.utcFormat(\"%_d\")(e), n = {\n 1: \"st\",\n 2: \"nd\",\n 3: \"rd\"\n }[t.charAt(1)] || \"th\";\n return `${t}${n}`;\n}, be = (e) => new Date(\n Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate() + 1)\n).getUTCDate() === 1 ? \"\" : u.utcFormat(\"%-d\")(e), X = (e) => [\"0\", \" 0\", \"00\"].includes(u.utcFormat(\"%H\")(e)) ? \"\" : `${u.utcFormat(\"%H\")(e)}h`, I = (e) => {\n const t = u.utcFormat(\"%H:%M\")(e);\n return t === \"00:00\" ? \"\" : t;\n}, le = (e) => u.utcFormat(\"%M:%S\")(e), xe = (e) => `${u.utcFormat(\"%Hh%Mm\")(e)}`, de = (e) => {\n const t = I(e), r = te(e), n = u.utcFormat(\"%B\")(e);\n return t || `${n} ${r}`;\n}, ue = (e) => {\n const t = I(e), r = Number.parseInt(u.utcFormat(\"%H\")(e)), n = te(e), a = u.utcFormat(\"%B\")(e);\n return t && r % 6 === 0 ? `${a} ${n} ${t}` : de(e);\n}, Y = (e) => (t) => {\n const r = u.utcFormat(\"%H\")(t);\n return !(u.utcFormat(\"%M\")(t) === \"00\" && Number.parseInt(r) % e === 0);\n}, ce = (e) => (t) => {\n const r = u.utcFormat(\"%M\")(t);\n return Number.parseInt(r) % e !== 0;\n}, _e = (e) => (t) => {\n const r = u.utcFormat(\"%M\")(t), n = u.utcFormat(\"%S\")(t);\n return Number.parseInt(r) % e !== 0 && Number.parseInt(n) === 0;\n}, S = {\n _10_seconds: 25e-6,\n _20_seconds: 1e-4,\n _30_seconds: 15e-5,\n _1_minute: 3e-4,\n _2_minutes: 75e-5,\n _5_minutes: 2e-3,\n _15_minutes: 5e-3,\n _30_minutes: 0.01,\n _1_hour: 0.025,\n _2_hours: 0.05,\n _3_hours: 0.1,\n _4_hours: 0.15,\n _6_hours: 0.25,\n _1_day: 1,\n _2_days: 2,\n _1_month: 8,\n _1_month_abbr: 13,\n _1_month_letter: 22,\n _3_months: 33,\n infinity: 1 / 0\n};\nvar Ce, Se, Te, Ee, $e, De, ke, Oe;\nconst It = {\n [ee.overview]: [\n {\n precision: S._30_seconds,\n interval: u.utcMinute.every(2),\n format: xe\n },\n {\n precision: S._1_minute,\n interval: u.utcMinute.every(5),\n format: xe\n },\n {\n precision: S._2_minutes,\n interval: u.utcMinute.every(10),\n format: de\n },\n {\n precision: S._5_minutes,\n interval: u.utcMinute.every(20),\n format: ue\n },\n {\n precision: S._15_minutes,\n interval: u.utcHour,\n format: ue\n },\n {\n precision: S._30_minutes,\n interval: u.utcHour.every(2),\n format: ue\n },\n {\n precision: S._2_hours,\n interval: u.utcHour.every(6),\n format: (e) => {\n const t = I(e), r = te(e), n = u.utcFormat(\"%B\")(e);\n return t || `${n} ${r}`;\n }\n },\n {\n precision: S._3_hours,\n interval: u.utcHour.every(12),\n format: de\n },\n {\n precision: S._6_hours,\n interval: u.utcHour.every(24),\n format: (e) => {\n const t = te(e);\n return `${u.utcFormat(\"%b\")(e)} ${t}`;\n }\n },\n {\n precision: S._2_days,\n interval: u.utcMonth,\n format: (e) => {\n const r = e.getUTCMonth() === 0 && e.getUTCDate() === 1 ? \"%Y – %B\" : \"%B\";\n return u.utcFormat(r)(e);\n }\n },\n {\n precision: S.infinity,\n interval: u.utcYear,\n format: \"%Y\"\n }\n ],\n [ee.detailed]: [\n {\n precision: S._10_seconds,\n interval: u.utcSecond.every(10),\n format: le\n },\n {\n precision: S._20_seconds,\n interval: (Ce = u.utcSecond.every(20)) == null ? void 0 : Ce.filter(_e(2)),\n format: le\n },\n {\n precision: S._30_seconds,\n interval: (Se = u.utcSecond.every(30)) == null ? void 0 : Se.filter(_e(2)),\n format: le\n },\n {\n precision: S._1_minute,\n interval: u.utcMinute.filter(ce(5)),\n format: I\n },\n {\n precision: S._2_minutes,\n interval: (Te = u.utcMinute.every(2)) == null ? void 0 : Te.filter(ce(10)),\n format: I\n },\n {\n precision: S._5_minutes,\n interval: (Ee = u.utcMinute.every(5)) == null ? void 0 : Ee.filter(ce(20)),\n format: I\n },\n {\n precision: S._15_minutes,\n interval: ($e = u.utcMinute.every(15)) == null ? void 0 : $e.filter(Y(1)),\n format: I\n },\n {\n precision: S._30_minutes,\n interval: (De = u.utcMinute.every(30)) == null ? void 0 : De.filter(Y(2)),\n format: I\n },\n {\n precision: S._1_hour,\n interval: u.utcHour.filter(Y(6)),\n format: X\n },\n {\n precision: S._2_hours,\n interval: (ke = u.utcHour.every(2)) == null ? void 0 : ke.filter(Y(6)),\n format: X\n },\n {\n precision: S._3_hours,\n interval: (Oe = u.utcHour.every(3)) == null ? void 0 : Oe.filter(Y(12)),\n format: X\n },\n {\n precision: S._4_hours,\n interval: u.utcHour.every(4),\n format: X\n },\n {\n precision: S._6_hours,\n interval: u.utcHour.every(6),\n format: X\n },\n {\n precision: S._1_day,\n interval: u.utcDay,\n format: be\n },\n {\n precision: S._2_days,\n interval: u.utcDay.every(2),\n format: be\n },\n {\n precision: S._1_month,\n interval: u.utcMonth,\n format: \"%B\"\n },\n {\n precision: S._1_month_abbr,\n interval: u.utcMonth,\n format: \"%b\"\n },\n {\n precision: S._1_month_letter,\n interval: u.utcMonth,\n format: (e) => u.utcFormat(\"%B\")(e).charAt(0)\n },\n {\n precision: S._3_months,\n interval: u.utcMonth.every(3),\n format: \"Q%q\"\n },\n {\n precision: S.infinity,\n interval: u.utcMonth.every(3),\n format: \"\"\n }\n ],\n [ee.detailedBackground]: [\n {\n precision: S._10_seconds,\n interval: u.utcSecond,\n format: \"\"\n },\n {\n precision: S._20_seconds,\n interval: u.utcSecond.every(5),\n format: \"\"\n },\n {\n precision: S._30_seconds,\n interval: u.utcSecond.every(10),\n format: \"\"\n },\n {\n precision: S._1_minute,\n interval: u.utcSecond.every(20),\n format: \"\"\n },\n {\n precision: S._2_minutes,\n interval: u.utcSecond.every(30),\n format: \"\"\n },\n {\n precision: S._5_minutes,\n interval: u.utcMinute,\n format: \"\"\n },\n {\n precision: S._15_minutes,\n interval: u.utcMinute.every(3),\n format: \"\"\n },\n {\n precision: S._30_minutes,\n interval: u.utcMinute.every(6),\n format: \"\"\n },\n {\n precision: S._1_hour,\n interval: u.utcMinute.every(15),\n format: \"\"\n },\n {\n precision: S._2_hours,\n interval: u.utcMinute.every(30),\n format: \"\"\n },\n {\n precision: S._3_hours,\n interval: u.utcHour,\n format: \"\"\n },\n {\n precision: S._4_hours,\n interval: u.utcHour,\n format: \"\"\n },\n {\n precision: S._6_hours,\n interval: u.utcMinute.every(120),\n format: \"\"\n },\n {\n precision: S._1_day,\n interval: u.utcHour.every(8),\n format: \"\"\n },\n {\n precision: S._2_days,\n interval: u.utcHour.every(12),\n format: \"\"\n },\n {\n precision: S._1_month,\n interval: u.utcDay.filter((e) => {\n const t = e.getUTCDate(), r = new Date(\n e.getUTCFullYear(),\n e.getUTCMonth() + 1,\n 0\n ).getUTCDate(), n = Math.ceil(r / 5);\n return t === n || t === 2 * n || t === 3 * n || t === 4 * n;\n }),\n format: \"\"\n },\n {\n precision: S._1_month_abbr,\n interval: u.utcDay.filter((e) => {\n const t = e.getUTCDate(), r = new Date(\n e.getUTCFullYear(),\n e.getUTCMonth() + 1,\n 0\n ).getUTCDate(), n = Math.ceil(r / 4);\n return t === n || t === 2 * n || t === 3 * n;\n }),\n format: \"\"\n },\n {\n precision: S._1_month_letter,\n interval: u.utcDay.filter((e) => {\n const t = e.getUTCDate(), r = new Date(\n e.getUTCFullYear(),\n e.getUTCMonth() + 1,\n 0\n ).getUTCDate(), n = Math.ceil(r / 2);\n return t === n;\n }),\n format: \"\"\n },\n {\n precision: S._3_months,\n interval: u.utcMonth,\n format: \"\"\n },\n {\n precision: S.infinity,\n interval: u.utcMonth,\n format: \"\"\n }\n ]\n}, Qe = {\n bind(e, t) {\n const { value: r } = t;\n if (typeof r != \"function\") {\n console.error(\"Invalid callback function provided to v-resize-observer\");\n return;\n }\n const n = new ResizeObserver(\n (a) => {\n a[0] && r(a[0]);\n }\n );\n n.observe(e), e.__resizeObserver__ = n;\n },\n unbind(e) {\n e.__resizeObserver__ && (e.__resizeObserver__.disconnect(), delete e.__resizeObserver__);\n }\n}, Vt = [\n {\n name: \"resize-observer\",\n definition: Qe\n }\n], w = {\n eventGroup: \"event-group\",\n eventGroupBg: \"event-group-bg\",\n eventRect: \"event-rect\",\n labelBg: \"label-bg\",\n labelBgFill: \"label-bg-fill\",\n labelText: \"label-text\",\n loadingIndicator: \"loading-indicator\",\n xAxis: \"x-axis\",\n selectedTimestampCursor: \"selected-timestamp-cursor\",\n lineGraphGroup: \"line-graph-group\",\n lineGraphPath: \"line-graph-path\",\n lineGraphHoverZone: \"line-graph-hover-zone\",\n lineGraphDot: \"line-graph-dot\",\n curtain: \"curtain\"\n}, Q = {\n areaGradient: \"area-gradient\",\n loadingGradient: \"loading-gradient\"\n}, qt = V.extend({\n name: \"ETimeline\",\n directives: {\n resizeObserver: Qe\n },\n props: {\n eventsGroups: {\n type: Object,\n default: () => ({})\n },\n xAxesConfig: {\n type: Object,\n default: () => It\n },\n dark: {\n type: Boolean,\n default: !1\n },\n startDate: {\n type: String,\n default: void 0\n },\n endDate: {\n type: String,\n default: void 0\n },\n selectedTimestamp: {\n type: String,\n default: void 0\n },\n showEventTooltip: {\n type: Boolean,\n default: !0\n },\n disableZoom: {\n type: Boolean,\n default: !1\n },\n normalizeEvents: {\n type: Boolean,\n default: !0\n },\n flattenLineGraphEnds: {\n type: Boolean,\n default: !0\n },\n curtains: {\n type: Boolean,\n default: !1\n },\n showLabels: {\n type: Boolean,\n default: !0\n },\n rectMinWidth: {\n type: Number,\n default: 1\n },\n barChartHeight: {\n type: Number,\n default: 18\n },\n lineGraphMinHeight: {\n type: Number,\n default: 60\n },\n minZoom: {\n type: Number,\n default: 1e-4\n },\n maxZoom: {\n type: Number,\n default: 85e4\n },\n cursorTimestamp: {\n type: [String, void 0],\n default: void 0\n }\n },\n data() {\n return {\n tooltip: null,\n cursor: null,\n timeline: null,\n selectedTimestampCursor: null,\n svg: null,\n axesContainer: null,\n xAxes: {},\n timeScale: null,\n initialTimeScale: null,\n currentTimeScaleDensity: null,\n zoomBehavior: null,\n isMouseDown: !1,\n axisHeight: 22,\n eventGroupPadding: 0,\n isHoveringEvent: !1,\n hoveredEvent: null,\n isHoveringTimeline: !1,\n hoveredTimestamp: null,\n eventTooltipStyle: {},\n hoveredEventType: null,\n utcOffset: 0,\n lastTransform: { x: 0, k: 1 },\n transformDiff: { translation: 0, scale: 1 },\n yScale: null,\n hoveredCounts: [],\n countsByTimestamp: {},\n dotsByTimestamp: {},\n visibleFrom: null,\n visibleTo: null,\n curtainHandleWidth: 5,\n leftCurtainWidth: 50,\n rightCurtainWidth: 50,\n isHoveringCurtain: !1,\n isDraggingCurtain: !1\n };\n },\n computed: {\n classes() {\n return {\n wrapper: {\n \"e-border-gray-700 e-timeline--dark\": this.dark,\n \"e-border-gray-300\": !this.dark,\n \"e-timeline--dragging\": this.isInteractingWithCurtain\n },\n background: this.dark ? \"e-bg-gray-900\" : \"e-bg-gray-50\",\n tooltipSlot: this.dark ? \"e-bg-gray-900 e-text-white e-border-gray-700\" : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\n eventTooltipSlot: this.dark ? \"e-bg-gray-900 e-text-white e-border-gray-700\" : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\"\n };\n },\n lineGraphGroups() {\n return Object.entries(this.filteredEventsGroups).reduce(\n (e, [t, r]) => r.chartType === \"lineGraph\" ? { ...e, [t]: r } : e,\n {}\n );\n },\n lineGraphChartHeight() {\n if (!this.showLabels)\n return this.lineGraphMinHeight;\n const e = Object.keys(this.lineGraphGroups).length * this.barChartHeight;\n return Math.max(this.lineGraphMinHeight, e);\n },\n barGroups() {\n return Object.entries(this.filteredEventsGroups).reduce(\n (e, [t, r]) => r.chartType !== \"lineGraph\" ? { ...e, [t]: r } : e,\n {}\n );\n },\n hasLineGraphChart() {\n return Object.keys(this.lineGraphGroups).length > 0;\n },\n labelRectWidth() {\n return Object.values(\n this.eventsGroups\n ).reduce((r, n) => {\n var a;\n return Math.max(r, (a = n.label) == null ? void 0 : a.length);\n }, 0) * 7.5 + 5;\n },\n combinedXAxesHeight() {\n const e = Object.keys(this.xAxesConfig).length - 1;\n return this.axisHeight * e;\n },\n timelineHeight() {\n const e = Object.keys(this.barGroups).length, t = this.hasLineGraphChart ? this.lineGraphChartHeight : 0, r = this.eventGroupPadding * (e - 1), n = this.barChartHeight * e;\n return this.combinedXAxesHeight + t + n + r;\n },\n filteredEventsGroups() {\n const e = Object.entries(this.eventsGroups).filter(\n ([t, r]) => !r.isHidden\n );\n return Object.fromEntries(e);\n },\n allEventsSorted() {\n return Object.values(this.filteredEventsGroups).map((t) => t.events).flat().sort(\n (t, r) => new Date(t.timestamp || t.startDate) > new Date(r.timestamp || r.startDate) ? 1 : -1\n );\n },\n oldestEvent() {\n let e;\n return this.allEventsSorted.length > 1 ? e = this.allEventsSorted[0] : e = {\n timestamp: new Date((/* @__PURE__ */ new Date()).getTime() - 864e5)\n }, e;\n },\n latestEvent() {\n let e;\n return this.allEventsSorted.length > 1 ? e = this.allEventsSorted[this.allEventsSorted.length - 1] : e = {\n timestamp: /* @__PURE__ */ new Date()\n }, e;\n },\n allLineChartTimestamps() {\n const e = /* @__PURE__ */ new Set();\n return Object.values(this.lineGraphGroups).forEach((t) => {\n t.events.forEach((r) => {\n e.add(r.timestamp);\n });\n }), Array.from(e).sort();\n },\n placeholderLineChartGroup() {\n return this.fillTimeGaps(\n this.allLineChartTimestamps.map((e) => ({\n timestamp: e,\n count: 0\n }))\n );\n },\n normalizedLineGraphGroups() {\n return Object.entries(this.lineGraphGroups).reduce(\n (e, [t, r]) => ({\n ...e,\n [t]: {\n ...r,\n events: this.getNormalizedEvents(r.events)\n }\n }),\n {}\n );\n },\n isInteractingWithCurtain() {\n return this.isHoveringCurtain || this.isDraggingCurtain;\n }\n },\n watch: {\n dark() {\n this.handleDarkModeChange();\n },\n selectedTimestamp() {\n this.repositionSelectedTimestampCursor();\n },\n startDate() {\n this.zoomToStartAndEndDates();\n },\n endDate() {\n this.zoomToStartAndEndDates();\n },\n eventsGroups() {\n this.updateAndRedrawTimeline();\n },\n cursorTimestamp() {\n if (this.cursorTimestamp) {\n this.hoveredTimestamp = this.cursorTimestamp;\n const e = this.tzStringToDate(this.hoveredTimestamp), t = this.timeScale(e);\n this.cursor.style.left = t + \"px\", this.isHoveringTimeline = !0;\n } else\n this.isHoveringTimeline = !1;\n }\n },\n mounted() {\n this.initTimeline();\n },\n beforeDestroy() {\n document.removeEventListener(\"mouseup\", this.handleDocumentMouseUp);\n },\n methods: {\n initTimeline(e, t) {\n if (this.initRefs(), !this.timeline) {\n setTimeout(this.initTimeline, 500);\n return;\n }\n this.initSvg(), this.initDefs(), this.initUtcOffset(), this.initTimeScale(e, t), this.initXAxes(), this.initYScale(), this.initZoomBehavior(), this.drawEventsGroups(), this.initCurtains(), this.emitCurtainChange(), this.initSelectedTimestampCursor(), this.registerEventsListeners(), this.emitVisibleInterval();\n },\n initRefs() {\n this.tooltip = this.$refs.tooltip, this.cursor = this.$refs.cursor, this.timeline = this.$refs.timelineContainer, this.selectedTimestampCursor = this.$refs.selectedTimestamp;\n },\n initSvg() {\n this.svg = u.select(this.timeline).append(\"svg\").attr(\"width\", this.timeline.offsetWidth).attr(\"height\", this.timelineHeight);\n },\n initDefs() {\n const e = this.svg.append(\"defs\");\n Object.entries(this.filteredEventsGroups).forEach(\n ([t, r]) => {\n const { color: n, chartType: a } = r, o = e.append(\"linearGradient\").attr(\"id\", `${Q.loadingGradient}-${t}`).attr(\"x1\", \"0%\").attr(\"y1\", \"0%\").attr(\"x2\", \"100%\").attr(\"y2\", \"0%\");\n if (o.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", n).attr(\"stop-opacity\", \"0\"), o.append(\"stop\").attr(\"offset\", \"50%\").attr(\"stop-color\", n).attr(\"stop-opacity\", \"0.6\"), o.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", n).attr(\"stop-opacity\", \"0\"), a === \"lineGraph\") {\n const i = e.append(\"linearGradient\").attr(\"id\", `${Q.areaGradient}-${t}`).attr(\"x1\", \"0%\").attr(\"x2\", \"0%\").attr(\"y1\", \"0%\").attr(\"y2\", \"100%\");\n i.append(\"stop\").attr(\"offset\", \"0%\").style(\"stop-color\", n).style(\"stop-opacity\", 0.3), i.append(\"stop\").attr(\"offset\", \"38%\").style(\"stop-color\", n).style(\"stop-opacity\", 0);\n }\n }\n );\n },\n initUtcOffset() {\n const e = this.startDate || this.oldestEvent.timestamp || this.oldestEvent.startDate;\n this.utcOffset = K.parseZone(e).utcOffset();\n },\n initTimeScale(e, t) {\n const r = e || this.startDate || this.oldestEvent.timestamp || this.oldestEvent.startDate, n = t || this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate;\n this.timeScale = u.scaleTime().domain([this.tzStringToDate(r), this.tzStringToDate(n)]).range([0, this.timeline.offsetWidth]), this.initialTimeScale = this.timeScale.copy(), this.updateCurrentTimeScaleDensity();\n },\n initXAxes() {\n let e = 0;\n const t = 5;\n for (const r in this.xAxesConfig) {\n const n = this.createAxis(r);\n this.xAxes[r] = n, this.svg.append(\"g\").classed(w.xAxis, !0).classed(`${w.xAxis}-${r}`, !0).attr(\"transform\", `translate(0, ${e || t})`).call(n), this.translateTicksText(r), e += this.axisHeight;\n }\n },\n initYScale() {\n this.yScale = u.scaleLinear().range([this.lineGraphChartHeight, 0]);\n const e = Object.values(this.lineGraphGroups).map((r) => r.events).flat(), t = u.max(e, (r) => r.count);\n this.yScale.domain([0, t]);\n },\n initZoomBehavior() {\n this.disableZoom || (this.zoomBehavior = u.zoom().on(\"zoom\", this.handleZoom).scaleExtent([this.minZoom, this.maxZoom]), this.svg.call(this.zoomBehavior));\n },\n initSelectedTimestampCursor() {\n this.svg.append(\"line\").attr(\"class\", w.selectedTimestampCursor).style(\"stroke\", \"red\").style(\"stroke-width\", \"1px\").style(\"opacity\", 0).attr(\"x1\", 0).attr(\"x2\", 0).attr(\"y1\", 0).attr(\"y2\", this.timelineHeight), this.repositionSelectedTimestampCursor();\n },\n updateAndRedrawTimeline() {\n const { startDate: e, endDate: t } = this.getCurrentTimeBounds();\n this.clearTimeline(), this.initTimeline(e, t);\n },\n clearTimeline() {\n this.svg && this.svg.remove(), this.countsByTimestamp = {};\n },\n repositionSelectedTimestampCursor() {\n const e = this.svg.select(`.${w.selectedTimestampCursor}`);\n if (!this.selectedTimestamp) {\n e.style(\"opacity\", 0);\n return;\n }\n const t = this.tzStringToDate(this.selectedTimestamp), r = this.timeScale(t);\n isNaN(r) ? e.style(\"opacity\", 0) : e.attr(\"x1\", r).attr(\"x2\", r).style(\"opacity\", 0.5);\n },\n updateCurrentTimeScaleDensity() {\n const e = this.timeScale.invert(0).getTime(), t = this.timeScale.invert(1).getTime(), r = 36e5;\n this.currentTimeScaleDensity = (t - e) / r;\n },\n registerEventsListeners() {\n document.addEventListener(\"mouseup\", this.handleDocumentMouseUp), this.svg.on(\"mousedown\", this.handleMouseDown), this.svg.on(\"mousemove\", this.handleMouseMove), this.svg.on(\"click\", this.handleClick), this.svg.on(\"mouseleave\", this.handleMouseLeave);\n },\n emitVisibleInterval() {\n const e = this.timeScale.invert(0), t = this.timeScale.invert(this.timeline.offsetWidth);\n if (this.visibleFrom && this.visibleFrom.getTime() === e.getTime() && this.visibleTo && this.visibleTo.getTime() === t.getTime())\n return;\n this.visibleFrom = e, this.visibleTo = t;\n const r = this.dateToTzString(this.visibleFrom), n = this.dateToTzString(this.visibleTo);\n this.$emit(\"visible-interval-change\", {\n fromDate: r,\n toDate: n,\n transform: this.transformDiff\n });\n },\n createAxis(e) {\n const t = this.xAxesConfig[e], r = this.getAxisTicksConfig(t);\n return u.axisBottom(this.timeScale).ticks(r.interval).tickFormat(r.formatFn).tickSizeOuter(0).tickSizeInner(this.timelineHeight);\n },\n getAxisTicksConfig(e) {\n const { interval: t, format: r } = e.find(\n (a) => a.precision >= this.currentTimeScaleDensity && a.interval\n );\n return {\n formatFn: (a) => typeof r == \"function\" ? r(a) : u.timeFormat(r)(a),\n interval: t\n };\n },\n handleResize({ contentRect: e }) {\n this.svg && (this.svg.attr(\"width\", e.width), this.updateCurtainsOnResize(e.width));\n },\n handleDarkModeChange() {\n if (!this.showLabels)\n return;\n const e = this;\n this.svg.selectAll(`.${w.labelBg}`).each(function() {\n u.select(this).style(\"fill\", e.dark ? \"black\" : \"white\");\n }), this.svg.selectAll(`.${w.labelBgFill}`).each(function() {\n const t = u.select(this), r = t.node().dataset.color;\n t.style(\"fill\", e.getLabelBackgroundColor(r)).style(\"stroke\", e.getTextFillColor(r)).style(\"stroke-width\", 0.25);\n }), this.svg.selectAll(`.${w.labelText}`).each(function() {\n const t = u.select(this), r = t.node().dataset.color;\n t.style(\"fill\", e.getTextFillColor(r));\n });\n },\n handleMouseDown() {\n this.isMouseDown = !0;\n },\n handleDocumentMouseUp() {\n this.isMouseDown = !1;\n },\n handleMouseLeave() {\n this.isHoveringTimeline = !1, this.$emit(\"hovered-timestamp\", void 0);\n },\n handleMouseMove(e) {\n if (this.isMouseDown)\n return;\n const t = e.offsetX, r = this.timeScale.invert(t);\n this.hoveredTimestamp = this.dateToTzString(r), this.isHoveringTimeline = !0, this.$emit(\"hovered-timestamp\", this.hoveredTimestamp), this.cursor.style.left = t + \"px\", this.tooltip && (this.eventTooltipStyle = {\n left: `${t}px`,\n bottom: `${this.timeline.getBoundingClientRect().height}px`\n }, this.repositionSelectedTimestampCursor());\n },\n handleClick(e) {\n const t = e.offsetX, r = this.timeScale.invert(t), n = this.dateToTzString(r);\n this.$emit(\"date-clicked\", n), this.isHoveringEvent && this.$emit(\"event-clicked\", {\n event: this.hoveredEvent,\n type: this.hoveredEventType\n });\n },\n handleLineMouseOver(e, t, r) {\n this.hoveredCounts = Object.entries(\n this.countsByTimestamp[`${t.timestamp}`]\n ).reduce((n, a) => {\n const [o, i] = a;\n return [...n, { type: o, count: i }];\n }, []), this.hoveredEvent = t, this.isHoveringEvent = !0, this.$emit(\"event-mouseover\", {\n eventData: t,\n eventType: r,\n hoveredCounts: this.hoveredCounts\n });\n },\n handleLineMouseOut() {\n this.isHoveringEvent = !1, this.hoveredCounts = [], this.$emit(\"event-mouseout\");\n },\n handleBarMouseOver(e, t, r) {\n this.hoveredEvent = t, this.hoveredEventType = r, this.isHoveringEvent = !0, this.$emit(\"event-mouseover\", { eventData: t, eventType: r });\n },\n handleBarMouseOut() {\n this.isHoveringEvent = !1, this.hoveredEvent = null, this.$emit(\"event-mouseout\");\n },\n handleLabelMouseOver(e) {\n u.selectAll(`.${w.lineGraphGroup}-${e}`).classed(\n `${w.lineGraphGroup}--highlighted`,\n !0\n ), u.selectAll(`.${w.lineGraphGroup}-label`).classed(\n `${w.lineGraphGroup}-label--highlighted`,\n !0\n );\n },\n handleLabelMouseLeave(e) {\n u.selectAll(`.${w.lineGraphGroup}-${e}`).classed(\n `${w.lineGraphGroup}--highlighted`,\n !1\n ), u.selectAll(`.${w.lineGraphGroup}-label`).classed(\n `${w.lineGraphGroup}-label--highlighted`,\n !1\n );\n },\n handleZoom(e) {\n const t = e.transform.rescaleX(this.initialTimeScale);\n this.timeScale.domain(t.domain()), this.updateCurrentTimeScaleDensity();\n const r = e.transform.k / this.lastTransform.k;\n this.transformDiff = {\n scale: r,\n translation: e.transform.x - this.lastTransform.x\n }, this.lastTransform = { ...e.transform };\n for (const n in this.xAxes)\n this.rescaleAxis(n, t), this.translateTicksText(n);\n this.updateBarCharts(), this.updateLineGraphs(), this.updateLineGraphHoverZones(), this.repositionSelectedTimestampCursor(), this.emitVisibleInterval(), this.emitCurtainChange();\n },\n emitCurtainChange() {\n const { startDate: e, endDate: t } = this.calculateDateRangeFromCurtains();\n this.$emit(\"curtain-range-change\", {\n startDate: new Date(e).toISOString(),\n endDate: new Date(t).toISOString()\n });\n },\n calculateDateRangeFromCurtains() {\n const e = this.timeline.offsetWidth, t = this.timeScale.domain(), r = t[1].getTime() - t[0].getTime(), n = (this.leftCurtainWidth - this.curtainHandleWidth * 2) / e * r, a = (this.rightCurtainWidth + this.curtainHandleWidth * 2) / e * r, o = new Date(t[0].getTime() + n), i = new Date(t[1].getTime() - a);\n return { startDate: o, endDate: i };\n },\n updateCurtainsOnResize(e) {\n const { startDate: t, endDate: r } = this.calculateDateRangeFromCurtains(), n = this.timeScale.domain(), a = n[1].getTime() - n[0].getTime(), o = t.getTime() - n[0].getTime(), i = n[1].getTime() - r.getTime();\n this.leftCurtainWidth = o / a * e, this.rightCurtainWidth = i / a * e, this.svg.select(`.${w.curtain}--left`).attr(\"width\", this.leftCurtainWidth), this.svg.select(`.${w.curtain}--right`).attr(\n \"x\",\n e - this.rightCurtainWidth + this.curtainHandleWidth * 2\n ).attr(\"width\", this.rightCurtainWidth);\n },\n handleDragStart() {\n this.isDraggingCurtain = !0;\n },\n handleDragEnd() {\n this.isDraggingCurtain = !1;\n },\n handleLeftDrag(e) {\n e.sourceEvent.stopPropagation();\n const t = Math.min(\n e.x,\n this.timeline.offsetWidth - this.rightCurtainWidth\n );\n this.leftCurtainWidth = Math.max(0, t), this.svg.select(`.${w.curtain}--left`).attr(\"width\", this.leftCurtainWidth), this.emitCurtainChange();\n },\n handleRightDrag(e) {\n e.sourceEvent.stopPropagation();\n const t = this.timeline.offsetWidth, r = Math.min(\n this.timeline.offsetWidth - e.x,\n this.timeline.offsetWidth - this.leftCurtainWidth\n ), n = t - r;\n this.rightCurtainWidth = Math.max(0, r), this.svg.select(`.${w.curtain}--right`).attr(\"width\", this.rightCurtainWidth).attr(\"x\", n), this.emitCurtainChange();\n },\n zoomToStartAndEndDates() {\n const e = this.startDate || this.oldestEvent.timestamp || this.oldestEvent.startDate, t = this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate, r = this.tzStringToDate(e), n = this.tzStringToDate(t), a = this.timeline.offsetWidth, o = [r, n], i = [0, a];\n this.timeScale = u.scaleTime().domain(o).range(i), this.initialTimeScale = this.timeScale.copy(), this.updateCurrentTimeScaleDensity();\n for (const c in this.xAxes)\n this.rescaleAxis(c, this.timeScale), this.translateTicksText(c);\n this.updateBarCharts(), this.updateLineGraphs(), this.updateLineGraphHoverZones(), this.repositionSelectedTimestampCursor();\n },\n rescaleAxis(e, t) {\n const r = this.xAxes[e], n = this.getAxisTicksConfig(\n this.xAxesConfig[e]\n );\n r.scale(t).ticks(n.interval).tickFormat(n.formatFn).tickSizeOuter(0), this.svg.select(`.${w.xAxis}-${e}`).call(r);\n },\n translateTicksText(e) {\n this.svg.select(`.${w.xAxis}-${e}`).selectAll(\".tick text\").each(function() {\n let t = u.select(this), r = t.node().getBBox();\n t.attr(\"x\", r.height / 2).attr(\"y\", 0).style(\"text-anchor\", \"start\");\n });\n },\n updateBarCharts() {\n const e = `.${w.eventGroup} > rect.${w.eventRect}`;\n this.svg.selectAll(e).attr(\"x\", this.getEventRectX).attr(\"width\", this.getEventRectWidth).attr(\"height\", this.barChartHeight);\n },\n updateLineGraphs() {\n Object.entries(this.lineGraphGroups).forEach(([e]) => {\n const t = u.area().x((r) => this.timeScale(this.tzStringToDate(r.timestamp))).y0(this.timelineHeight).y1((r) => this.yScale(r.count)).curve(u.curveMonotoneX);\n this.svg.selectAll(\n `.${w.lineGraphPath}-${e}`\n ).attr(\"d\", (r) => t(r));\n });\n },\n updateLineGraphHoverZones() {\n Object.keys(this.lineGraphGroups).forEach((e) => {\n const t = this;\n this.svg.selectAll(\n `.${w.lineGraphDot}-${e}`\n ).each(function(r) {\n u.select(this).attr(\"cx\", t.timeScale(t.tzStringToDate(r.timestamp))).attr(\"cy\", t.yScale(r.count));\n }), this.svg.selectAll(\n `.${w.lineGraphHoverZone}-${e}`\n ).each(function(r) {\n const n = t.timeScale(t.tzStringToDate(r.timestamp).getTime()) - 15;\n u.select(this).attr(\"x\", n).attr(\"y\", 0).attr(\"width\", 30).attr(\"height\", t.lineGraphChartHeight);\n });\n });\n },\n getEventRectX(e) {\n return this.timeScale(this.tzStringToDate(e.startDate || e.timestamp));\n },\n getEventRectWidth(e) {\n if (!e)\n return 0;\n if (e.startDate && e.endDate) {\n const t = new Date(e.startDate), r = new Date(e.endDate), n = this.timeScale(r) - this.timeScale(t);\n return Math.max(n, this.rectMinWidth);\n } else {\n const t = 1 / (this.currentTimeScaleDensity * 3600);\n return Math.max(t, this.rectMinWidth);\n }\n },\n initCurtains() {\n if (!this.curtains)\n return;\n const e = this.timeline.offsetWidth, t = this.timelineHeight;\n this.svg.append(\"rect\").classed(`${w.curtain} ${w.curtain}--left`, !0).attr(\"width\", this.leftCurtainWidth).attr(\"height\", t + this.curtainHandleWidth * 2).attr(\"y\", -this.curtainHandleWidth).attr(\"x\", -this.curtainHandleWidth).attr(\"fill\", \"rgba(0, 0, 0, 0.5)\").on(\"mouseenter\", () => this.isHoveringCurtain = !0).on(\"mouseleave\", () => this.isHoveringCurtain = !1).call(\n u.drag().on(\"start\", this.handleDragStart).on(\"drag\", this.handleLeftDrag).on(\"end\", this.handleDragEnd)\n ), this.svg.append(\"rect\").classed(`${w.curtain} ${w.curtain}--right`, !0).attr(\n \"x\",\n e - this.rightCurtainWidth + this.curtainHandleWidth * 2\n ).attr(\"y\", -this.curtainHandleWidth).attr(\"width\", this.rightCurtainWidth + this.curtainHandleWidth * 2).attr(\"height\", t + this.curtainHandleWidth * 2).attr(\"fill\", \"rgba(0, 0, 0, 0.5)\").on(\"mouseenter\", () => this.isHoveringCurtain = !0).on(\"mouseleave\", () => this.isHoveringCurtain = !1).call(\n u.drag().on(\"start\", this.handleDragStart).on(\"drag\", this.handleRightDrag).on(\"end\", this.handleDragEnd)\n );\n },\n drawEventsGroups() {\n this.svg.selectAll(`g.${w.eventGroup}`).remove(), this.drawLineGraphEventsGroups(), this.drawBarEventsGroups();\n },\n drawLineGraphEventsGroups() {\n const e = this.combinedXAxesHeight, t = this.normalizeEvents ? this.normalizedLineGraphGroups : this.lineGraphGroups;\n Object.entries(t).forEach(([r, n]) => {\n const a = this.svg.append(\"g\").classed(\n `${w.lineGraphGroup} ${w.lineGraphGroup}-${r}`,\n !0\n ).attr(\"transform\", `translate(0,${e})`), { color: o, events: i } = n;\n this.drawLineGraph({\n events: i,\n gElement: a,\n color: o,\n type: r\n }), this.drawLineGraphHoverZones({\n events: i,\n gElement: a,\n color: o,\n type: r\n });\n }), Object.entries(this.lineGraphGroups).forEach(\n ([r, n], a) => {\n const { color: o, isLoading: i, label: c } = n, l = this.lineGraphChartHeight - this.barChartHeight * (a + 1), s = e + this.lineGraphChartHeight - this.barChartHeight, d = this.svg.append(\"g\").classed(`${w.lineGraphGroup}-label`, !0).attr(\"transform\", `translate(0,${e})`).on(\"mouseover\", () => this.handleLabelMouseOver(r)).on(\"mouseleave\", () => this.handleLabelMouseLeave(r));\n this.drawProgressIndicator({\n type: r,\n color: o,\n isLoading: i,\n yPosition: s\n }), this.drawTextLabel({\n color: o,\n label: c,\n yPosition: l,\n gElement: d\n });\n }\n );\n },\n drawLineGraph({\n events: e,\n gElement: t,\n color: r,\n type: n\n }) {\n const a = u.area().x((o) => this.timeScale(this.tzStringToDate(o.timestamp))).y0(this.timelineHeight).y1((o) => this.yScale(o.count)).curve(u.curveMonotoneX);\n t.append(\"path\").datum(e).classed(`${w.lineGraphPath}-${n}`, !0).attr(\"fill\", `url(#${Q.areaGradient}-${n})`).attr(\"stroke\", r).attr(\"stroke-linejoin\", \"round\").attr(\"stroke-linecap\", \"round\").attr(\"stroke-width\", 1).attr(\"d\", (o) => a(o));\n },\n drawLineGraphHoverZones({\n events: e,\n gElement: t,\n color: r,\n type: n\n }) {\n e.forEach((a) => {\n const o = `${a.timestamp}`;\n this.countsByTimestamp[o] = {\n ...this.countsByTimestamp[o] || {},\n [n]: a.count\n };\n const i = t.append(\"circle\").classed(\n `${w.lineGraphDot} ${w.lineGraphDot}-${n}`,\n !0\n ).attr(\"cx\", this.timeScale(this.tzStringToDate(a.timestamp))).attr(\"cy\", this.yScale(a.count)).attr(\"r\", 1.5).attr(\"fill\", r).attr(\"stroke-width\", 0).datum(a);\n this.dotsByTimestamp[o] = [\n ...this.dotsByTimestamp[o] || [],\n i\n ], t.append(\"rect\").classed(`${w.lineGraphHoverZone}-${n}`, !0).attr(\"x\", this.timeScale(this.tzStringToDate(a.timestamp)) - 15).attr(\"y\", 0).attr(\"width\", 30).attr(\"height\", this.lineGraphChartHeight).attr(\"fill\", \"transparent\").datum(a).on(\"mouseover\", (c) => {\n this.handleLineMouseOver(c, a, n), this.dotsByTimestamp[o].forEach(\n (l) => l.classed(`${w.lineGraphDot}--active`, !0)\n );\n }).on(\"mouseout\", () => {\n this.handleLineMouseOut(), this.dotsByTimestamp[o].forEach(\n (c) => c.classed(`${w.lineGraphDot}--active`, !1)\n );\n });\n });\n },\n drawBarEventsGroups() {\n Object.entries(this.barGroups).forEach(([e, t], r) => {\n const { color: n, label: a, events: o, isLoading: i } = t, c = r === 0 ? 0 : this.eventGroupPadding, l = this.hasLineGraphChart ? this.lineGraphChartHeight : 0, s = r * (this.barChartHeight + c) + this.combinedXAxesHeight + l;\n this.drawProgressIndicator({\n yPosition: s,\n type: e,\n color: n,\n isLoading: i\n });\n const d = this.svg.append(\"g\").attr(\"data-color\", n).classed(w.eventGroup, !0).classed(`${w.eventGroup}-${e}`, !0);\n this.drawBackground({\n color: n,\n gElement: d,\n yPosition: s\n }), this.drawBars({\n events: o,\n color: n,\n gElement: d,\n yPosition: s,\n type: e\n }), this.drawTextLabel({\n color: n,\n label: a,\n gElement: d,\n yPosition: s\n });\n });\n },\n drawProgressIndicator({\n yPosition: e,\n type: t,\n isLoading: r\n }) {\n this.svg.append(\"rect\").classed(\n `${w.loadingIndicator} ${w.loadingIndicator}-${t}`,\n !0\n ).attr(\"x\", 0).attr(\"y\", e).attr(\"width\", this.timeline.offsetWidth / 3).attr(\"height\", this.barChartHeight).attr(\"fill\", `url(#${Q.loadingGradient}-${t})`).style(\"visibility\", r ? \"visible\" : \"hidden\");\n },\n drawBackground({\n color: e,\n yPosition: t,\n gElement: r\n }) {\n r.append(\"rect\").attr(\"class\", w.eventGroupBg).attr(\"x\", 0).attr(\"y\", t).attr(\"width\", this.timeline.offsetWidth).attr(\"height\", this.barChartHeight).attr(\"fill\", u.color(e).toString()).style(\"opacity\", 0.1);\n },\n drawBars({\n events: e,\n gElement: t,\n yPosition: r,\n color: n,\n type: a\n }) {\n const o = this;\n t.selectAll(w.eventRect).data(e).enter().append(\"rect\").classed(w.eventRect, !0).attr(\"x\", this.getEventRectX).attr(\"y\", r).attr(\"ry\", 1.5).attr(\"rx\", 1.5).attr(\"width\", this.getEventRectWidth).attr(\"height\", this.barChartHeight).attr(\"stroke-width\", 5).attr(\"cursor\", \"pointer\").attr(\"stroke\", \"#0000\").style(\"fill\", n).on(\"mouseover\", function(i, c) {\n u.select(this).classed(`${w.eventRect}--hovered`, !0), o.handleBarMouseOver(i, c, a);\n }).on(\"mouseout\", function() {\n u.select(this).classed(`${w.eventRect}--hovered`, !1), o.handleBarMouseOut();\n });\n },\n drawTextLabel({\n gElement: e,\n yPosition: t,\n color: r,\n label: n\n }) {\n if (!this.showLabels)\n return;\n const a = {\n x: -5,\n y: t,\n w: this.labelRectWidth + 5,\n h: this.barChartHeight,\n radius: 3\n };\n e.append(\"rect\").attr(\"class\", w.labelBg).attr(\"data-color\", r).attr(\"x\", a.x).attr(\"y\", a.y).attr(\"width\", a.w).attr(\"height\", a.h).attr(\"rx\", a.radius).attr(\"ry\", a.radius).style(\"fill\", this.dark ? \"#131a29\" : \"white\"), e.append(\"rect\").attr(\"class\", w.labelBgFill).attr(\"data-color\", r).attr(\"x\", a.x).attr(\"y\", a.y).attr(\"width\", a.w).attr(\"height\", a.h).attr(\"rx\", a.radius).attr(\"ry\", a.radius).style(\"fill\", this.getLabelBackgroundColor(r)).style(\"stroke\", this.getTextFillColor(r)).style(\"stroke-width\", 0.25), e.append(\"text\").attr(\"class\", w.labelText).attr(\"data-color\", r).attr(\"x\", 5).attr(\"y\", t + this.barChartHeight / 2).attr(\"dy\", \"0.35em\").style(\"text-anchor\", \"start\").style(\"font-size\", \"12px\").style(\"font-weight\", 500).style(\"stroke-linejoin\", \"round\").style(\"paint-order\", \"stroke\").style(\"fill\", this.getTextFillColor(r)).text(n);\n },\n getTextFillColor(e) {\n var t, r;\n return (this.dark ? (t = u.color(e)) == null ? void 0 : t.brighter(1.5) : (r = u.color(e)) == null ? void 0 : r.darker(2)).toString();\n },\n getLabelBackgroundColor(e) {\n let t = u.color(e);\n return t.opacity = this.dark ? 0.2 : 0.5, t.toString();\n },\n tzStringToDate(e) {\n return K(e).add(this.utcOffset, \"minutes\").toDate();\n },\n dateToTzString(e) {\n const t = new Date(e).getTimezoneOffset();\n return K(e).add(t, \"minutes\").utcOffset(this.utcOffset, !0).format();\n },\n getCurrentTimeBounds() {\n const e = this.timeScale.domain();\n return { startDate: e[0], endDate: e[1] };\n },\n getFormattedTimestamp(e) {\n return K.parseZone(e).format(\"YYYY-MM-DDTHH:mm:ss\");\n },\n fillTimeGaps(e) {\n if (e.length <= 1)\n return e;\n const t = (i) => new Date(i), r = (i) => t(i).getTime(), n = (i, c) => new Date(i.getTime() + c), a = e.map(\n (i, c) => c === 0 ? 1 / 0 : r(i.timestamp) - r(e[c - 1].timestamp)\n ).reduce(\n (i, c) => Math.min(i, c),\n 1 / 0\n );\n let o = e.flatMap(\n (i, c) => {\n const l = e[c + 1];\n if (!l)\n if (this.flattenLineGraphEnds) {\n const v = n(\n t(i.timestamp),\n a\n );\n return [\n i,\n { timestamp: v.toISOString(), count: 0 }\n ];\n } else\n return [i];\n const s = t(i.timestamp), d = t(l.timestamp);\n if (d.getTime() - s.getTime() > a) {\n const v = n(d, -a), h = n(s, a);\n return [\n i,\n { timestamp: h.toISOString(), count: 0 },\n { timestamp: v.toISOString(), count: 0 },\n l\n ];\n } else\n return [i, l];\n }\n );\n return this.flattenLineGraphEnds && (o = [\n { timestamp: n(\n t(e[0].timestamp),\n -a\n ).toISOString(), count: 0 },\n ...o\n ]), o;\n },\n getNormalizedEvents(e) {\n return this.placeholderLineChartGroup.map((t) => e.find(\n (n) => n.timestamp === t.timestamp\n ) || t);\n }\n }\n});\nvar Xt = function() {\n var t = this, r = t._self._c;\n return r(\"div\", { staticClass: \"e-relative e-timeline e-border e-rounded\", class: t.classes.wrapper }, [r(\"div\", { staticClass: \"e-timeline__background e-w-full e-h-full e-absolute e-top-0 e-rounded\", class: t.classes.background }), r(\"div\", { directives: [{ name: \"resize-observer\", rawName: \"v-resize-observer\", value: t.handleResize, expression: \"handleResize\" }], ref: \"timelineContainer\", staticClass: \"e-timeline__svg-container e-relative e-h-13 e-rounded e-select-none e-overflow-x-hidden e-overflow-hidden\" }), r(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.isHoveringTimeline && !t.isInteractingWithCurtain, expression: \"isHoveringTimeline && !isInteractingWithCurtain\" }], ref: \"cursor\", staticClass: \"e-timeline__cursor e-absolute e-bg-green-600 e-w-px e-h-full e-top-0 e-pointer-events-none\" }), r(\"div\", { ref: \"tooltip\", staticClass: \"e-absolute\", style: t.eventTooltipStyle }, [t._t(\"tooltip\", function() {\n return [r(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.isHoveringTimeline && !t.isHoveringEvent && !t.isInteractingWithCurtain && !t.cursorTimestamp, expression: `\n isHoveringTimeline &&\n !isHoveringEvent &&\n !isInteractingWithCurtain &&\n !cursorTimestamp\n ` }], staticClass: \"e-timeline__tooltip e-border e-rounded e-px-2 -e-left-2/4 e-relative\", class: t.classes.tooltipSlot }, [t._v(\" \" + t._s(t.hoveredTimestamp) + \" \")])];\n }, { timestamp: t.hoveredTimestamp, active: t.isHoveringTimeline && !t.isInteractingWithCurtain && !t.cursorTimestamp })], 2), r(\"div\", { ref: \"eventPreviewTooltip\", staticClass: \"e-absolute\", style: t.eventTooltipStyle }, [t._t(\"eventTooltip\", function() {\n return [t.showEventTooltip && (t.hoveredEvent || t.hoveredCounts.length) ? r(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.isHoveringEvent && !t.isInteractingWithCurtain, expression: \"isHoveringEvent && !isInteractingWithCurtain\" }], staticClass: \"e-timeline__event-tooltip e-border e-rounded e-px-2 -e-left-2/4 e-relative\", class: t.classes.eventTooltipSlot }, [t.hoveredCounts.length ? r(\"div\", [r(\"strong\", [t._v(\"Timestamp\")]), t._v(\": \" + t._s(t.hoveredEvent.timestamp) + \" \"), t._l(t.hoveredCounts, function(n, a) {\n return r(\"div\", { key: a }, [r(\"strong\", [t._v(t._s(n.type) + \" Count\")]), t._v(\": \" + t._s(n.count) + \" \")]);\n })], 2) : t.hoveredEvent ? r(\"div\", [t.hoveredEvent.timestamp ? r(\"div\", [r(\"strong\", [t._v(\"Event time\")]), t._v(\": \" + t._s(t.hoveredEvent.timestamp) + \" \")]) : t._e(), t.hoveredEvent.startDate ? r(\"div\", [r(\"strong\", [t._v(\"From\")]), t._v(\":\" + t._s(t.hoveredEvent.startDate) + \" \")]) : t._e(), t.hoveredEvent.endDate ? r(\"div\", [r(\"strong\", [t._v(\"To\")]), t._v(\":\" + t._s(t.hoveredEvent.endDate) + \" \")]) : t._e()]) : t._e()]) : t._e()];\n }, { event: t.hoveredEvent, counts: t.hoveredCounts, active: t.isHoveringEvent && !t.isInteractingWithCurtain, type: t.hoveredEventType })], 2)]);\n}, Yt = [], Zt = /* @__PURE__ */ q(\n qt,\n Xt,\n Yt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Kt = Zt.exports, we = {\n EAvatar: lt,\n EBadge: Ae,\n EIcon: Ct,\n ESpinner: Ke,\n ERow: Ft,\n ECol: Gt,\n EVideoPlayer: Nt,\n ETimeline: Kt\n}, ir = {\n install(e) {\n Object.keys(we).forEach((t) => {\n e.component(t, we[t]);\n }), Vt.forEach(({ name: t, definition: r }) => {\n e.directive(t, r);\n });\n }\n};\nexport {\n tr as AvatarSizes,\n rr as BadgeColors,\n er as BadgeSizes,\n j as BaseColor,\n vt as Colors,\n Vt as DirectivesMap,\n lt as EAvatar,\n Ae as EBadge,\n Gt as ECol,\n Ct as EIcon,\n Ft as ERow,\n Ke as ESpinner,\n Kt as ETimeline,\n nr as EVENTS,\n Nt as EVideoPlayer,\n yt as IconSizes,\n Qe as ResizeObserverDirective,\n T as Size,\n gt as TextSizes,\n ee as TimelineAxis,\n we as components,\n ir as default,\n jt as exitFullScreen,\n Ze as fullConfig,\n Je as isFullScreen,\n Ht as makeFullScreen\n};\n//# sourceMappingURL=index.mjs.map\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { makeFullScreen, exitFullScreen } from \"@evercam/ui\"\r\n// types:\r\nexport type VideoSource = {\r\n type: string\r\n src: string\r\n srcObject?: MediaStream\r\n}\r\n\r\nexport type MediaType = \"video\" | \"webRtc\" | \"ptz\" | \"hls\"\r\n\r\n// Helper functions\r\nconst leadingZeroFormatter = new Intl.NumberFormat(undefined, {\r\n minimumIntegerDigits: 2,\r\n})\r\n\r\n// List of events so we can bind them on mount\r\nexport const VIDEO_PLAYER_EVENTS = [\r\n \"play\",\r\n \"pause\",\r\n \"ended\",\r\n \"loadeddata\",\r\n \"waiting\",\r\n \"playing\",\r\n \"timeupdate\",\r\n \"canplay\",\r\n \"canplaythrough\",\r\n \"statechanged\",\r\n \"error\",\r\n]\r\n\r\nconst formatDuration = (time: number) => {\r\n const seconds = Math.floor(time % 60)\r\n const minutes = Math.floor(time / 60) % 60\r\n const hours = Math.floor(time / 3600)\r\n if (hours === 0) {\r\n return `${minutes}:${leadingZeroFormatter.format(seconds)}`\r\n } else {\r\n return `${hours}:${leadingZeroFormatter.format(\r\n minutes\r\n )}:${leadingZeroFormatter.format(seconds)}`\r\n }\r\n}\r\n\r\nexport default Vue.extend({\r\n name: \"VideoPlayer\",\r\n\r\n props: {\r\n type: {\r\n type: String as PropType<MediaType>,\r\n default: \"video\",\r\n },\r\n sources: {\r\n type: [Array, String] as PropType<VideoSource[] | string>,\r\n required: true,\r\n },\r\n videoListeners: {\r\n type: Object as PropType<Partial<HTMLVideoElement>>,\r\n default: () => ({}),\r\n },\r\n videoOptions: {\r\n type: Object as PropType<Partial<HTMLVideoElement>>,\r\n default: () => ({}),\r\n },\r\n },\r\n data() {\r\n return {\r\n playing: false,\r\n percentagePlayed: 0,\r\n videoLength: \"0:00\",\r\n duration: 0,\r\n videoDuration: 0,\r\n currentTime: \"0:00\",\r\n realtime: 0,\r\n isScrubbing: false,\r\n wasPaused: false,\r\n isFullscreen: false,\r\n isFinished: false,\r\n isLoading: true,\r\n isError: false,\r\n }\r\n },\r\n computed: {\r\n sourceItems() {\r\n return (\r\n Array.isArray(this.sources) ? this.sources : [{ src: this.sources }]\r\n ) as VideoSource[]\r\n },\r\n hasStartedOrFinished(): boolean {\r\n return (\r\n (this.isFinished || this.realtime <= 0.1) &&\r\n !this.isLoading &&\r\n !this.isLooped()\r\n )\r\n },\r\n withControls() {\r\n const videoOptions = this.videoOptions as Partial<HTMLVideoElement>\r\n\r\n return videoOptions?.controls === false ? \"hide\" : \"\"\r\n },\r\n },\r\n mounted() {\r\n this.bindEvents()\r\n this.initializePlayer()\r\n this.initializeFullscreenListeners()\r\n },\r\n destroyed() {\r\n this.unbindEvents()\r\n this.destroyPlayer()\r\n this.removeFullscreenListeners()\r\n },\r\n\r\n methods: {\r\n handle404Error(e) {\r\n console.log({ e })\r\n if (this.type === \"webRtc\") {\r\n this.handleLoading()\r\n\r\n return\r\n } else {\r\n this.isError = true\r\n this.isLoading = false\r\n this.playing = false\r\n }\r\n },\r\n bindEvents() {\r\n VIDEO_PLAYER_EVENTS.forEach((event) => {\r\n this.bindVideoEvent(event)\r\n })\r\n },\r\n unbindEvents() {\r\n VIDEO_PLAYER_EVENTS.forEach((event) => {\r\n this.unbindVideoEvent(event)\r\n })\r\n },\r\n bindVideoEvent(which: string) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n player.addEventListener(\r\n which,\r\n (event) => {\r\n if (which === \"loadeddata\") {\r\n this.videoLength = formatDuration(player.duration)\r\n }\r\n\r\n if (which === \"timeupdate\") {\r\n this.percentagePlayed = (player.currentTime / player.duration) * 100\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n this.percentagePlayed.toString()\r\n )\r\n }\r\n\r\n this.$emit(which, { event, player: this })\r\n },\r\n true\r\n )\r\n },\r\n unbindVideoEvent(which: string) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n player.addEventListener(\r\n which,\r\n (event) => {\r\n if (which === \"loadeddata\") {\r\n this.videoLength = formatDuration(player.duration)\r\n }\r\n\r\n if (which === \"timeupdate\") {\r\n this.percentagePlayed = (player.currentTime / player.duration) * 100\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n this.percentagePlayed.toString()\r\n )\r\n }\r\n\r\n this.$emit(which, { event, player: this })\r\n },\r\n true\r\n )\r\n },\r\n initializePlayer() {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n if (playerRef.autoplay) {\r\n this.setPlaying(true)\r\n }\r\n document.addEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\r\n document.addEventListener(\"keydown\", this.handleKeyDown)\r\n },\r\n destroyPlayer() {\r\n window.removeEventListener(\"keydown\", this.handleKeyDown)\r\n document.removeEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\r\n },\r\n removeFullscreenListeners() {\r\n if (\r\n document.fullscreenEnabled ||\r\n document.webkitFullscreenEnabled ||\r\n document.mozFullScreenEnabled ||\r\n document.msFullscreenEnabled\r\n ) {\r\n document.removeEventListener(\r\n \"fullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.removeEventListener(\r\n \"webkitfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.removeEventListener(\r\n \"mozfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.removeEventListener(\r\n \"MSFullscreenChange\",\r\n this.handleFullscreenChange\r\n )\r\n } else {\r\n console.log(\"Fullscreen API is not supported in this browser.\")\r\n }\r\n },\r\n initializeFullscreenListeners() {\r\n if (\r\n document.fullscreenEnabled ||\r\n document.webkitFullscreenEnabled ||\r\n document.mozFullScreenEnabled ||\r\n document.msFullscreenEnabled\r\n ) {\r\n document.addEventListener(\r\n \"fullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.addEventListener(\r\n \"webkitfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.addEventListener(\r\n \"mozfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.addEventListener(\r\n \"MSFullscreenChange\",\r\n this.handleFullscreenChange\r\n )\r\n } else {\r\n console.log(\"Fullscreen API is not supported in this browser.\")\r\n }\r\n },\r\n handleFullscreenChange() {\r\n this.isFullscreen =\r\n document.fullscreenElement ||\r\n document.mozFullScreenElement ||\r\n document.webkitFullscreenElement ||\r\n document.msFullscreenElement ||\r\n (window.innerWidth == screen.width &&\r\n window.innerHeight == screen.height)\r\n },\r\n\r\n isLooped() {\r\n const player = this.$refs.player as HTMLVideoElement\r\n\r\n return player.loop\r\n },\r\n handleScrubbingOnMouseEnd(e: MouseEvent) {\r\n if (this.isScrubbing) {\r\n this.toggleScrubbing(e)\r\n }\r\n },\r\n handleEnded() {\r\n this.isFinished = true\r\n this.playing = false\r\n },\r\n handleLoading() {\r\n this.isLoading = false\r\n },\r\n play() {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n const playPromise = playerRef.play()\r\n if (playPromise !== undefined) {\r\n playerRef\r\n .play()\r\n .then(() => this.setPlaying(true))\r\n .catch(console.error)\r\n }\r\n },\r\n pause() {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n playerRef.pause()\r\n this.setPlaying(false)\r\n },\r\n togglePlay() {\r\n if (this.playing) {\r\n this.pause()\r\n } else {\r\n this.play()\r\n }\r\n },\r\n setPlaying(state: boolean) {\r\n this.playing = state\r\n },\r\n seekToPercentage(percentage: number) {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n const currentTime = (percentage / 100) * playerRef.duration\r\n playerRef.currentTime = currentTime\r\n },\r\n convertTimeToDuration(seconds: number) {\r\n // @ts-ignore\r\n return [parseInt((seconds / 60) % 60, 10), parseInt(seconds % 60, 10)]\r\n .join(\":\")\r\n .replace(/\\b(\\d)\\b/g, \"0$1\")\r\n },\r\n\r\n closeFullscreenMode() {\r\n if (document.fullscreenElement) {\r\n exitFullScreen().then(() => {\r\n this.isFullscreen = false\r\n console.log(\"Exited fullscreen\")\r\n })\r\n\r\n this.isFullscreen = false\r\n }\r\n },\r\n openFullscreenMode() {\r\n const element = this.$refs.videoContainer as HTMLDivElement\r\n if (element) {\r\n makeFullScreen(element).then(() => {\r\n this.isFullscreen = true\r\n })\r\n this.isFullscreen = true\r\n }\r\n },\r\n toggleFullscreenMode() {\r\n if (this.isFullscreen) {\r\n this.closeFullscreenMode()\r\n } else {\r\n this.openFullscreenMode()\r\n }\r\n },\r\n\r\n getDuration() {\r\n const player = this.$refs.player as HTMLVideoElement\r\n this.videoLength = formatDuration(player.duration)\r\n this.videoDuration = player.duration\r\n },\r\n handleTimeUpdate() {\r\n const player = this.$refs.player as HTMLVideoElement\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n if (!player || !timelineContainer) {\r\n return\r\n }\r\n this.currentTime = formatDuration(player.currentTime)\r\n this.realtime = player.currentTime\r\n const percent = Number(this.realtime) / Number(this.videoDuration)\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n percent.toString()\r\n )\r\n },\r\n handleTimelineUpdate(e: MouseEvent) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n if (!document.body.contains(player)) {\r\n return\r\n }\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n const rect = timelineContainer.getBoundingClientRect()\r\n const percent =\r\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\r\n timelineContainer.style.setProperty(\r\n \"--preview-position\",\r\n percent.toString()\r\n )\r\n if (this.isScrubbing) {\r\n e.preventDefault()\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n percent.toString()\r\n )\r\n }\r\n },\r\n skip(duration = 5) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n\r\n player.currentTime += duration\r\n },\r\n async toggleScrubbing(e: MouseEvent) {\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n const videoContainer = this.$refs.videoContainer as HTMLDivElement\r\n const player = this.$refs.player as HTMLVideoElement\r\n if (!player) {\r\n return\r\n }\r\n const rect = timelineContainer.getBoundingClientRect()\r\n const percent =\r\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\r\n this.isScrubbing = (e.buttons & 1) === 1\r\n videoContainer.classList.toggle(\"scrubbing\", this.isScrubbing)\r\n if (this.isScrubbing) {\r\n this.wasPaused = player.paused\r\n await player.pause()\r\n this.handleTimelineUpdate(e)\r\n\r\n return\r\n }\r\n this.realtime = percent * this.videoDuration\r\n player.currentTime = percent * this.videoDuration\r\n if (this.wasPaused) {\r\n return\r\n }\r\n const playPromise = player.play()\r\n // @see issue: https://developer.chrome.com/blog/play-request-was-interrupted/\r\n if (playPromise !== undefined) {\r\n playPromise\r\n .then(() => this.handleTimelineUpdate(e))\r\n .catch(console.error)\r\n }\r\n },\r\n\r\n handleKeyDown(e: KeyboardEvent) {\r\n const tagName = document.activeElement?.tagName.toLowerCase()\r\n if (tagName === \"input\") {\r\n return\r\n }\r\n switch (e.key.toLowerCase()) {\r\n case \" \":\r\n if (tagName === \"button\") {\r\n return\r\n }\r\n this.togglePlay()\r\n break\r\n case \"k\":\r\n this.togglePlay()\r\n break\r\n case \"escape\":\r\n e.preventDefault()\r\n this.closeFullscreenMode()\r\n this.isFullscreen = false\r\n\r\n break\r\n case \"f\":\r\n this.openFullscreenMode()\r\n this.isFullscreen = true\r\n\r\n break\r\n }\r\n },\r\n },\r\n})\r\n","import * as d3 from \"d3\"\r\nimport { TimelineAxis, TimelineAxesConfig } from \"@/types\"\r\n\r\nconst getFormattedDay = (d: Date) => {\r\n const day = d3.utcFormat(\"%_d\")(d)\r\n const daySuffixes: { [key: string]: string } = {\r\n [\"1\"]: \"st\",\r\n [\"2\"]: \"nd\",\r\n [\"3\"]: \"rd\",\r\n }\r\n\r\n const daySuffix = daySuffixes[day.charAt(1)] || \"th\"\r\n\r\n return `${day}${daySuffix}`\r\n}\r\n\r\nconst getFormattedDayNoEndOfMonth = (d: Date) => {\r\n const nextDay = new Date(\r\n Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() + 1)\r\n )\r\n const isEndOfTheMonth = nextDay.getUTCDate() === 1\r\n\r\n if (isEndOfTheMonth) {\r\n return \"\"\r\n }\r\n\r\n return d3.utcFormat(\"%-d\")(d)\r\n}\r\n\r\nconst getFormattedHour = (d: Date) => {\r\n return [\"0\", \" 0\", \"00\"].includes(d3.utcFormat(\"%H\")(d))\r\n ? \"\"\r\n : `${d3.utcFormat(\"%H\")(d)}h`\r\n}\r\n\r\nconst getFormattedHourMinute = (d: Date) => {\r\n const HH_MM = d3.utcFormat(\"%H:%M\")(d)\r\n\r\n return HH_MM === \"00:00\" ? \"\" : HH_MM\r\n}\r\n\r\nconst getFormattedMinuteSecond = (d: Date) => {\r\n return d3.utcFormat(\"%M:%S\")(d)\r\n}\r\n\r\nconst getFormattedOverviewMinuteSecond = (d: Date) => {\r\n const HH_MM_SS = d3.utcFormat(\"%Hh%Mm\")(d)\r\n\r\n return `${HH_MM_SS}`\r\n}\r\n\r\nconst getFormattedOverviewHour = (d: Date) => {\r\n const hour = getFormattedHourMinute(d)\r\n const day = getFormattedDay(d)\r\n const month = d3.utcFormat(\"%B\")(d)\r\n\r\n return hour || `${month} ${day}`\r\n}\r\n\r\nconst getFormattedDayHourMinute = (d: Date) => {\r\n const HH_MM = getFormattedHourMinute(d)\r\n const hour = Number.parseInt(d3.utcFormat(\"%H\")(d))\r\n const day = getFormattedDay(d)\r\n const month = d3.utcFormat(\"%B\")(d)\r\n\r\n if (HH_MM && hour % 6 === 0) {\r\n return `${month} ${day} ${HH_MM}`\r\n }\r\n\r\n return getFormattedOverviewHour(d)\r\n}\r\n\r\nconst filterHourDivisibleBy = (n: number) => {\r\n return (d: Date) => {\r\n const hour = d3.utcFormat(\"%H\")(d)\r\n const minute = d3.utcFormat(\"%M\")(d)\r\n\r\n return !(minute === \"00\" && Number.parseInt(hour) % n === 0)\r\n }\r\n}\r\n\r\nconst filterMinutesDivisibleBy = (n: number) => {\r\n return (d: Date) => {\r\n const minute = d3.utcFormat(\"%M\")(d)\r\n\r\n return Number.parseInt(minute) % n !== 0\r\n }\r\n}\r\n\r\nconst filterMinutesSecondsDivisibleBy = (n: number) => {\r\n return (d: Date) => {\r\n const minute = d3.utcFormat(\"%M\")(d)\r\n const second = d3.utcFormat(\"%S\")(d)\r\n\r\n return Number.parseInt(minute) % n !== 0 && Number.parseInt(second) === 0\r\n }\r\n}\r\n\r\n/**\r\n * Precision of the timeline ticks\r\n * (measured in Hours per Pixel)\r\n */\r\nconst Precision = {\r\n _10_seconds: 0.000025,\r\n _20_seconds: 0.0001,\r\n _30_seconds: 0.00015,\r\n _1_minute: 0.0003,\r\n _2_minutes: 0.00075,\r\n _5_minutes: 0.002,\r\n _15_minutes: 0.005,\r\n _30_minutes: 0.01,\r\n _1_hour: 0.025,\r\n _2_hours: 0.05,\r\n _3_hours: 0.1,\r\n _4_hours: 0.15,\r\n _6_hours: 0.25,\r\n _1_day: 1,\r\n _2_days: 2,\r\n _1_month: 8,\r\n _1_month_abbr: 13,\r\n _1_month_letter: 22,\r\n _3_months: 33,\r\n infinity: Infinity,\r\n}\r\n\r\n/**\r\n * Map of formats and ticks intervals for the Timeline axis(s) by type.\r\n */\r\nexport const defaultAxesConfig: TimelineAxesConfig = {\r\n [TimelineAxis.overview]: [\r\n {\r\n precision: Precision._30_seconds,\r\n interval: d3.utcMinute.every(2),\r\n format: getFormattedOverviewMinuteSecond,\r\n },\r\n {\r\n precision: Precision._1_minute,\r\n interval: d3.utcMinute.every(5),\r\n format: getFormattedOverviewMinuteSecond,\r\n },\r\n {\r\n precision: Precision._2_minutes,\r\n interval: d3.utcMinute.every(10),\r\n format: getFormattedOverviewHour,\r\n },\r\n {\r\n precision: Precision._5_minutes,\r\n interval: d3.utcMinute.every(20),\r\n format: getFormattedDayHourMinute,\r\n },\r\n {\r\n precision: Precision._15_minutes,\r\n interval: d3.utcHour,\r\n format: getFormattedDayHourMinute,\r\n },\r\n {\r\n precision: Precision._30_minutes,\r\n interval: d3.utcHour.every(2),\r\n format: getFormattedDayHourMinute,\r\n },\r\n {\r\n precision: Precision._2_hours,\r\n interval: d3.utcHour.every(6),\r\n format: (d: Date) => {\r\n const hour = getFormattedHourMinute(d)\r\n const day = getFormattedDay(d)\r\n const month = d3.utcFormat(\"%B\")(d)\r\n\r\n return hour || `${month} ${day}`\r\n },\r\n },\r\n {\r\n precision: Precision._3_hours,\r\n interval: d3.utcHour.every(12),\r\n format: getFormattedOverviewHour,\r\n },\r\n {\r\n precision: Precision._6_hours,\r\n interval: d3.utcHour.every(24),\r\n format: (d: Date) => {\r\n const day = getFormattedDay(d)\r\n const abbreviatedMonth = d3.utcFormat(\"%b\")(d)\r\n\r\n return `${abbreviatedMonth} ${day}`\r\n },\r\n },\r\n {\r\n precision: Precision._2_days,\r\n interval: d3.utcMonth,\r\n format: (d: Date) => {\r\n const startOfTheYear = d.getUTCMonth() === 0 && d.getUTCDate() === 1\r\n const format = startOfTheYear ? \"%Y – %B\" : \"%B\"\r\n\r\n return d3.utcFormat(format)(d)\r\n },\r\n },\r\n {\r\n precision: Precision.infinity,\r\n interval: d3.utcYear,\r\n format: \"%Y\",\r\n },\r\n ],\r\n [TimelineAxis.detailed]: [\r\n {\r\n precision: Precision._10_seconds,\r\n interval: d3.utcSecond.every(10),\r\n format: getFormattedMinuteSecond,\r\n },\r\n {\r\n precision: Precision._20_seconds,\r\n interval: d3.utcSecond\r\n .every(20)\r\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\r\n format: getFormattedMinuteSecond,\r\n },\r\n {\r\n precision: Precision._30_seconds,\r\n interval: d3.utcSecond\r\n .every(30)\r\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\r\n format: getFormattedMinuteSecond,\r\n },\r\n {\r\n precision: Precision._1_minute,\r\n interval: d3.utcMinute.filter(filterMinutesDivisibleBy(5)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._2_minutes,\r\n interval: d3.utcMinute.every(2)?.filter(filterMinutesDivisibleBy(10)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._5_minutes,\r\n interval: d3.utcMinute.every(5)?.filter(filterMinutesDivisibleBy(20)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._15_minutes,\r\n interval: d3.utcMinute.every(15)?.filter(filterHourDivisibleBy(1)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._30_minutes,\r\n interval: d3.utcMinute.every(30)?.filter(filterHourDivisibleBy(2)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._1_hour,\r\n interval: d3.utcHour.filter(filterHourDivisibleBy(6)),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._2_hours,\r\n interval: d3.utcHour.every(2)?.filter(filterHourDivisibleBy(6)),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._3_hours,\r\n interval: d3.utcHour.every(3)?.filter(filterHourDivisibleBy(12)),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._4_hours,\r\n interval: d3.utcHour.every(4),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._6_hours,\r\n interval: d3.utcHour.every(6),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._1_day,\r\n interval: d3.utcDay,\r\n format: getFormattedDayNoEndOfMonth,\r\n },\r\n {\r\n precision: Precision._2_days,\r\n interval: d3.utcDay.every(2),\r\n format: getFormattedDayNoEndOfMonth,\r\n },\r\n {\r\n precision: Precision._1_month,\r\n interval: d3.utcMonth,\r\n format: \"%B\",\r\n },\r\n {\r\n precision: Precision._1_month_abbr,\r\n interval: d3.utcMonth,\r\n format: \"%b\",\r\n },\r\n {\r\n precision: Precision._1_month_letter,\r\n interval: d3.utcMonth,\r\n format: (d: Date) => d3.utcFormat(\"%B\")(d).charAt(0),\r\n },\r\n {\r\n precision: Precision._3_months,\r\n interval: d3.utcMonth.every(3),\r\n format: \"Q%q\",\r\n },\r\n {\r\n precision: Precision.infinity,\r\n interval: d3.utcMonth.every(3),\r\n format: \"\",\r\n },\r\n ],\r\n [TimelineAxis.detailedBackground]: [\r\n {\r\n precision: Precision._10_seconds,\r\n interval: d3.utcSecond,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._20_seconds,\r\n interval: d3.utcSecond.every(5),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._30_seconds,\r\n interval: d3.utcSecond.every(10),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_minute,\r\n interval: d3.utcSecond.every(20),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._2_minutes,\r\n interval: d3.utcSecond.every(30),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._5_minutes,\r\n interval: d3.utcMinute,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._15_minutes,\r\n interval: d3.utcMinute.every(3),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._30_minutes,\r\n interval: d3.utcMinute.every(6),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_hour,\r\n interval: d3.utcMinute.every(15),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._2_hours,\r\n interval: d3.utcMinute.every(30),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._3_hours,\r\n interval: d3.utcHour,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._4_hours,\r\n interval: d3.utcHour,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._6_hours,\r\n interval: d3.utcMinute.every(120),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_day,\r\n interval: d3.utcHour.every(8),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._2_days,\r\n interval: d3.utcHour.every(12),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_month,\r\n interval: d3.utcDay.filter((d: Date) => {\r\n const dayOfMonth = d.getUTCDate()\r\n const daysInMonth = new Date(\r\n d.getUTCFullYear(),\r\n d.getUTCMonth() + 1,\r\n 0\r\n ).getUTCDate()\r\n const fifthOfMonth = Math.ceil(daysInMonth / 5) // 1/4 of the month\r\n\r\n return (\r\n dayOfMonth === fifthOfMonth ||\r\n dayOfMonth === 2 * fifthOfMonth ||\r\n dayOfMonth === 3 * fifthOfMonth ||\r\n dayOfMonth === 4 * fifthOfMonth\r\n )\r\n }),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_month_abbr,\r\n interval: d3.utcDay.filter((d: Date) => {\r\n const dayOfMonth = d.getUTCDate()\r\n const daysInMonth = new Date(\r\n d.getUTCFullYear(),\r\n d.getUTCMonth() + 1,\r\n 0\r\n ).getUTCDate()\r\n const quarterOfTheMonth = Math.ceil(daysInMonth / 4) // 1/4 of the month\r\n\r\n return (\r\n dayOfMonth === quarterOfTheMonth ||\r\n dayOfMonth === 2 * quarterOfTheMonth ||\r\n dayOfMonth === 3 * quarterOfTheMonth\r\n )\r\n }),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_month_letter,\r\n interval: d3.utcDay.filter((d: Date) => {\r\n const dayOfMonth = d.getUTCDate()\r\n const daysInMonth = new Date(\r\n d.getUTCFullYear(),\r\n d.getUTCMonth() + 1,\r\n 0\r\n ).getUTCDate()\r\n const halfOfTheMonth = Math.ceil(daysInMonth / 2) // 1/4 of the month\r\n\r\n return dayOfMonth === halfOfTheMonth\r\n }),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._3_months,\r\n interval: d3.utcMonth,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision.infinity,\r\n interval: d3.utcMonth,\r\n format: \"\",\r\n },\r\n ],\r\n}\r\n","import { DirectiveOptions } from \"vue\"\r\n\r\nexport interface ObservedElement extends HTMLElement {\r\n __resizeObserver__?: ResizeObserver\r\n}\r\n\r\nconst ResizeObserverDirective: DirectiveOptions = {\r\n bind(el, binding) {\r\n const { value: callback } = binding\r\n\r\n if (typeof callback !== \"function\") {\r\n console.error(\"Invalid callback function provided to v-resize-observer\")\r\n\r\n return\r\n }\r\n\r\n const observer: ResizeObserver = new ResizeObserver(\r\n (entries: ResizeObserverEntry[]) => {\r\n if (!entries[0]) {\r\n return\r\n }\r\n\r\n callback(entries[0])\r\n }\r\n )\r\n\r\n observer.observe(el)\r\n ;(el as ObservedElement).__resizeObserver__ = observer\r\n },\r\n unbind(el) {\r\n if ((el as ObservedElement).__resizeObserver__) {\r\n ;(el as ObservedElement).__resizeObserver__!.disconnect()\r\n delete (el as ObservedElement).__resizeObserver__\r\n }\r\n },\r\n}\r\n\r\nexport default ResizeObserverDirective\r\n","import ResizeObserverDirective from \"@/directives/resize-observer\"\r\n\r\nexport const DirectivesMap = [\r\n {\r\n name: \"resize-observer\",\r\n definition: ResizeObserverDirective,\r\n },\r\n]\r\n\r\nexport { ResizeObserverDirective }\r\n","\r\nimport * as d3 from \"d3\"\r\nimport Vue, { PropType } from \"vue\"\r\nimport { D3ZoomEvent, Axis, ZoomBehavior } from \"d3\"\r\nimport { defaultAxesConfig } from \"@/components/ETimeline.config\"\r\nimport {\r\n TimelineAxesConfig,\r\n TimelineAxis,\r\n TimelineTicksConfig,\r\n Timestamp,\r\n} from \"@/types\"\r\nimport { ResizeObserverDirective } from \"@/directives\"\r\nimport moment from \"moment-timezone\"\r\n\r\nexport type TimelineBarEvent = {\r\n timestamp: string | Date\r\n [key: string]: any\r\n}\r\n\r\nexport type TimelineRangeEvent = {\r\n startDate: string | Date\r\n endDate: string | Date\r\n [key: string]: any\r\n}\r\n\r\nexport type TimelineCountEvent = {\r\n timestamp: string | Date\r\n count: number\r\n [key: string]: any\r\n}\r\n\r\nexport type TimelineEvent =\r\n | TimelineBarEvent\r\n | TimelineRangeEvent\r\n | TimelineCountEvent\r\n\r\nexport enum TimelineChartType {\r\n bars = \"bars\",\r\n lineGraph = \"lineGraph\",\r\n}\r\n\r\nexport type TimelineEventsGroup = {\r\n label: string\r\n color: string\r\n isLoading?: Boolean\r\n isHidden?: Boolean\r\n chartType?: TimelineChartType\r\n events: Array<TimelineEvent>\r\n}\r\n\r\nexport type TimelineEventsByType = {\r\n [eventsType: string]: TimelineEventsGroup\r\n}\r\n\r\nconst classes = {\r\n eventGroup: \"event-group\",\r\n eventGroupBg: \"event-group-bg\",\r\n eventRect: \"event-rect\",\r\n labelBg: \"label-bg\",\r\n labelBgFill: \"label-bg-fill\",\r\n labelText: \"label-text\",\r\n loadingIndicator: \"loading-indicator\",\r\n xAxis: \"x-axis\",\r\n selectedTimestampCursor: \"selected-timestamp-cursor\",\r\n lineGraphGroup: \"line-graph-group\",\r\n lineGraphPath: \"line-graph-path\",\r\n lineGraphHoverZone: \"line-graph-hover-zone\",\r\n lineGraphDot: \"line-graph-dot\",\r\n curtain: \"curtain\",\r\n}\r\n\r\nconst defs = {\r\n areaGradient: \"area-gradient\",\r\n loadingGradient: \"loading-gradient\",\r\n}\r\n\r\nexport default Vue.extend({\r\n name: \"ETimeline\",\r\n directives: {\r\n resizeObserver: ResizeObserverDirective,\r\n },\r\n props: {\r\n eventsGroups: {\r\n type: Object as PropType<TimelineEventsByType>,\r\n default: () => ({}),\r\n },\r\n xAxesConfig: {\r\n type: Object as PropType<TimelineAxesConfig>,\r\n default: () => defaultAxesConfig,\r\n },\r\n dark: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n startDate: {\r\n type: String,\r\n default: undefined,\r\n },\r\n endDate: {\r\n type: String,\r\n default: undefined,\r\n },\r\n selectedTimestamp: {\r\n type: String,\r\n default: undefined,\r\n },\r\n showEventTooltip: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n disableZoom: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n normalizeEvents: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n flattenLineGraphEnds: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n curtains: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showLabels: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n rectMinWidth: {\r\n type: Number,\r\n default: 1,\r\n },\r\n barChartHeight: {\r\n type: Number,\r\n default: 18,\r\n },\r\n lineGraphMinHeight: {\r\n type: Number,\r\n default: 60,\r\n },\r\n minZoom: {\r\n type: Number,\r\n default: 0.0001,\r\n },\r\n maxZoom: {\r\n type: Number,\r\n default: 850_000,\r\n },\r\n cursorTimestamp: {\r\n type: [String, undefined] as PropType<string | undefined>,\r\n default: undefined,\r\n },\r\n },\r\n data() {\r\n return {\r\n tooltip: null as unknown as HTMLElement,\r\n cursor: null as unknown as HTMLElement,\r\n timeline: null as unknown as HTMLElement,\r\n selectedTimestampCursor: null as unknown as HTMLElement,\r\n svg: null as unknown as d3.Selection<SVGSVGElement, any, any, any>,\r\n axesContainer: null as unknown as d3.Selection<\r\n SVGGElement,\r\n any,\r\n any,\r\n any\r\n >,\r\n xAxes: {} as unknown as Record<TimelineAxis, Axis<Date>>,\r\n timeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\r\n initialTimeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\r\n currentTimeScaleDensity: null as unknown as number,\r\n zoomBehavior: null as unknown as ZoomBehavior<SVGSVGElement, unknown>,\r\n isMouseDown: false,\r\n axisHeight: 22,\r\n eventGroupPadding: 0,\r\n isHoveringEvent: false,\r\n hoveredEvent: null as unknown as TimelineEvent,\r\n isHoveringTimeline: false,\r\n hoveredTimestamp: null as unknown as string,\r\n eventTooltipStyle: {},\r\n hoveredEventType: null as unknown as string,\r\n utcOffset: 0,\r\n lastTransform: { x: 0, k: 1 },\r\n transformDiff: { translation: 0, scale: 1 },\r\n yScale: null as unknown as d3.ScaleLinear<any, any>,\r\n hoveredCounts: [] as { count: number; type: string }[],\r\n countsByTimestamp: {} as Record<string, Record<string, number>>,\r\n dotsByTimestamp: {} as Record<\r\n string,\r\n d3.Selection<SVGCircleElement, any, any, any>[]\r\n >,\r\n visibleFrom: null as unknown as Date,\r\n visibleTo: null as unknown as Date,\r\n curtainHandleWidth: 5,\r\n leftCurtainWidth: 50,\r\n rightCurtainWidth: 50,\r\n isHoveringCurtain: false,\r\n isDraggingCurtain: false,\r\n }\r\n },\r\n computed: {\r\n classes(): Record<string, string | Record<string, boolean>> {\r\n return {\r\n wrapper: {\r\n \"e-border-gray-700 e-timeline--dark\": this.dark,\r\n \"e-border-gray-300\": !this.dark,\r\n \"e-timeline--dragging\": this.isInteractingWithCurtain,\r\n },\r\n background: this.dark ? \"e-bg-gray-900\" : \"e-bg-gray-50\",\r\n tooltipSlot: this.dark\r\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\r\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\r\n eventTooltipSlot: this.dark\r\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\r\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\r\n }\r\n },\r\n lineGraphGroups(): TimelineEventsByType {\r\n return Object.entries(this.filteredEventsGroups).reduce(\r\n (acc, [type, eventsGroup]) => {\r\n if (eventsGroup.chartType === TimelineChartType.lineGraph) {\r\n return { ...acc, [type]: eventsGroup }\r\n } else {\r\n return acc\r\n }\r\n },\r\n {}\r\n )\r\n },\r\n lineGraphChartHeight(): number {\r\n if (!this.showLabels) {\r\n return this.lineGraphMinHeight\r\n }\r\n\r\n const combinedLabelsHeight =\r\n Object.keys(this.lineGraphGroups).length * this.barChartHeight\r\n\r\n return Math.max(this.lineGraphMinHeight, combinedLabelsHeight)\r\n },\r\n barGroups(): TimelineEventsByType {\r\n return Object.entries(this.filteredEventsGroups).reduce(\r\n (acc, [type, eventsGroup]) => {\r\n if (eventsGroup.chartType !== TimelineChartType.lineGraph) {\r\n return { ...acc, [type]: eventsGroup }\r\n } else {\r\n return acc\r\n }\r\n },\r\n {}\r\n )\r\n },\r\n hasLineGraphChart(): boolean {\r\n return Object.keys(this.lineGraphGroups).length > 0\r\n },\r\n labelRectWidth(): number {\r\n const eventsGroups = Object.values(\r\n this.eventsGroups\r\n ) as TimelineEventsGroup[]\r\n const maxLabelLength = eventsGroups.reduce((acc, eventsGroup) => {\r\n return Math.max(acc, eventsGroup.label?.length)\r\n }, 0)\r\n\r\n return maxLabelLength * 7.5 + 5\r\n },\r\n combinedXAxesHeight(): number {\r\n const axesCount = Object.keys(this.xAxesConfig).length - 1\r\n\r\n return this.axisHeight * axesCount\r\n },\r\n timelineHeight(): number {\r\n const barGroupsCount = Object.keys(this.barGroups).length\r\n const lineGraphChartHeight = this.hasLineGraphChart\r\n ? this.lineGraphChartHeight\r\n : 0\r\n const padding = this.eventGroupPadding * (barGroupsCount - 1)\r\n const eventsGouprsHeight = this.barChartHeight * barGroupsCount\r\n\r\n return (\r\n this.combinedXAxesHeight +\r\n lineGraphChartHeight +\r\n eventsGouprsHeight +\r\n padding\r\n )\r\n },\r\n filteredEventsGroups(): TimelineEventsByType {\r\n const entries = Object.entries(this.eventsGroups).filter(\r\n ([_type, group]) => {\r\n return !(group as TimelineEventsGroup).isHidden\r\n }\r\n )\r\n\r\n return Object.fromEntries(entries) as TimelineEventsByType\r\n },\r\n allEventsSorted(): TimelineEvent[] {\r\n const flattenedEvents = (\r\n Object.values(this.filteredEventsGroups) as TimelineEventsGroup[]\r\n )\r\n .map((e: TimelineEventsGroup) => e.events)\r\n .flat()\r\n\r\n return flattenedEvents.sort((a, b) =>\r\n new Date(a.timestamp || a.startDate) >\r\n new Date(b.timestamp || b.startDate)\r\n ? 1\r\n : -1\r\n )\r\n },\r\n oldestEvent(): TimelineEvent {\r\n let oldestEvent\r\n if (this.allEventsSorted.length > 1) {\r\n oldestEvent = this.allEventsSorted[0]\r\n } else {\r\n const DAY = 86_400_000\r\n const yesterday = new Date(new Date().getTime() - DAY)\r\n\r\n oldestEvent = {\r\n timestamp: yesterday,\r\n }\r\n }\r\n\r\n return oldestEvent\r\n },\r\n latestEvent(): TimelineEvent {\r\n let latestEvent\r\n if (this.allEventsSorted.length > 1) {\r\n latestEvent = this.allEventsSorted[this.allEventsSorted.length - 1]\r\n } else {\r\n const defaultMaxDate = new Date()\r\n\r\n latestEvent = {\r\n timestamp: defaultMaxDate,\r\n }\r\n }\r\n\r\n return latestEvent\r\n },\r\n allLineChartTimestamps(): string[] {\r\n const allTimestamps = new Set()\r\n Object.values(this.lineGraphGroups).forEach((group) => {\r\n group.events.forEach((event) => {\r\n allTimestamps.add(event.timestamp)\r\n })\r\n })\r\n\r\n return Array.from(allTimestamps).sort() as unknown as string[]\r\n },\r\n placeholderLineChartGroup(): TimelineEvent[] {\r\n return this.fillTimeGaps(\r\n this.allLineChartTimestamps.map((timestamp) => ({\r\n timestamp,\r\n count: 0,\r\n }))\r\n )\r\n },\r\n normalizedLineGraphGroups(): TimelineEventsByType {\r\n return Object.entries(this.lineGraphGroups).reduce(\r\n (acc, [type, group]) => {\r\n return {\r\n ...acc,\r\n [type]: {\r\n ...group,\r\n events: this.getNormalizedEvents(group.events),\r\n },\r\n }\r\n },\r\n {}\r\n )\r\n },\r\n isInteractingWithCurtain(): boolean {\r\n return this.isHoveringCurtain || this.isDraggingCurtain\r\n },\r\n },\r\n watch: {\r\n dark() {\r\n this.handleDarkModeChange()\r\n },\r\n selectedTimestamp() {\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n startDate() {\r\n this.zoomToStartAndEndDates()\r\n },\r\n endDate() {\r\n this.zoomToStartAndEndDates()\r\n },\r\n eventsGroups() {\r\n this.updateAndRedrawTimeline()\r\n },\r\n cursorTimestamp() {\r\n if (this.cursorTimestamp) {\r\n this.hoveredTimestamp = this.cursorTimestamp\r\n const timestamp = this.tzStringToDate(this.hoveredTimestamp)\r\n const cursorX = this.timeScale(timestamp)\r\n this.cursor.style.left = cursorX + \"px\"\r\n this.isHoveringTimeline = true\r\n } else {\r\n this.isHoveringTimeline = false\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.initTimeline()\r\n },\r\n beforeDestroy() {\r\n document.removeEventListener(\"mouseup\", this.handleDocumentMouseUp)\r\n },\r\n methods: {\r\n initTimeline(startDate?: string, endDate?: string) {\r\n this.initRefs()\r\n\r\n if (!this.timeline) {\r\n setTimeout(this.initTimeline, 500)\r\n\r\n return\r\n }\r\n\r\n this.initSvg()\r\n this.initDefs()\r\n this.initUtcOffset()\r\n this.initTimeScale(startDate, endDate)\r\n this.initXAxes()\r\n this.initYScale()\r\n this.initZoomBehavior()\r\n this.drawEventsGroups()\r\n this.initCurtains()\r\n this.emitCurtainChange()\r\n this.initSelectedTimestampCursor()\r\n this.registerEventsListeners()\r\n this.emitVisibleInterval()\r\n },\r\n initRefs() {\r\n this.tooltip = this.$refs.tooltip as HTMLElement\r\n this.cursor = this.$refs.cursor as HTMLElement\r\n this.timeline = this.$refs.timelineContainer as HTMLElement\r\n this.selectedTimestampCursor = this.$refs.selectedTimestamp as HTMLElement\r\n },\r\n initSvg() {\r\n this.svg = d3\r\n .select(this.timeline)\r\n .append(\"svg\")\r\n .attr(\"width\", this.timeline.offsetWidth)\r\n .attr(\"height\", this.timelineHeight) as d3.Selection<\r\n SVGSVGElement,\r\n any,\r\n any,\r\n any\r\n >\r\n },\r\n initDefs() {\r\n const defsSelection = this.svg.append(\"defs\")\r\n\r\n Object.entries(this.filteredEventsGroups).forEach(\r\n ([type, eventsGroup]) => {\r\n const { color, chartType } = eventsGroup\r\n const gradient = defsSelection\r\n .append(\"linearGradient\")\r\n .attr(\"id\", `${defs.loadingGradient}-${type}`)\r\n .attr(\"x1\", \"0%\")\r\n .attr(\"y1\", \"0%\")\r\n .attr(\"x2\", \"100%\")\r\n .attr(\"y2\", \"0%\")\r\n\r\n gradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"0%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", \"0\")\r\n gradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"50%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", \"0.6\")\r\n gradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"100%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", \"0\")\r\n\r\n if (chartType === TimelineChartType.lineGraph) {\r\n const areaGradient = defsSelection\r\n .append(\"linearGradient\")\r\n .attr(\"id\", `${defs.areaGradient}-${type}`)\r\n .attr(\"x1\", \"0%\")\r\n .attr(\"x2\", \"0%\")\r\n .attr(\"y1\", \"0%\")\r\n .attr(\"y2\", \"100%\")\r\n areaGradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"0%\")\r\n .style(\"stop-color\", color)\r\n .style(\"stop-opacity\", 0.3)\r\n areaGradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"38%\")\r\n .style(\"stop-color\", color)\r\n .style(\"stop-opacity\", 0)\r\n }\r\n }\r\n )\r\n },\r\n initUtcOffset() {\r\n const sampleTimestamp =\r\n this.startDate ||\r\n this.oldestEvent.timestamp ||\r\n this.oldestEvent.startDate\r\n this.utcOffset = moment.parseZone(sampleTimestamp).utcOffset()\r\n },\r\n initTimeScale(start?: string, end?: string) {\r\n const startDate =\r\n start ||\r\n this.startDate ||\r\n this.oldestEvent.timestamp ||\r\n this.oldestEvent.startDate\r\n const endDate =\r\n end ||\r\n this.endDate ||\r\n this.latestEvent.timestamp ||\r\n this.latestEvent.endDate\r\n\r\n this.timeScale = d3\r\n .scaleTime()\r\n .domain([this.tzStringToDate(startDate), this.tzStringToDate(endDate)])\r\n .range([0, this.timeline.offsetWidth])\r\n\r\n this.initialTimeScale = this.timeScale.copy()\r\n this.updateCurrentTimeScaleDensity()\r\n },\r\n initXAxes() {\r\n let i = 0\r\n const padding = 5\r\n for (const axisName in this.xAxesConfig) {\r\n const axis = this.createAxis(axisName as TimelineAxis)\r\n this.xAxes[axisName as TimelineAxis] = axis\r\n this.svg\r\n .append(\"g\")\r\n .classed(classes.xAxis, true)\r\n .classed(`${classes.xAxis}-${axisName}`, true)\r\n .attr(\"transform\", `translate(0, ${i || padding})`)\r\n .call(axis)\r\n\r\n this.translateTicksText(axisName)\r\n i += this.axisHeight\r\n }\r\n },\r\n initYScale() {\r\n this.yScale = d3.scaleLinear().range([this.lineGraphChartHeight, 0])\r\n const flattenedCounts = Object.values(this.lineGraphGroups)\r\n .map((g) => g.events)\r\n .flat()\r\n const maxCount = d3.max(flattenedCounts, (d) => d.count)\r\n this.yScale.domain([0, maxCount])\r\n },\r\n initZoomBehavior() {\r\n if (this.disableZoom) {\r\n return\r\n }\r\n\r\n this.zoomBehavior = d3\r\n .zoom<SVGSVGElement, unknown>()\r\n .on(\"zoom\", this.handleZoom)\r\n .scaleExtent([this.minZoom, this.maxZoom])\r\n\r\n this.svg.call(this.zoomBehavior)\r\n },\r\n initSelectedTimestampCursor() {\r\n this.svg\r\n .append(\"line\")\r\n .attr(\"class\", classes.selectedTimestampCursor)\r\n .style(\"stroke\", \"red\")\r\n .style(\"stroke-width\", \"1px\")\r\n .style(\"opacity\", 0)\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", 0)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", this.timelineHeight)\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n updateAndRedrawTimeline() {\r\n const { startDate, endDate } = this.getCurrentTimeBounds()\r\n this.clearTimeline()\r\n this.initTimeline(startDate, endDate)\r\n },\r\n clearTimeline() {\r\n if (this.svg) {\r\n this.svg.remove()\r\n }\r\n this.countsByTimestamp = {}\r\n },\r\n repositionSelectedTimestampCursor() {\r\n const cursor = this.svg.select(`.${classes.selectedTimestampCursor}`)\r\n if (!this.selectedTimestamp) {\r\n cursor.style(\"opacity\", 0)\r\n\r\n return\r\n }\r\n const timestamp = this.tzStringToDate(this.selectedTimestamp)\r\n const cursorX = this.timeScale(timestamp)\r\n if (!isNaN(cursorX)) {\r\n cursor.attr(\"x1\", cursorX).attr(\"x2\", cursorX).style(\"opacity\", 0.5)\r\n } else {\r\n cursor.style(\"opacity\", 0)\r\n }\r\n },\r\n updateCurrentTimeScaleDensity() {\r\n const timeAtPixel0 = this.timeScale.invert(0).getTime()\r\n const timeAtPixel1 = this.timeScale.invert(1).getTime()\r\n const HOUR = 3_600_000\r\n\r\n this.currentTimeScaleDensity = (timeAtPixel1 - timeAtPixel0) / HOUR\r\n },\r\n registerEventsListeners() {\r\n document.addEventListener(\"mouseup\", this.handleDocumentMouseUp)\r\n this.svg.on(\"mousedown\", this.handleMouseDown)\r\n this.svg.on(\"mousemove\", this.handleMouseMove)\r\n this.svg.on(\"click\", this.handleClick)\r\n this.svg.on(\"mouseleave\", this.handleMouseLeave)\r\n },\r\n emitVisibleInterval() {\r\n const visibleFrom = this.timeScale.invert(0)\r\n const visibleTo = this.timeScale.invert(this.timeline.offsetWidth)\r\n\r\n if (\r\n this.visibleFrom &&\r\n this.visibleFrom.getTime() === visibleFrom.getTime() &&\r\n this.visibleTo &&\r\n this.visibleTo.getTime() === visibleTo.getTime()\r\n ) {\r\n return\r\n }\r\n\r\n this.visibleFrom = visibleFrom\r\n this.visibleTo = visibleTo\r\n\r\n const fromDate = this.dateToTzString(this.visibleFrom)\r\n const toDate = this.dateToTzString(this.visibleTo)\r\n\r\n this.$emit(\"visible-interval-change\", {\r\n fromDate,\r\n toDate,\r\n transform: this.transformDiff,\r\n })\r\n },\r\n createAxis(axisName: TimelineAxis) {\r\n const axis = this.xAxesConfig[axisName as TimelineAxis]\r\n const config = this.getAxisTicksConfig(axis)\r\n\r\n return d3\r\n .axisBottom<Date>(this.timeScale)\r\n .ticks(config.interval)\r\n .tickFormat(config.formatFn)\r\n .tickSizeOuter(0)\r\n .tickSizeInner(this.timelineHeight)\r\n },\r\n getAxisTicksConfig(configs: TimelineTicksConfig[]) {\r\n const { interval, format } = configs.find(\r\n (config) =>\r\n config.precision >= this.currentTimeScaleDensity && config.interval\r\n ) as TimelineTicksConfig\r\n\r\n const formatFn = (d: Date): string => {\r\n return typeof format === \"function\"\r\n ? format(d)\r\n : d3.timeFormat(format)(d)\r\n }\r\n\r\n return {\r\n formatFn,\r\n interval,\r\n }\r\n },\r\n handleResize({ contentRect }: ResizeObserverEntry) {\r\n if (this.svg) {\r\n this.svg.attr(\"width\", contentRect.width)\r\n this.updateCurtainsOnResize(contentRect.width)\r\n }\r\n },\r\n handleDarkModeChange() {\r\n if (!this.showLabels) {\r\n return\r\n }\r\n\r\n const that = this\r\n this.svg.selectAll(`.${classes.labelBg}`).each(function () {\r\n const label = d3.select(this)\r\n label.style(\"fill\", that.dark ? \"black\" : \"white\")\r\n })\r\n this.svg.selectAll(`.${classes.labelBgFill}`).each(function () {\r\n const bgFill = d3.select(this)\r\n const color = (bgFill.node()! as HTMLElement).dataset.color\r\n bgFill\r\n .style(\"fill\", that.getLabelBackgroundColor(color as string))\r\n .style(\"stroke\", that.getTextFillColor(color as string))\r\n .style(\"stroke-width\", 0.25)\r\n })\r\n this.svg.selectAll(`.${classes.labelText}`).each(function () {\r\n const text = d3.select(this)\r\n const color = (text.node()! as HTMLElement).dataset.color\r\n text.style(\"fill\", that.getTextFillColor(color as string))\r\n })\r\n },\r\n handleMouseDown() {\r\n this.isMouseDown = true\r\n },\r\n handleDocumentMouseUp() {\r\n this.isMouseDown = false\r\n },\r\n handleMouseLeave() {\r\n this.isHoveringTimeline = false\r\n this.$emit(\"hovered-timestamp\", undefined)\r\n },\r\n handleMouseMove(event: MouseEvent) {\r\n if (this.isMouseDown) {\r\n return\r\n }\r\n const mouseX = event.offsetX\r\n const date = this.timeScale.invert(mouseX)\r\n this.hoveredTimestamp = this.dateToTzString(date)\r\n this.isHoveringTimeline = true\r\n this.$emit(\"hovered-timestamp\", this.hoveredTimestamp)\r\n this.cursor.style.left = mouseX + \"px\"\r\n\r\n if (!this.tooltip) {\r\n return\r\n }\r\n\r\n this.eventTooltipStyle = {\r\n left: `${mouseX}px`,\r\n bottom: `${this.timeline.getBoundingClientRect().height}px`,\r\n }\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n handleClick(event: MouseEvent) {\r\n const mouseX = event.offsetX\r\n const date = this.timeScale.invert(mouseX)\r\n const formattedDateTz = this.dateToTzString(date)\r\n\r\n this.$emit(\"date-clicked\", formattedDateTz)\r\n\r\n if (this.isHoveringEvent) {\r\n this.$emit(\"event-clicked\", {\r\n event: this.hoveredEvent,\r\n type: this.hoveredEventType,\r\n })\r\n }\r\n },\r\n handleLineMouseOver(\r\n _event: MouseEvent,\r\n eventData: TimelineCountEvent,\r\n eventType: string\r\n ) {\r\n this.hoveredCounts = Object.entries(\r\n this.countsByTimestamp[`${eventData.timestamp}`]\r\n ).reduce((acc, entry) => {\r\n const [type, count] = entry\r\n\r\n return [...acc, { type, count }]\r\n }, [] as { type: string; count: number }[])\r\n this.hoveredEvent = eventData\r\n this.isHoveringEvent = true\r\n this.$emit(\"event-mouseover\", {\r\n eventData,\r\n eventType,\r\n hoveredCounts: this.hoveredCounts,\r\n })\r\n },\r\n handleLineMouseOut() {\r\n this.isHoveringEvent = false\r\n this.hoveredCounts = []\r\n this.$emit(\"event-mouseout\")\r\n },\r\n handleBarMouseOver(\r\n _event: MouseEvent,\r\n eventData: TimelineEvent,\r\n eventType: string\r\n ) {\r\n this.hoveredEvent = eventData\r\n this.hoveredEventType = eventType\r\n this.isHoveringEvent = true\r\n this.$emit(\"event-mouseover\", { eventData, eventType })\r\n },\r\n handleBarMouseOut() {\r\n this.isHoveringEvent = false\r\n this.hoveredEvent = null as unknown as TimelineEvent\r\n this.$emit(\"event-mouseout\")\r\n },\r\n handleLabelMouseOver(groupType: string) {\r\n d3.selectAll(`.${classes.lineGraphGroup}-${groupType}`).classed(\r\n `${classes.lineGraphGroup}--highlighted`,\r\n true\r\n )\r\n d3.selectAll(`.${classes.lineGraphGroup}-label`).classed(\r\n `${classes.lineGraphGroup}-label--highlighted`,\r\n true\r\n )\r\n },\r\n handleLabelMouseLeave(groupType: string) {\r\n d3.selectAll(`.${classes.lineGraphGroup}-${groupType}`).classed(\r\n `${classes.lineGraphGroup}--highlighted`,\r\n false\r\n )\r\n d3.selectAll(`.${classes.lineGraphGroup}-label`).classed(\r\n `${classes.lineGraphGroup}-label--highlighted`,\r\n false\r\n )\r\n },\r\n handleZoom(event: D3ZoomEvent<SVGSVGElement, any>) {\r\n const newScale = event.transform.rescaleX(this.initialTimeScale)\r\n this.timeScale.domain(newScale.domain())\r\n this.updateCurrentTimeScaleDensity()\r\n const scale = event.transform.k / this.lastTransform.k\r\n this.transformDiff = {\r\n scale: scale,\r\n translation: event.transform.x - this.lastTransform.x,\r\n }\r\n this.lastTransform = { ...event.transform }\r\n\r\n for (const axisName in this.xAxes) {\r\n this.rescaleAxis(axisName, newScale)\r\n this.translateTicksText(axisName)\r\n }\r\n this.updateBarCharts()\r\n this.updateLineGraphs()\r\n this.updateLineGraphHoverZones()\r\n this.repositionSelectedTimestampCursor()\r\n this.emitVisibleInterval()\r\n this.emitCurtainChange()\r\n },\r\n emitCurtainChange() {\r\n const { startDate, endDate } = this.calculateDateRangeFromCurtains()\r\n this.$emit(\"curtain-range-change\", {\r\n startDate: new Date(startDate).toISOString(),\r\n endDate: new Date(endDate).toISOString(),\r\n })\r\n },\r\n calculateDateRangeFromCurtains() {\r\n const timelineWidth = this.timeline.offsetWidth\r\n const fullRange = this.timeScale.domain()\r\n const totalDuration = fullRange[1].getTime() - fullRange[0].getTime()\r\n\r\n const leftDuration =\r\n ((this.leftCurtainWidth - this.curtainHandleWidth * 2) /\r\n timelineWidth) *\r\n totalDuration\r\n const rightDuration =\r\n ((this.rightCurtainWidth + this.curtainHandleWidth * 2) /\r\n timelineWidth) *\r\n totalDuration\r\n\r\n const startDate = new Date(fullRange[0].getTime() + leftDuration)\r\n const endDate = new Date(fullRange[1].getTime() - rightDuration)\r\n\r\n return { startDate, endDate }\r\n },\r\n updateCurtainsOnResize(timelineWidth: number) {\r\n const { startDate, endDate } = this.calculateDateRangeFromCurtains()\r\n const fullRange = this.timeScale.domain()\r\n const totalDuration = fullRange[1].getTime() - fullRange[0].getTime()\r\n\r\n const leftDuration = startDate.getTime() - fullRange[0].getTime()\r\n const rightDuration = fullRange[1].getTime() - endDate.getTime()\r\n\r\n this.leftCurtainWidth = (leftDuration / totalDuration) * timelineWidth\r\n this.rightCurtainWidth = (rightDuration / totalDuration) * timelineWidth\r\n\r\n this.svg\r\n .select(`.${classes.curtain}--left`)\r\n .attr(\"width\", this.leftCurtainWidth)\r\n this.svg\r\n .select(`.${classes.curtain}--right`)\r\n .attr(\r\n \"x\",\r\n timelineWidth - this.rightCurtainWidth + this.curtainHandleWidth * 2\r\n )\r\n .attr(\"width\", this.rightCurtainWidth)\r\n },\r\n handleDragStart() {\r\n this.isDraggingCurtain = true\r\n },\r\n handleDragEnd() {\r\n this.isDraggingCurtain = false\r\n },\r\n handleLeftDrag(event: d3.D3DragEvent<SVGRectElement, any, any>) {\r\n event.sourceEvent.stopPropagation()\r\n const newWidth = Math.min(\r\n event.x,\r\n this.timeline.offsetWidth - this.rightCurtainWidth\r\n )\r\n this.leftCurtainWidth = Math.max(0, newWidth)\r\n this.svg\r\n .select(`.${classes.curtain}--left`)\r\n .attr(\"width\", this.leftCurtainWidth)\r\n this.emitCurtainChange()\r\n },\r\n handleRightDrag(event: d3.D3DragEvent<SVGRectElement, any, any>) {\r\n event.sourceEvent.stopPropagation()\r\n\r\n const timelineWidth = this.timeline.offsetWidth\r\n const newWidth = Math.min(\r\n this.timeline.offsetWidth - event.x,\r\n this.timeline.offsetWidth - this.leftCurtainWidth\r\n )\r\n const newX = timelineWidth - newWidth\r\n this.rightCurtainWidth = Math.max(0, newWidth)\r\n\r\n this.svg\r\n .select(`.${classes.curtain}--right`)\r\n .attr(\"width\", this.rightCurtainWidth)\r\n .attr(\"x\", newX)\r\n\r\n this.emitCurtainChange()\r\n },\r\n zoomToStartAndEndDates() {\r\n const startDate =\r\n this.startDate ||\r\n this.oldestEvent.timestamp ||\r\n this.oldestEvent.startDate\r\n const endDate =\r\n this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate\r\n\r\n const startTime = this.tzStringToDate(startDate)\r\n const endTime = this.tzStringToDate(endDate)\r\n const timelineWidth = this.timeline.offsetWidth\r\n const newDomain = [startTime, endTime]\r\n const newRange = [0, timelineWidth]\r\n\r\n this.timeScale = d3.scaleTime().domain(newDomain).range(newRange)\r\n this.initialTimeScale = this.timeScale.copy()\r\n\r\n this.updateCurrentTimeScaleDensity()\r\n for (const axisName in this.xAxes) {\r\n this.rescaleAxis(axisName, this.timeScale)\r\n this.translateTicksText(axisName)\r\n }\r\n this.updateBarCharts()\r\n this.updateLineGraphs()\r\n this.updateLineGraphHoverZones()\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n rescaleAxis(axisName: string, newScale: d3.ScaleTime<any, any, unknown>) {\r\n const axis: Axis<Date> = this.xAxes[axisName as TimelineAxis]\r\n const ticksConfig = this.getAxisTicksConfig(\r\n this.xAxesConfig[axisName as TimelineAxis]\r\n )\r\n axis\r\n .scale(newScale)\r\n .ticks(ticksConfig.interval)\r\n .tickFormat(ticksConfig.formatFn)\r\n .tickSizeOuter(0)\r\n this.svg.select<SVGGElement>(`.${classes.xAxis}-${axisName}`).call(axis)\r\n },\r\n translateTicksText(axisName: string) {\r\n this.svg\r\n .select<SVGGElement>(`.${classes.xAxis}-${axisName}`)\r\n .selectAll(\".tick text\")\r\n .each(function () {\r\n let textElement = d3.select(this as SVGTextElement)\r\n let textBBox = (textElement.node() as SVGGraphicsElement).getBBox()\r\n textElement\r\n .attr(\"x\", textBBox.height / 2)\r\n .attr(\"y\", 0)\r\n .style(\"text-anchor\", \"start\")\r\n })\r\n },\r\n updateBarCharts() {\r\n const rectsSelector = `.${classes.eventGroup} > rect.${classes.eventRect}`\r\n this.svg\r\n .selectAll<SVGRectElement, TimelineEvent>(rectsSelector)\r\n .attr(\"x\", this.getEventRectX)\r\n .attr(\"width\", this.getEventRectWidth)\r\n .attr(\"height\", this.barChartHeight)\r\n },\r\n updateLineGraphs() {\r\n Object.entries(this.lineGraphGroups).forEach(([type]) => {\r\n const area = d3\r\n .area<TimelineCountEvent>()\r\n .x((d) => this.timeScale(this.tzStringToDate(d.timestamp)))\r\n .y0(this.timelineHeight)\r\n .y1((d) => this.yScale(d.count))\r\n .curve(d3.curveMonotoneX)\r\n\r\n this.svg\r\n .selectAll<SVGPathElement, TimelineCountEvent[]>(\r\n `.${classes.lineGraphPath}-${type}`\r\n )\r\n .attr(\"d\", (d) => area(d))\r\n })\r\n },\r\n updateLineGraphHoverZones() {\r\n Object.keys(this.lineGraphGroups).forEach((type) => {\r\n const that = this\r\n this.svg\r\n .selectAll<SVGCircleElement, TimelineCountEvent>(\r\n `.${classes.lineGraphDot}-${type}`\r\n )\r\n .each(function (d) {\r\n d3.select(this)\r\n .attr(\"cx\", that.timeScale(that.tzStringToDate(d.timestamp)))\r\n .attr(\"cy\", that.yScale(d.count))\r\n })\r\n\r\n this.svg\r\n .selectAll<SVGRectElement, TimelineCountEvent>(\r\n `.${classes.lineGraphHoverZone}-${type}`\r\n )\r\n .each(function (d) {\r\n const x =\r\n that.timeScale(that.tzStringToDate(d.timestamp).getTime()) - 15\r\n d3.select(this)\r\n .attr(\"x\", x)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", 30)\r\n .attr(\"height\", that.lineGraphChartHeight)\r\n })\r\n })\r\n },\r\n getEventRectX(d: TimelineEvent) {\r\n return this.timeScale(this.tzStringToDate(d.startDate || d.timestamp))\r\n },\r\n getEventRectWidth(d: TimelineEvent) {\r\n if (!d) {\r\n return 0\r\n }\r\n if (d.startDate && d.endDate) {\r\n const startTimestamp = new Date(d.startDate)\r\n const endTimestamp = new Date(d.endDate)\r\n const width =\r\n this.timeScale(endTimestamp) - this.timeScale(startTimestamp)\r\n\r\n return Math.max(width, this.rectMinWidth)\r\n } else {\r\n const oneSecondWidth = 1 / (this.currentTimeScaleDensity * 3600)\r\n\r\n return Math.max(oneSecondWidth, this.rectMinWidth)\r\n }\r\n },\r\n initCurtains() {\r\n if (!this.curtains) {\r\n return\r\n }\r\n\r\n const timelineWidth = this.timeline.offsetWidth\r\n const timelineHeight = this.timelineHeight\r\n\r\n this.svg\r\n .append(\"rect\")\r\n .classed(`${classes.curtain} ${classes.curtain}--left`, true)\r\n .attr(\"width\", this.leftCurtainWidth)\r\n .attr(\"height\", timelineHeight + this.curtainHandleWidth * 2)\r\n .attr(\"y\", -this.curtainHandleWidth)\r\n .attr(\"x\", -this.curtainHandleWidth)\r\n .attr(\"fill\", \"rgba(0, 0, 0, 0.5)\")\r\n .on(\"mouseenter\", () => (this.isHoveringCurtain = true))\r\n .on(\"mouseleave\", () => (this.isHoveringCurtain = false))\r\n .call(\r\n d3\r\n .drag<SVGRectElement, any, any>()\r\n .on(\"start\", this.handleDragStart)\r\n .on(\"drag\", this.handleLeftDrag)\r\n .on(\"end\", this.handleDragEnd)\r\n )\r\n\r\n this.svg\r\n .append(\"rect\")\r\n .classed(`${classes.curtain} ${classes.curtain}--right`, true)\r\n .attr(\r\n \"x\",\r\n timelineWidth - this.rightCurtainWidth + this.curtainHandleWidth * 2\r\n )\r\n .attr(\"y\", -this.curtainHandleWidth)\r\n .attr(\"width\", this.rightCurtainWidth + this.curtainHandleWidth * 2)\r\n .attr(\"height\", timelineHeight + this.curtainHandleWidth * 2)\r\n .attr(\"fill\", \"rgba(0, 0, 0, 0.5)\")\r\n .on(\"mouseenter\", () => (this.isHoveringCurtain = true))\r\n .on(\"mouseleave\", () => (this.isHoveringCurtain = false))\r\n .call(\r\n d3\r\n .drag<SVGRectElement, any, any>()\r\n .on(\"start\", this.handleDragStart)\r\n .on(\"drag\", this.handleRightDrag)\r\n .on(\"end\", this.handleDragEnd)\r\n )\r\n },\r\n drawEventsGroups() {\r\n this.svg.selectAll(`g.${classes.eventGroup}`).remove()\r\n\r\n this.drawLineGraphEventsGroups()\r\n this.drawBarEventsGroups()\r\n },\r\n drawLineGraphEventsGroups() {\r\n const yOffset = this.combinedXAxesHeight\r\n const eventsGroups = this.normalizeEvents\r\n ? this.normalizedLineGraphGroups\r\n : this.lineGraphGroups\r\n\r\n Object.entries(eventsGroups).forEach(([type, eventsGroup]) => {\r\n const gElement = this.svg\r\n .append(\"g\")\r\n .classed(\r\n `${classes.lineGraphGroup} ${classes.lineGraphGroup}-${type}`,\r\n true\r\n )\r\n .attr(\"transform\", `translate(0,${yOffset})`)\r\n const { color, events } = eventsGroup\r\n\r\n this.drawLineGraph({\r\n events,\r\n gElement,\r\n color,\r\n type,\r\n })\r\n this.drawLineGraphHoverZones({\r\n events: events as TimelineCountEvent[],\r\n gElement,\r\n color,\r\n type,\r\n })\r\n })\r\n\r\n Object.entries(this.lineGraphGroups).forEach(\r\n ([type, eventsGroup], index) => {\r\n const { color, isLoading, label } = eventsGroup\r\n const labelYPosition =\r\n this.lineGraphChartHeight - this.barChartHeight * (index + 1)\r\n const loadingIndicatorYPosition =\r\n yOffset + this.lineGraphChartHeight - this.barChartHeight\r\n const labelsGElement = this.svg\r\n .append(\"g\")\r\n .classed(`${classes.lineGraphGroup}-label`, true)\r\n .attr(\"transform\", `translate(0,${yOffset})`)\r\n .on(\"mouseover\", () => this.handleLabelMouseOver(type))\r\n .on(\"mouseleave\", () => this.handleLabelMouseLeave(type))\r\n\r\n this.drawProgressIndicator({\r\n type,\r\n color,\r\n isLoading,\r\n yPosition: loadingIndicatorYPosition,\r\n })\r\n this.drawTextLabel({\r\n color,\r\n label,\r\n yPosition: labelYPosition,\r\n gElement: labelsGElement,\r\n })\r\n }\r\n )\r\n },\r\n drawLineGraph({\r\n events,\r\n gElement,\r\n color,\r\n type,\r\n }: {\r\n events: TimelineEvent[]\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n color: string\r\n type: string\r\n }) {\r\n const area = d3\r\n .area<TimelineCountEvent>()\r\n .x((d) => this.timeScale(this.tzStringToDate(d.timestamp)))\r\n .y0(this.timelineHeight)\r\n .y1((d) => this.yScale(d.count))\r\n .curve(d3.curveMonotoneX)\r\n\r\n gElement\r\n .append(\"path\")\r\n .datum(events as TimelineCountEvent[])\r\n .classed(`${classes.lineGraphPath}-${type}`, true)\r\n .attr(\"fill\", `url(#${defs.areaGradient}-${type})`)\r\n .attr(\"stroke\", color)\r\n .attr(\"stroke-linejoin\", \"round\")\r\n .attr(\"stroke-linecap\", \"round\")\r\n .attr(\"stroke-width\", 1)\r\n .attr(\"d\", (d) => area(d))\r\n },\r\n drawLineGraphHoverZones({\r\n events,\r\n gElement,\r\n color,\r\n type,\r\n }: {\r\n events: TimelineCountEvent[]\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n color: string\r\n type: string\r\n }) {\r\n events.forEach((event: TimelineCountEvent) => {\r\n const timestamp = `${event.timestamp}`\r\n this.countsByTimestamp[timestamp] = {\r\n ...(this.countsByTimestamp[timestamp] || {}),\r\n [type]: event.count,\r\n }\r\n\r\n const circle = gElement\r\n .append(\"circle\")\r\n .classed(\r\n `${classes.lineGraphDot} ${classes.lineGraphDot}-${type}`,\r\n true\r\n )\r\n .attr(\"cx\", this.timeScale(this.tzStringToDate(event.timestamp)))\r\n .attr(\"cy\", this.yScale(event.count))\r\n .attr(\"r\", 1.5)\r\n .attr(\"fill\", color)\r\n .attr(\"stroke-width\", 0)\r\n .datum(event)\r\n\r\n this.dotsByTimestamp[timestamp] = [\r\n ...(this.dotsByTimestamp[timestamp] || []),\r\n circle,\r\n ]\r\n\r\n gElement\r\n .append(\"rect\")\r\n .classed(`${classes.lineGraphHoverZone}-${type}`, true)\r\n .attr(\"x\", this.timeScale(this.tzStringToDate(event.timestamp)) - 15)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", 30)\r\n .attr(\"height\", this.lineGraphChartHeight)\r\n .attr(\"fill\", \"transparent\")\r\n .datum(event)\r\n .on(\"mouseover\", (e) => {\r\n this.handleLineMouseOver(e, event, type)\r\n this.dotsByTimestamp[timestamp].forEach((d) =>\r\n d.classed(`${classes.lineGraphDot}--active`, true)\r\n )\r\n })\r\n .on(\"mouseout\", () => {\r\n this.handleLineMouseOut()\r\n this.dotsByTimestamp[timestamp].forEach((d) =>\r\n d.classed(`${classes.lineGraphDot}--active`, false)\r\n )\r\n })\r\n })\r\n },\r\n drawBarEventsGroups() {\r\n Object.entries(this.barGroups).forEach(([type, eventsGroup], index) => {\r\n const { color, label, events, isLoading } =\r\n eventsGroup as TimelineEventsGroup\r\n const padding = index === 0 ? 0 : this.eventGroupPadding\r\n const yOffset = this.hasLineGraphChart ? this.lineGraphChartHeight : 0\r\n const yPosition =\r\n index * (this.barChartHeight + padding) +\r\n this.combinedXAxesHeight +\r\n yOffset\r\n\r\n this.drawProgressIndicator({\r\n yPosition,\r\n type,\r\n color,\r\n isLoading,\r\n })\r\n\r\n const gElement = this.svg\r\n .append(\"g\")\r\n .attr(\"data-color\", color)\r\n .classed(classes.eventGroup, true)\r\n .classed(`${classes.eventGroup}-${type}`, true)\r\n\r\n this.drawBackground({\r\n color,\r\n gElement,\r\n yPosition,\r\n })\r\n this.drawBars({\r\n events,\r\n color,\r\n gElement,\r\n yPosition,\r\n type,\r\n })\r\n this.drawTextLabel({\r\n color,\r\n label,\r\n gElement,\r\n yPosition,\r\n })\r\n })\r\n },\r\n drawProgressIndicator({\r\n yPosition,\r\n type,\r\n isLoading,\r\n }: {\r\n yPosition: number\r\n type: string\r\n color: string\r\n isLoading: Boolean | undefined\r\n }) {\r\n const rect = this.svg\r\n .append(\"rect\")\r\n .classed(\r\n `${classes.loadingIndicator} ${classes.loadingIndicator}-${type}`,\r\n true\r\n )\r\n .attr(\"x\", 0)\r\n .attr(\"y\", yPosition)\r\n .attr(\"width\", this.timeline.offsetWidth / 3)\r\n .attr(\"height\", this.barChartHeight)\r\n .attr(\"fill\", `url(#${defs.loadingGradient}-${type})`)\r\n\r\n rect.style(\"visibility\", isLoading ? \"visible\" : \"hidden\")\r\n },\r\n drawBackground({\r\n color,\r\n yPosition,\r\n gElement,\r\n }: {\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n yPosition: number\r\n color: string\r\n }) {\r\n gElement\r\n .append(\"rect\")\r\n .attr(\"class\", classes.eventGroupBg)\r\n .attr(\"x\", 0)\r\n .attr(\"y\", yPosition)\r\n .attr(\"width\", this.timeline.offsetWidth)\r\n .attr(\"height\", this.barChartHeight)\r\n .attr(\"fill\", d3.color(color)!.toString())\r\n .style(\"opacity\", 0.1)\r\n },\r\n drawBars({\r\n events,\r\n gElement,\r\n yPosition,\r\n color,\r\n type,\r\n }: {\r\n events: TimelineEvent[]\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n yPosition: number\r\n color: string\r\n type: string\r\n }) {\r\n const that = this\r\n gElement\r\n .selectAll(classes.eventRect)\r\n .data(events)\r\n .enter()\r\n .append(\"rect\")\r\n .classed(classes.eventRect, true)\r\n .attr(\"x\", this.getEventRectX)\r\n .attr(\"y\", yPosition)\r\n .attr(\"ry\", 1.5)\r\n .attr(\"rx\", 1.5)\r\n .attr(\"width\", this.getEventRectWidth)\r\n .attr(\"height\", this.barChartHeight)\r\n .attr(\"stroke-width\", 5)\r\n .attr(\"cursor\", \"pointer\")\r\n .attr(\"stroke\", \"#0000\")\r\n .style(\"fill\", color)\r\n .on(\"mouseover\", function (event, eventData) {\r\n const rect = d3.select(this)\r\n rect.classed(`${classes.eventRect}--hovered`, true)\r\n that.handleBarMouseOver(event, eventData, type)\r\n })\r\n .on(\"mouseout\", function () {\r\n const rect = d3.select(this)\r\n rect.classed(`${classes.eventRect}--hovered`, false)\r\n that.handleBarMouseOut()\r\n })\r\n },\r\n drawTextLabel({\r\n gElement,\r\n yPosition,\r\n color,\r\n label,\r\n }: {\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n yPosition: number\r\n color: string\r\n label: string\r\n }) {\r\n if (!this.showLabels) {\r\n return\r\n }\r\n\r\n const bg = {\r\n x: -5,\r\n y: yPosition,\r\n w: this.labelRectWidth + 5,\r\n h: this.barChartHeight,\r\n radius: 3,\r\n }\r\n\r\n // Label rect background\r\n gElement\r\n .append(\"rect\")\r\n .attr(\"class\", classes.labelBg)\r\n .attr(\"data-color\", color)\r\n .attr(\"x\", bg.x)\r\n .attr(\"y\", bg.y)\r\n .attr(\"width\", bg.w)\r\n .attr(\"height\", bg.h)\r\n .attr(\"rx\", bg.radius)\r\n .attr(\"ry\", bg.radius)\r\n .style(\"fill\", this.dark ? \"#131a29\" : \"white\")\r\n\r\n // Label rect fill\r\n gElement\r\n .append(\"rect\")\r\n .attr(\"class\", classes.labelBgFill)\r\n .attr(\"data-color\", color)\r\n .attr(\"x\", bg.x)\r\n .attr(\"y\", bg.y)\r\n .attr(\"width\", bg.w)\r\n .attr(\"height\", bg.h)\r\n .attr(\"rx\", bg.radius)\r\n .attr(\"ry\", bg.radius)\r\n .style(\"fill\", this.getLabelBackgroundColor(color))\r\n .style(\"stroke\", this.getTextFillColor(color))\r\n .style(\"stroke-width\", 0.25)\r\n\r\n // Label text\r\n gElement\r\n .append(\"text\")\r\n .attr(\"class\", classes.labelText)\r\n .attr(\"data-color\", color)\r\n .attr(\"x\", 5)\r\n .attr(\"y\", yPosition + this.barChartHeight / 2)\r\n .attr(\"dy\", \"0.35em\")\r\n .style(\"text-anchor\", \"start\")\r\n .style(\"font-size\", \"12px\")\r\n .style(\"font-weight\", 500)\r\n .style(\"stroke-linejoin\", \"round\")\r\n .style(\"paint-order\", \"stroke\")\r\n .style(\"fill\", this.getTextFillColor(color))\r\n .text(label)\r\n },\r\n getTextFillColor(baseColor: string) {\r\n return (\r\n this.dark\r\n ? d3.color(baseColor)?.brighter(1.5)\r\n : d3.color(baseColor)?.darker(2)\r\n )!.toString()\r\n },\r\n getLabelBackgroundColor(baseColor: string) {\r\n let color = d3.color(baseColor)\r\n color!.opacity = this.dark ? 0.2 : 0.5\r\n\r\n return color!.toString()\r\n },\r\n\r\n tzStringToDate(timestamp: Timestamp): Date {\r\n return moment(timestamp).add(this.utcOffset, \"minutes\").toDate()\r\n },\r\n dateToTzString(date: Date): string {\r\n const userUtcOffset = new Date(date).getTimezoneOffset()\r\n\r\n return moment(date)\r\n .add(userUtcOffset, \"minutes\")\r\n .utcOffset(this.utcOffset, true)\r\n .format()\r\n },\r\n getCurrentTimeBounds() {\r\n const bounds = this.timeScale.domain() as unknown as [string, string]\r\n\r\n return { startDate: bounds[0], endDate: bounds[1] }\r\n },\r\n getFormattedTimestamp(timestamp: Timestamp): string {\r\n return moment.parseZone(timestamp).format(\"YYYY-MM-DDTHH:mm:ss\")\r\n },\r\n fillTimeGaps(events: TimelineEvent[]) {\r\n if (events.length <= 1) {\r\n return events\r\n }\r\n\r\n const toDate = (t: string) => new Date(t)\r\n const toMilliseconds = (t: string) => toDate(t).getTime()\r\n const addInterval = (date: Date, interval: number) =>\r\n new Date(date.getTime() + interval)\r\n\r\n const minInterval = events\r\n .map((event: TimelineEvent, index: number) =>\r\n index === 0\r\n ? Infinity\r\n : toMilliseconds(event.timestamp) -\r\n toMilliseconds(events[index - 1].timestamp)\r\n )\r\n .reduce(\r\n (min: number, interval: number) => Math.min(min, interval),\r\n Infinity\r\n )\r\n\r\n let filledEvents = events.flatMap(\r\n (event: TimelineEvent, index: number) => {\r\n const nextEvent = events[index + 1]\r\n\r\n if (!nextEvent) {\r\n if (this.flattenLineGraphEnds) {\r\n const nextTimestamp = addInterval(\r\n toDate(event.timestamp),\r\n minInterval\r\n )\r\n\r\n return [\r\n event,\r\n { timestamp: nextTimestamp.toISOString(), count: 0 },\r\n ]\r\n } else {\r\n return [event]\r\n }\r\n }\r\n\r\n const nextTimestamp = toDate(event.timestamp)\r\n const endTimestamp = toDate(nextEvent.timestamp)\r\n\r\n if (endTimestamp.getTime() - nextTimestamp.getTime() > minInterval) {\r\n const fillerBeforeNext = addInterval(endTimestamp, -minInterval)\r\n const fillerAfterCurrent = addInterval(nextTimestamp, minInterval)\r\n\r\n return [\r\n event,\r\n { timestamp: fillerAfterCurrent.toISOString(), count: 0 },\r\n { timestamp: fillerBeforeNext.toISOString(), count: 0 },\r\n nextEvent,\r\n ]\r\n } else {\r\n return [event, nextEvent]\r\n }\r\n }\r\n )\r\n\r\n if (this.flattenLineGraphEnds) {\r\n const firstTimestamp = addInterval(\r\n toDate(events[0].timestamp),\r\n -minInterval\r\n )\r\n filledEvents = [\r\n { timestamp: firstTimestamp.toISOString(), count: 0 },\r\n ...filledEvents,\r\n ]\r\n }\r\n\r\n return filledEvents\r\n },\r\n getNormalizedEvents(events: TimelineEvent[]): TimelineEvent[] {\r\n return this.placeholderLineChartGroup.map((defaultEvent) => {\r\n const actualEvent = events.find(\r\n (event) => event.timestamp === defaultEvent.timestamp\r\n )\r\n\r\n return actualEvent || defaultEvent\r\n })\r\n },\r\n },\r\n})\r\n","export function isFullScreen() {\r\n return !!(\r\n document.fullscreenElement ||\r\n document.mozFullScreenElement ||\r\n document.webkitFullscreenElement ||\r\n document.msFullscreenElement\r\n )\r\n}\r\n\r\nexport function makeFullScreen(element: HTMLElement) {\r\n if (isFullScreen()) {\r\n return new Promise((resolve) => resolve())\r\n }\r\n\r\n if (element.requestFullscreen) {\r\n return element?.requestFullscreen()\r\n } else if (element.mozRequestFullScreen) {\r\n return element?.mozRequestFullScreen()\r\n } else if (element.webkitRequestFullScreen) {\r\n return element?.webkitRequestFullScreen()\r\n } else if (element.msRequestFullscreen) {\r\n return element?.msRequestFullscreen()\r\n }\r\n}\r\n\r\nexport function exitFullScreen() {\r\n if (!isFullScreen()) {\r\n return new Promise((resolve) => resolve())\r\n }\r\n\r\n if (document.exitFullscreen) {\r\n return document.exitFullscreen()\r\n } else if (document.mozCancelFullScreen) {\r\n return document.mozCancelFullScreen()\r\n } else if (document.webkitCancelFullScreen) {\r\n return document.webkitCancelFullScreen()\r\n } else if (document.msExitFullscreen) {\r\n return document.msExitFullscreen()\r\n }\r\n}\r\n","// Components\r\nimport EAvatar from \"@/components/EAvatar.vue\"\r\nimport EBadge from \"@/components/EBadge.vue\"\r\nimport EIcon from \"@/components/EIcon.vue\"\r\nimport ESpinner from \"@/components/ESpinner.vue\"\r\nimport ERow from \"@/components/ERow.vue\"\r\nimport ECol from \"@/components/ECol.vue\"\r\nimport EVideoPlayer from \"@/components/EVideoPlayer.vue\"\r\nimport ETimeline from \"@/components/ETimeline.vue\"\r\n\r\n// Directives\r\nimport { DirectivesMap } from \"@/directives\"\r\n\r\nimport { VueConstructor } from \"vue\"\r\n\r\nexport const components = {\r\n EAvatar,\r\n EBadge,\r\n EIcon,\r\n ESpinner,\r\n ERow,\r\n ECol,\r\n EVideoPlayer,\r\n ETimeline,\r\n}\r\n\r\nexport default {\r\n install(Vue: VueConstructor) {\r\n // Register components\r\n Object.keys(components).forEach((name) => {\r\n // @ts-ignore\r\n Vue.component(name, components[name])\r\n })\r\n\r\n // Register directives\r\n DirectivesMap.forEach(({ name, definition }) => {\r\n Vue.directive(name, definition)\r\n })\r\n },\r\n}\r\n\r\nexport { EAvatar, EBadge, EIcon, ESpinner, ERow, ECol, EVideoPlayer, ETimeline }\r\n\r\nexport * from \"@/constants\"\r\n\r\nexport * from \"@/types\"\r\n\r\nexport * from \"@/utils\"\r\n\r\nexport * from \"@/directives\"\r\n"],"names":["Size","BaseColor","TimelineAxis","Vue","colorClasses","sizeClasses","Badge","exports","negateValue","value","sign","numericFunctions","fn","_default","pluginConfig","plugins","pluginName","x","create","picocolors_browserModule","_export","target","all","name","dim","_picocolors","_interop_require_default","require$$0","obj","alreadyShown","log","type","messages","key","message","input","_log","warn","version","from","to","defaults","sources","source","k","_target_hasOwnProperty","_target_hasOwnProperty1","toPath","path","openBrackets","closedBrackets","flagEnabled","issueFlagNotices","require$$1","featureFlags","config","flag","_config_future","_config_future_flag","_ref","_config_experimental","_config_experimental_flag","_ref1","experimentalFlagsEnabled","changes","s","normalizeConfig","_featureFlags","_interop_require_wildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","_purge_options","content","purge","safelist","blocklist","item","_config_prefix","extract","_config_purge","_config_content","_config_purge1","_config_purge_extract","_config_content1","_config_content_extract","_config_purge2","_config_purge_options","_config_content2","_config_content_options","extractors","defaultExtractor","extensions","extractor","extension","transform","_config_purge_transform","_config_content_transform","transformers","file","isPlainObject","prototype","cloneDeep","child","v","escapeCommas","className","parseColor","formatColor","_colorNames","HEX","SHORT_HEX","VALUE","SEP","ALPHA_SEP","CUSTOM_PROPERTY","RGB","HSL","loose","_match_","_match__toString","hex","_","r","g","b","a","_value_match","match","color","part","mode","alpha","hasAlpha","withAlphaValue","withAlphaVariable","_color","alphaValue","defaultValue","parsed","property","variable","properties","p","splitAtTopLevelOnly","separator","stack","parts","lastPos","isEscaped","idx","char","parseBoxShadowValue","formatBoxShadowValue","_splitAtTopLevelOnly","KEYWORDS","SPACE","LENGTH","shadow","result","seen","shadows","normalize","url","number","percentage","length","lineWidth","image","gradient","position","familyName","genericName","absoluteSize","relativeSize","_parseBoxShadowValue","require$$2","cssFunctions","isCSSFunction","placeholder","placeholderRe","isRoot","fullMatch","characterBefore","normalizeMathOperatorSpacing","vars","g1","lengthUnitsPattern","lineWidths","parsedShadows","parsedShadow","colors","images","gradientTypes","validPositions","positions","fonts","genericNames","absoluteSizes","relativeSizes","backgroundSize","_dataTypes","keywordValues","sizes","size","updateAllClasses","asValue","parseColorFormat","asColor","asLookupValue","typeMap","coerceValue","getMatchingTypes","_escapeCommas","_withAlphaVariable","_negateValue","require$$3","_validateFormalSyntax","require$$4","require$$5","selectors","updateClass","sel","resolveArbitraryValue","modifier","validate","isArbitraryValue","asNegativeValue","lookup","positiveValue","resolved","options","_options_values","splitUtilityModifier","slashIdx","oldValue","opacityValue","unwrapArbitraryModifier","tailwindConfig","_options_values1","_options_values2","_tailwindConfig_theme","_tailwindConfig_theme_opacity","_options_values_color","normalizedColor","guess","supportedTypes","splitAtFirst","delim","types","arbitraryValue","explicitType","matches","rawModifier","modifiersEnabled","utilityModifier","_options_modifiers","_options_modifiers_utilityModifier","configValue","toColorValue","maybeFunction","resolveConfig","_corePluginList","_configurePlugins","_colors","_defaults","_toPath","_normalizeConfig","require$$6","_isPlainObject","require$$7","_cloneDeep","require$$8","_pluginUtils","require$$9","require$$10","_toColorValue","require$$11","isFunction","mergeWith","customizer","merged","configUtils","scale","negativeScale","negativeValue","screens","breakpoints","valueToResolve","args","collectExtends","items","extend","mergedValue","extendValue","mergeThemes","themes","theme","mergeExtensionCustomizer","mergeExtensions","themeValue","resolveThemePath","utils","e","toPaths","pattern","prefix","newPath","resolveFunctionKeys","object","resolvePath","index","val","normalized","extractPluginConfigs","configs","allConfigs","_config_plugins","plugin","_plugin_config","resolveCorePlugins","corePluginConfigs","corePluginConfig","resolvePluginLists","pluginLists","pluginList","_t_theme","_c_plugins","t","c","config_full","getAllConfigs","_configfull","_config_presets","preset","features","experimentals","feature","_resolveConfig","_getAllConfigs","defaultConfigs","resolveConfig_1","colors_1","BrandColors","customColors","TailwindColors.white","TailwindColors.amber","TailwindColors.rose","TailwindColors.cyan","TailwindColors.lime","TailwindColors.sky","CustomColors","TailwindColors.slate","fullConfig","TextSizes","Colors","BadgeSizes","AvatarSizes","IconSizes","BadgeColors","EVENTS","acc","iconClasses","_b","_a","fill","animationDuration","prop","acceptUndefined","n","T","j","ee","et","V","q","o","l","h","d","E","y","tt","rt","nt","Ae","ut","Fe","Me","fe","ze","Pe","he","re","me","z","Le","Ge","He","je","Be","ne","A","P","L","M","G","We","Re","Ue","Ne","pe","ge","Ie","W","N","R","D","H","ve","Ve","ie","f","F","m","$","O","Z","C","qe","Xe","Ye","ct","se","dt","ft","ae","U","ht","B","mt","pt","Ze","gt","vt","yt","St","Tt","Et","$t","Ke","Je","Ht","jt","oe","ye","J","te","u","be","X","I","le","xe","de","ue","Y","ce","_e","S","Ce","Se","Te","Ee","$e","De","ke","Oe","It","Qe","w","Q","K","leadingZeroFormatter","VIDEO_PLAYER_EVENTS","formatDuration","time","seconds","minutes","hours","videoOptions","event","which","player","timelineContainer","playerRef","state","currentTime","exitFullScreen","element","makeFullScreen","percent","rect","duration","videoContainer","playPromise","tagName","getFormattedDay","day","d3","daySuffix","getFormattedDayNoEndOfMonth","getFormattedHour","getFormattedHourMinute","HH_MM","getFormattedMinuteSecond","getFormattedOverviewMinuteSecond","getFormattedOverviewHour","hour","month","getFormattedDayHourMinute","filterHourDivisibleBy","filterMinutesDivisibleBy","minute","filterMinutesSecondsDivisibleBy","second","Precision","defaultAxesConfig","format","dayOfMonth","daysInMonth","fifthOfMonth","quarterOfTheMonth","halfOfTheMonth","ResizeObserverDirective","el","binding","callback","observer","entries","DirectivesMap","classes","defs","eventsGroup","combinedLabelsHeight","axesCount","barGroupsCount","lineGraphChartHeight","padding","eventsGouprsHeight","_type","group","oldestEvent","latestEvent","allTimestamps","timestamp","cursorX","startDate","endDate","defsSelection","chartType","areaGradient","sampleTimestamp","moment","start","end","i","axisName","axis","flattenedCounts","maxCount","cursor","timeAtPixel0","timeAtPixel1","HOUR","visibleFrom","visibleTo","fromDate","toDate","interval","contentRect","that","bgFill","text","mouseX","date","formattedDateTz","_event","eventData","eventType","entry","count","groupType","newScale","timelineWidth","fullRange","totalDuration","leftDuration","rightDuration","newWidth","newX","startTime","endTime","newDomain","newRange","ticksConfig","textElement","textBBox","rectsSelector","area","startTimestamp","endTimestamp","width","oneSecondWidth","timelineHeight","yOffset","eventsGroups","gElement","events","isLoading","label","labelYPosition","loadingIndicatorYPosition","labelsGElement","circle","yPosition","bg","baseColor","userUtcOffset","bounds","toMilliseconds","addInterval","minInterval","min","filledEvents","nextEvent","nextTimestamp","fillerBeforeNext","fillerAfterCurrent","defaultEvent","isFullScreen","resolve","components","EAvatar","EBadge","EIcon","ESpinner","ERow","ECol","EVideoPlayer","ETimeline","definition"],"mappings":"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SAAS,GAAGG,CAAE,GAAG,EACvB,MAAO,QAAQH,CAAK,QAGhC,+BClCA,OAAO,eAAwBF,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,YACA,YACA,gBACA,gBACA,aACA,WACA,QACA,YACA,SACA,QACA,aACA,kBACA,gBACA,UACA,eACA,aACA,QACA,QACA,SACA,YACA,YACA,UACA,cACA,SACA,YACA,YACA,QACA,WACA,WACA,OACA,aACA,WACA,YACA,cACA,cACA,iBACA,gBACA,kBACA,YACA,SACA,OACA,QACA,YACA,YACA,SACA,cACA,aACA,SACA,iBACA,kBACA,iBACA,eACA,gBACA,oBACA,gBACA,iBACA,aACA,UACA,cACA,cACA,aACA,kBACA,eACA,eACA,sBACA,mBACA,gBACA,WACA,eACA,aACA,eACA,aACA,iBACA,eACA,MACA,QACA,cACA,cACA,cACA,gBACA,YACA,YACA,cACA,WACA,qBACA,iBACA,eACA,UACA,aACA,YACA,eACA,cACA,cACA,cACA,gBACA,kBACA,oBACA,kBACA,qBACA,qBACA,iBACA,uBACA,iBACA,qBACA,mBACA,mBACA,OACA,SACA,cACA,YACA,iBACA,UACA,YACA,aACA,gBACA,aACA,WACA,aACA,gBACA,YACA,qBACA,aACA,gBACA,YACA,cACA,iBACA,sBACA,sBACA,0BACA,sBACA,gBACA,mBACA,qBACA,aACA,cACA,UACA,sBACA,eACA,YACA,iBACA,eACA,eACA,gBACA,eACA,YACA,YACA,cACA,kBACA,kBACA,OACA,aACA,WACA,aACA,YACA,YACA,SACA,WACA,QACA,SACA,eACA,qBACA,mBACA,oBACA,oBACA,iBACA,kBACA,mBACA,gBACA,iBACA,qBACA,kBACA,qBACA,2BACA,aACA,wCCxLJ,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,E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ACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,IAAK,CACD,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,U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O,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOuG,CACV,CACL,CAAC,EACD,SAASA,EAAaC,EAAW,CAC7B,OAAOA,EAAU,QAAQ,OAAQ,OAAO,CAC5C,2CCXA,OAAO,eAAwBxG,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,UAAW,CACP,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,EACA,CACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,MAAO,CACH,IACA,GACA,EACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,EACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,GACA,EACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,SAAU,CACN,EACA,EACA,GACH,EACD,SAAU,CACN,EACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,EACA,IACA,CACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,EACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,EACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,QAAS,CACL,IACA,EACA,CACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,GACA,GACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,EACA,GACH,EACD,SAAU,CACN,IACA,GACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,WAAY,CACR,GACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,YAAa,CACT,GACA,IACA,EACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,OAAQ,CACJ,GACA,EACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,CACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,qBAAsB,CAClB,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,CACH,EACD,UAAW,CACP,GACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,CACH,EACD,iBAAkB,CACd,IACA,IACA,GACH,EACD,WAAY,CACR,EACA,EACA,GACH,EACD,aAAc,CACV,IACA,GACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,IACA,GACH,EACD,kBAAmB,CACf,EACA,IACA,GACH,EACD,gBAAiB,CACb,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,GACA,GACH,EACD,aAAc,CACV,GACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,GACA,CACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,GACH,EACD,cAAe,CACX,IACA,GACA,GACH,EACD,IAAK,CACD,IACA,EACA,CACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,YAAa,CACT,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,EACH,EACD,SAAU,CACN,GACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,IAAK,CACD,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,qBC7uBL,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAA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aACA,WACA,QACA,YACA,SACA,QACA,aACA,kBACA,gBACA,UACA,eACA,aACA,QACA,QACA,SACA,YACA,YACA,UACA,cACA,SACA,YACA,YACA,QACA,WACA,WACA,OACA,aACA,WACA,YACA,cACA,cACA,iBACA,gBACA,kBACA,YACA,SACA,OACA,QACA,YACA,YACA,SACA,cACA,aACA,SACA,iBACA,kBACA,iBACA,eACA,gBACA,oBACA,gBACA,iBACA,aACA,UACA,cACA,cACA,aACA,kBACA,eACA,eACA,sBACA,mBACA,gBACA,WACA,eACA,aACA,eACA,aACA,iBACA,eACA,MACA,QACA,cACA,cACA,cACA,gBACA,YACA,YACA,cACA,WACA,qBACA,iBACA,eACA,UACA,aACA,YACA,eACA,cACA,cACA,cACA,gBACA,kBACA,oBACA,kBACA,qBACA,qBACA,iBACA,uBACA,iBACA,qBACA,mBACA,mBACA,OACA,SACA,cACA,YACA,iBACA,UACA,YACA,aACA,gBACA,aACA,WACA,aACA,gBACA,YACA,qBACA,aACA,gBACA,YACA,cACA,iBACA,sBACA,sBACA,0BACA,sBACA,gBACA,mBACA,qBACA,aACA,cACA,UACA,sBACA,eACA,YACA,iBACA,eACA,eACA,gBACA,eACA,YACA,YACA,cACA,kBACA,kBACA,OACA,aACA,WACA,aACA,YACA,YACA,SACA,WACA,QACA,SACA,eACA,qBACA,mBACA,oBACA,oBACA,iBACA,kBACA,mBACA,gBACA,iBACA,qBACA,kBACA,qBACA,2BACA,aACA,SACJ,CACA,GAAGA,EAAE,EACL,IAAIC,GAAK,CAAA,GACR,SAAS,EAAG,CACX,OAAO,eAAe,EAAG,aAAc,CACrC,MAAO,EACR,CAAA,EAAG,OAAO,eAAe,EAAG,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACd,OAAO,CACR,CACL,CAAG,EACD,SAAS,EAAE,EAAG,EAAG,CACf,OAAO,IAAM,OAAS,EAAI,MAAM,QAAQ,CAAC,EAAI,EAAI,CAC/C,GAAG,IAAI,IAAI,EAAE,OAAQf,G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AAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,IAAK,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,OAAQ,CACN,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,KAAM,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACN,EACD,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,S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AIC,GAAK,CAAA,EAAIC,GAAK,CAAA,GAC1B,SAAS,EAAG,CACX,OAAO,eAAe,EAAG,aAAc,CACrC,MAAO,EACR,CAAA,EAAG,OAAO,eAAe,EAAG,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACd,OAAO,CACR,CACL,CAAG,EACD,MAAM,EAAI,CACR,UAAW,CACT,IACA,IACA,GACD,EACD,aAAc,CACZ,IACA,IACA,GACD,EACD,KAAM,CACJ,EACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,OAAQ,CACN,IACA,IACA,GACD,EACD,MAAO,CACL,EACA,EACA,CACD,EACD,eAAgB,CACd,IACA,IACA,GACD,EACD,KAAM,CACJ,EACA,EACA,GACD,EACD,WAAY,CACV,IACA,GACA,GACD,EACD,MAAO,CACL,IACA,GACA,EACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,UAAW,CACT,GACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,CACD,EACD,UAAW,CACT,IACA,IACA,EACD,EACD,MAAO,CACL,IACA,IACA,EACD,EACD,eAAgB,CACd,IACA,IACA,GACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,QAAS,CACP,IACA,GACA,EACD,EACD,KAAM,CACJ,EACA,IACA,GACD,EACD,SAAU,CACR,EACA,EACA,GACD,EACD,SAAU,CACR,EACA,IACA,GACD,EACD,cAAe,CACb,IACA,IACA,EACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,UAAW,CACT,EACA,IACA,CACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,YAAa,CACX,IACA,EACA,GACD,EACD,eAAgB,CACd,GACA,IACA,EACD,EACD,WAAY,CACV,IACA,IACA,CACD,EACD,WAAY,CACV,IACA,GACA,GACD,EACD,QAAS,CACP,IACA,EACA,CACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,aAAc,CACZ,IACA,IACA,GACD,EACD,cAAe,CACb,GACA,GACA,GACD,EACD,cAAe,CACb,GACA,GACA,EACD,EACD,cAAe,CACb,GACA,GACA,EACD,EACD,cAAe,CACb,EACA,IACA,GACD,EACD,WAAY,CACV,IACA,EACA,GACD,EACD,SAAU,CACR,IACA,GACA,GACD,EACD,YAAa,CACX,EACA,IACA,GACD,EACD,QAAS,CACP,IACA,IACA,GACD,EACD,QAAS,CACP,IACA,IACA,GACD,EACD,WAAY,CACV,GACA,IACA,GACD,EACD,UAAW,CACT,IACA,GACA,EACD,EACD,YAAa,CACX,IACA,IACA,GACD,EACD,YAAa,CACX,GACA,IACA,EACD,EACD,QAAS,CACP,IACA,EACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,KAAM,CACJ,IACA,IACA,CACD,EACD,UAAW,CACT,IACA,IACA,EACD,EACD,KAAM,CACJ,IACA,IACA,GACD,EACD,MAAO,CACL,EACA,IACA,CACD,EACD,YAAa,CACX,IACA,IACA,EACD,EACD,KAAM,CACJ,IACA,IACA,GACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,QAAS,CACP,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,GACA,EACD,EACD,OAAQ,CACN,GACA,EACA,GACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,cAAe,CACb,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,CACD,EACD,aAAc,CACZ,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,qBAAsB,CACpB,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,YAAa,CACX,IACA,IACA,GACD,EACD,cAAe,CACb,GACA,IACA,GACD,EACD,aAAc,CACZ,IACA,IACA,GACD,EACD,eAAgB,CACd,IACA,IACA,GACD,EACD,eAAgB,CACd,IACA,IACA,GACD,EACD,eAAgB,CACd,IACA,IACA,GACD,EACD,YAAa,CACX,IACA,IACA,GACD,EACD,KAAM,CACJ,EACA,IACA,CACD,EACD,UAAW,CACT,GACA,IACA,EACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,QAAS,CACP,IACA,EACA,GACD,EACD,OAAQ,CACN,IACA,EACA,CACD,EACD,iBAAkB,CAChB,IACA,IACA,GACD,EACD,WAAY,CACV,EACA,EACA,GACD,EACD,aAAc,CACZ,IACA,GACA,GACD,EACD,aAAc,CACZ,IACA,IACA,GACD,EACD,eAAgB,CACd,GACA,IACA,GACD,EACD,gBAAiB,CACf,IACA,IACA,GACD,EACD,kBAAmB,CACjB,EACA,IACA,GACD,EACD,gBAAiB,CACf,GACA,IACA,GACD,EACD,gBAAiB,CACf,IACA,GACA,GACD,EACD,aAAc,CACZ,GACA,GACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,YAAa,CACX,IACA,IACA,GACD,EACD,KAAM,CACJ,EACA,EACA,GACD,EACD,QAAS,CACP,IACA,IACA,GACD,EACD,MAAO,CACL,IACA,IACA,CACD,EACD,UAAW,CACT,IACA,IACA,EACD,EACD,OAAQ,CACN,IACA,IACA,CACD,EACD,UAAW,CACT,IACA,GACA,CACD,EACD,OAAQ,CACN,IACA,IACA,GACD,EACD,cAAe,CACb,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,cAAe,CACb,IACA,IACA,GACD,EACD,cAAe,CACb,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,KAAM,CACJ,IACA,IACA,EACD,EACD,KAAM,CACJ,IACA,IACA,GACD,EACD,KAAM,CACJ,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,OAAQ,CACN,IACA,EACA,GACD,EACD,cAAe,CACb,IACA,GACA,GACD,EACD,IAAK,CACH,IACA,EACA,CACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,UAAW,CACT,GACA,IACA,GACD,EACD,YAAa,CACX,IACA,GACA,EACD,EACD,OAAQ,CACN,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,EACD,EACD,SAAU,CACR,GACA,IACA,EACD,EACD,SAAU,CACR,IACA,IACA,GACD,EACD,OAAQ,CACN,IACA,GACA,EACD,EACD,OAAQ,CACN,IACA,IACA,GACD,EACD,QAAS,CACP,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,GACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,UAAW,CACT,IACA,IACA,GACD,EACD,KAAM,CACJ,IACA,IACA,GACD,EACD,YAAa,CACX,EACA,IACA,GACD,EACD,UAAW,CACT,GACA,IACA,GACD,EACD,IAAK,CACH,IACA,IACA,GACD,EACD,KAAM,CACJ,EACA,IACA,GACD,EACD,QAAS,CACP,IACA,IACA,GACD,EACD,OAAQ,CACN,IACA,GACA,EACD,EACD,UAAW,CACT,GACA,IACA,GACD,EACD,OAAQ,CACN,IACA,IACA,GACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,MAAO,CACL,IACA,IACA,GACD,EACD,WAAY,CACV,IACA,IACA,GACD,EACD,OAAQ,CACN,IACA,IACA,CACD,EACD,YAAa,CACX,IACA,IACA,EACD,CACL,CACA,GAAGA,EAAE,EACJ,SAAS,EAAG,CACX,OAAO,eAAe,EAAG,aAAc,CACrC,MAAO,EACX,CAAG,EACD,SAAS,EAAEhC,EAAGtV,EAAG,CACf,QAAS2W,KAAK3W,EACZ,OAAO,eAAesV,EAAGqB,E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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,37]}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/types.ts","../src/components/EBadge.vue?vue&type=script&lang.ts","../src/components/EAvatar.vue?vue&type=script&lang.ts","../node_modules/tailwindcss/lib/util/negateValue.js","../node_modules/tailwindcss/lib/corePluginList.js","../node_modules/tailwindcss/lib/util/configurePlugins.js","../node_modules/picocolors/picocolors.browser.js","../node_modules/tailwindcss/lib/util/log.js","../node_modules/tailwindcss/lib/public/colors.js","../node_modules/tailwindcss/lib/util/defaults.js","../node_modules/tailwindcss/lib/util/toPath.js","../node_modules/tailwindcss/lib/featureFlags.js","../node_modules/tailwindcss/lib/util/normalizeConfig.js","../node_modules/tailwindcss/lib/util/isPlainObject.js","../node_modules/tailwindcss/lib/util/cloneDeep.js","../node_modules/tailwindcss/lib/util/escapeCommas.js","../node_modules/tailwindcss/lib/util/colorNames.js","../node_modules/tailwindcss/lib/util/color.js","../node_modules/tailwindcss/lib/util/withAlphaVariable.js","../node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","../node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","../node_modules/tailwindcss/lib/util/dataTypes.js","../node_modules/tailwindcss/lib/util/validateFormalSyntax.js","../node_modules/tailwindcss/lib/util/pluginUtils.js","../node_modules/tailwindcss/lib/util/toColorValue.js","../node_modules/tailwindcss/lib/util/resolveConfig.js","../node_modules/tailwindcss/stubs/config.full.js","../node_modules/tailwindcss/lib/util/getAllConfigs.js","../node_modules/tailwindcss/lib/public/resolve-config.js","../node_modules/tailwindcss/resolveConfig.js","../node_modules/tailwindcss/colors.js","../config.ts","../src/constants.ts","../src/components/EIcon.vue?vue&type=script&lang.ts","../src/components/ESpinner.vue?vue&type=script&lang.ts","../src/components/ERow.vue?vue&type=script&lang.ts","../src/components/ECol.vue?vue&type=script&lang.ts","../src/utils.ts","../src/components/EVideoPlayer.vue?vue&type=script&lang.ts","../src/components/ETimeline.config.ts","../src/directives/resize-observer.ts","../src/directives/index.ts","../src/components/ETimeline.vue?vue&type=script&lang.ts","../src/components/EVideoEmbed.vue?vue&type=script&lang.ts","../src/index.ts"],"sourcesContent":["import { BadgeSizes, AvatarSizes, IconSizes, BadgeColors } from \"@/constants\"\r\n\r\nexport enum Size {\r\n dot = \"dot\",\r\n xs = \"xs\",\r\n sm = \"sm\",\r\n md = \"base\",\r\n base = \"base\",\r\n lg = \"lg\",\r\n xl = \"xl\",\r\n \"2xl\" = \"2xl\",\r\n \"3xl\" = \"3xl\",\r\n \"4xl\" = \"4xl\",\r\n \"5xl\" = \"5xl\",\r\n \"6xl\" = \"6xl\",\r\n \"7xl\" = \"7xl\",\r\n \"8xl\" = \"8xl\",\r\n \"9xl\" = \"9xl\",\r\n}\r\n\r\nexport enum BaseColor {\r\n warning = \"warning\",\r\n error = \"error\",\r\n info = \"info\",\r\n success = \"success\",\r\n primary = \"primary\",\r\n brand = \"brand\",\r\n default = \"default\",\r\n}\r\n\r\nexport type TBadgeSize = (typeof BadgeSizes)[number]\r\n\r\nexport type TAvatarSize = (typeof AvatarSizes)[number]\r\n\r\nexport type TIconSize = (typeof IconSizes)[number]\r\n\r\nexport type TBadgeColor = (typeof BadgeColors)[number]\r\n\r\nexport type TailwindColorClass = string\r\n\r\nexport type FlexJustifyContent =\r\n | \"around\"\r\n | \"between\"\r\n | \"center\"\r\n | \"end\"\r\n | \"evenly\"\r\n | \"normal\"\r\n | \"start\"\r\n | \"stretch\"\r\n\r\nexport type FlexAlignItems = \"start\" | \"center\" | \"end\" | \"baseline\" | \"stretch\"\r\n\r\nexport type FlexAlignContent =\r\n | \"around\"\r\n | \"baseline\"\r\n | \"between\"\r\n | \"center\"\r\n | \"end\"\r\n | \"evenly\"\r\n | \"normal\"\r\n | \"start\"\r\n | \"stretch\"\r\n\r\nexport type FlexAlignSelf =\r\n | \"auto\"\r\n | \"baseline\"\r\n | \"center\"\r\n | \"end\"\r\n | \"start\"\r\n | \"stretch\"\r\n\r\nexport enum TimelineAxis {\r\n overview = \"overview\",\r\n detailed = \"detailed\",\r\n detailedBackground = \"detailedBackground\",\r\n}\r\n\r\nexport type TimelineTicksConfig = {\r\n precision: number\r\n interval: any\r\n format: string | ((d: Date) => string)\r\n}\r\n\r\nexport type TimelineAxesConfig = {\r\n [key in TimelineAxis]: TimelineTicksConfig[]\r\n}\r\n\r\nexport type Timestamp = Date | string | number\r\n\r\nexport default {}\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { BaseColor, Size, TBadgeColor, TBadgeSize } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n name: \"EBadge\",\r\n props: {\r\n text: {\r\n type: String,\r\n default: \"\",\r\n },\r\n color: {\r\n type: String as PropType<TBadgeColor>,\r\n default: BaseColor.default,\r\n },\r\n size: {\r\n type: String as PropType<TBadgeSize>,\r\n default: Size.base,\r\n },\r\n },\r\n data() {\r\n return {\r\n colors: {\r\n [BaseColor.error]: \"e-bg-rose-500 e-text-white\",\r\n [BaseColor.info]: \"e-bg-cyan-500 e-text-white\",\r\n [BaseColor.warning]: \"e-bg-amber-500 e-text-white\",\r\n [BaseColor.primary]: \"e-bg-sky-500 e-text-white\",\r\n [BaseColor.default]: \"e-bg-slate-300 e-text-white\",\r\n [BaseColor.success]: \"e-bg-lime-500 e-text-white\",\r\n },\r\n sizes: {\r\n [Size.dot]: \"e-w-2 e-h-2\",\r\n [Size.xs]: \"e-w-3 e-h-3\",\r\n [Size.sm]: \"e-w-4 e-h-4\",\r\n [Size.md]: \"e-w-5 e-h-5\",\r\n [Size.lg]:\r\n \"e-min-w-[2rem] e-max-w-[4rem] e-px-1 e-h-6 e-text-sm e-font-medium\",\r\n [Size.xl]:\r\n \"e-min-w-[3rem] e-max-w-[5rem] e-px-1 e-h-8 e-text-base e-font-medium\",\r\n },\r\n }\r\n },\r\n computed: {\r\n badgeClasses(): string[] {\r\n const colorClasses =\r\n this.colors[this.color] || this.colors[BaseColor.default]\r\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.md]\r\n\r\n return [\r\n \"e-flex e-items-center e-justify-center e-rounded-full\",\r\n colorClasses,\r\n sizeClasses,\r\n ]\r\n },\r\n showText(): boolean {\r\n return [Size.lg, Size.xl].includes(this.size)\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport Badge from \"@/components/EBadge.vue\"\r\nimport { BaseColor, Size, TAvatarSize, TBadgeColor, TBadgeSize } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n name: \"EAvatar\",\r\n components: {\r\n Badge,\r\n },\r\n props: {\r\n size: {\r\n type: String as PropType<TAvatarSize>,\r\n default: Size.md,\r\n },\r\n showBadge: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n badgeColor: {\r\n type: String as PropType<TBadgeColor>,\r\n default: BaseColor.error,\r\n },\r\n badgeText: {\r\n type: String,\r\n default: \"\",\r\n },\r\n badgeSize: {\r\n type: String as PropType<TBadgeSize>,\r\n default: Size.md,\r\n },\r\n image: {\r\n type: String,\r\n default: \"\",\r\n },\r\n },\r\n data() {\r\n return {\r\n sizes: {\r\n [Size.xs]: \"e-w-8 e-h-8 e-text-xs\",\r\n [Size.sm]: \"e-w-10 e-h-10 e-text-sm\",\r\n [Size.md]: \"e-w-14 e-h-14 e-text-base\",\r\n [Size.lg]: \"e-w-20 e-h-20 e-text-2xl\",\r\n [Size.xl]: \"e-w-28 e-h-28 e-text-3xl\",\r\n [Size[\"2xl\"]]: \"e-w-36 e-h-36 e-text-5xl\",\r\n },\r\n }\r\n },\r\n computed: {\r\n avatarClasses(): string[] {\r\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.xs]\r\n\r\n return [\r\n \"e-flex e-items-center e-justify-center e-rounded-full e-bg-purple-500 e-text-white e-font-medium\",\r\n sizeClasses,\r\n ]\r\n },\r\n },\r\n})\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return negateValue;\n }\n});\nfunction negateValue(value) {\n value = `${value}`;\n if (value === \"0\") {\n return \"0\";\n }\n // Flip sign of numbers\n if (/^[+-]?(\\d+|\\d*\\.\\d+)(e[+-]?\\d+)?(%|\\w+)?$/.test(value)) {\n return value.replace(/^[+-]?/, (sign)=>sign === \"-\" ? \"\" : \"-\");\n }\n // What functions we support negating numeric values for\n // var() isn't inherently a numeric function but we support it anyway\n // The trigonometric functions are omitted because you'll need to use calc(…) with them _anyway_\n // to produce generally useful results and that will be covered already\n let numericFunctions = [\n \"var\",\n \"calc\",\n \"min\",\n \"max\",\n \"clamp\"\n ];\n for (const fn of numericFunctions){\n if (value.includes(`${fn}(`)) {\n return `calc(${value} * -1)`;\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = [\n \"preflight\",\n \"container\",\n \"accessibility\",\n \"pointerEvents\",\n \"visibility\",\n \"position\",\n \"inset\",\n \"isolation\",\n \"zIndex\",\n \"order\",\n \"gridColumn\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRow\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"float\",\n \"clear\",\n \"margin\",\n \"boxSizing\",\n \"lineClamp\",\n \"display\",\n \"aspectRatio\",\n \"height\",\n \"maxHeight\",\n \"minHeight\",\n \"width\",\n \"minWidth\",\n \"maxWidth\",\n \"flex\",\n \"flexShrink\",\n \"flexGrow\",\n \"flexBasis\",\n \"tableLayout\",\n \"captionSide\",\n \"borderCollapse\",\n \"borderSpacing\",\n \"transformOrigin\",\n \"translate\",\n \"rotate\",\n \"skew\",\n \"scale\",\n \"transform\",\n \"animation\",\n \"cursor\",\n \"touchAction\",\n \"userSelect\",\n \"resize\",\n \"scrollSnapType\",\n \"scrollSnapAlign\",\n \"scrollSnapStop\",\n \"scrollMargin\",\n \"scrollPadding\",\n \"listStylePosition\",\n \"listStyleType\",\n \"listStyleImage\",\n \"appearance\",\n \"columns\",\n \"breakBefore\",\n \"breakInside\",\n \"breakAfter\",\n \"gridAutoColumns\",\n \"gridAutoFlow\",\n \"gridAutoRows\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"flexDirection\",\n \"flexWrap\",\n \"placeContent\",\n \"placeItems\",\n \"alignContent\",\n \"alignItems\",\n \"justifyContent\",\n \"justifyItems\",\n \"gap\",\n \"space\",\n \"divideWidth\",\n \"divideStyle\",\n \"divideColor\",\n \"divideOpacity\",\n \"placeSelf\",\n \"alignSelf\",\n \"justifySelf\",\n \"overflow\",\n \"overscrollBehavior\",\n \"scrollBehavior\",\n \"textOverflow\",\n \"hyphens\",\n \"whitespace\",\n \"wordBreak\",\n \"borderRadius\",\n \"borderWidth\",\n \"borderStyle\",\n \"borderColor\",\n \"borderOpacity\",\n \"backgroundColor\",\n \"backgroundOpacity\",\n \"backgroundImage\",\n \"gradientColorStops\",\n \"boxDecorationBreak\",\n \"backgroundSize\",\n \"backgroundAttachment\",\n \"backgroundClip\",\n \"backgroundPosition\",\n \"backgroundRepeat\",\n \"backgroundOrigin\",\n \"fill\",\n \"stroke\",\n \"strokeWidth\",\n \"objectFit\",\n \"objectPosition\",\n \"padding\",\n \"textAlign\",\n \"textIndent\",\n \"verticalAlign\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textTransform\",\n \"fontStyle\",\n \"fontVariantNumeric\",\n \"lineHeight\",\n \"letterSpacing\",\n \"textColor\",\n \"textOpacity\",\n \"textDecoration\",\n \"textDecorationColor\",\n \"textDecorationStyle\",\n \"textDecorationThickness\",\n \"textUnderlineOffset\",\n \"fontSmoothing\",\n \"placeholderColor\",\n \"placeholderOpacity\",\n \"caretColor\",\n \"accentColor\",\n \"opacity\",\n \"backgroundBlendMode\",\n \"mixBlendMode\",\n \"boxShadow\",\n \"boxShadowColor\",\n \"outlineStyle\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineColor\",\n \"ringWidth\",\n \"ringColor\",\n \"ringOpacity\",\n \"ringOffsetWidth\",\n \"ringOffsetColor\",\n \"blur\",\n \"brightness\",\n \"contrast\",\n \"dropShadow\",\n \"grayscale\",\n \"hueRotate\",\n \"invert\",\n \"saturate\",\n \"sepia\",\n \"filter\",\n \"backdropBlur\",\n \"backdropBrightness\",\n \"backdropContrast\",\n \"backdropGrayscale\",\n \"backdropHueRotate\",\n \"backdropInvert\",\n \"backdropOpacity\",\n \"backdropSaturate\",\n \"backdropSepia\",\n \"backdropFilter\",\n \"transitionProperty\",\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionTimingFunction\",\n \"willChange\",\n \"content\"\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction _default(pluginConfig, plugins) {\n if (pluginConfig === undefined) {\n return plugins;\n }\n const pluginNames = Array.isArray(pluginConfig) ? pluginConfig : [\n ...new Set(plugins.filter((pluginName)=>{\n return pluginConfig !== false && pluginConfig[pluginName] !== false;\n }).concat(Object.keys(pluginConfig).filter((pluginName)=>{\n return pluginConfig[pluginName] !== false;\n })))\n ];\n return pluginNames;\n}\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dim: function() {\n return dim;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (typeof process !== \"undefined\" && process.env.JEST_WORKER_ID) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message));\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nconst _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"../util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: function() {\n return defaults;\n }\n});\nfunction defaults(target, ...sources) {\n for (let source of sources){\n for(let k in source){\n var _target_hasOwnProperty;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty = target.hasOwnProperty) === null || _target_hasOwnProperty === void 0 ? void 0 : _target_hasOwnProperty.call(target, k))) {\n target[k] = source[k];\n }\n }\n for (let k of Object.getOwnPropertySymbols(source)){\n var _target_hasOwnProperty1;\n if (!(target === null || target === void 0 ? void 0 : (_target_hasOwnProperty1 = target.hasOwnProperty) === null || _target_hasOwnProperty1 === void 0 ? void 0 : _target_hasOwnProperty1.call(target, k))) {\n target[k] = source[k];\n }\n }\n }\n return target;\n}\n","/**\n * Parse a path string into an array of path segments.\n *\n * Square bracket notation `a[b]` may be used to \"escape\" dots that would otherwise be interpreted as path separators.\n *\n * Example:\n * a -> ['a']\n * a.b.c -> ['a', 'b', 'c']\n * a[b].c -> ['a', 'b', 'c']\n * a[b.c].e.f -> ['a', 'b.c', 'e', 'f']\n * a[b][c][d] -> ['a', 'b', 'c', 'd']\n *\n * @param {string|string[]} path\n **/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toPath\", {\n enumerable: true,\n get: function() {\n return toPath;\n }\n});\nfunction toPath(path) {\n if (Array.isArray(path)) return path;\n let openBrackets = path.split(\"[\").length - 1;\n let closedBrackets = path.split(\"]\").length - 1;\n if (openBrackets !== closedBrackets) {\n throw new Error(`Path is invalid. Has unbalanced brackets: ${path}`);\n }\n return path.split(/\\.(?![^\\[]*\\])|[\\[\\]]/g).filter(Boolean);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n flagEnabled: function() {\n return flagEnabled;\n },\n issueFlagNotices: function() {\n return issueFlagNotices;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"./util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet defaults = {\n optimizeUniversalDefaults: false,\n generalizedModifiers: true,\n get disableColorOpacityUtilitiesByDefault () {\n return false;\n },\n get relativeContentPathsByDefault () {\n return false;\n }\n};\nlet featureFlags = {\n future: [\n \"hoverOnlyWhenSupported\",\n \"respectDefaultRingColorOpacity\",\n \"disableColorOpacityUtilitiesByDefault\",\n \"relativeContentPathsByDefault\"\n ],\n experimental: [\n \"optimizeUniversalDefaults\",\n \"generalizedModifiers\"\n ]\n};\nfunction flagEnabled(config, flag) {\n if (featureFlags.future.includes(flag)) {\n var _config_future;\n var _config_future_flag, _ref;\n return config.future === \"all\" || ((_ref = (_config_future_flag = config === null || config === void 0 ? void 0 : (_config_future = config.future) === null || _config_future === void 0 ? void 0 : _config_future[flag]) !== null && _config_future_flag !== void 0 ? _config_future_flag : defaults[flag]) !== null && _ref !== void 0 ? _ref : false);\n }\n if (featureFlags.experimental.includes(flag)) {\n var _config_experimental;\n var _config_experimental_flag, _ref1;\n return config.experimental === \"all\" || ((_ref1 = (_config_experimental_flag = config === null || config === void 0 ? void 0 : (_config_experimental = config.experimental) === null || _config_experimental === void 0 ? void 0 : _config_experimental[flag]) !== null && _config_experimental_flag !== void 0 ? _config_experimental_flag : defaults[flag]) !== null && _ref1 !== void 0 ? _ref1 : false);\n }\n return false;\n}\nfunction experimentalFlagsEnabled(config) {\n if (config.experimental === \"all\") {\n return featureFlags.experimental;\n }\n var _config_experimental;\n return Object.keys((_config_experimental = config === null || config === void 0 ? void 0 : config.experimental) !== null && _config_experimental !== void 0 ? _config_experimental : {}).filter((flag)=>featureFlags.experimental.includes(flag) && config.experimental[flag]);\n}\nfunction issueFlagNotices(config) {\n if (process.env.JEST_WORKER_ID !== undefined) {\n return;\n }\n if (experimentalFlagsEnabled(config).length > 0) {\n let changes = experimentalFlagsEnabled(config).map((s)=>_picocolors.default.yellow(s)).join(\", \");\n _log.default.warn(\"experimental-flags-enabled\", [\n `You have enabled experimental features: ${changes}`,\n \"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.\"\n ]);\n }\n}\nconst _default = featureFlags;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeConfig\", {\n enumerable: true,\n get: function() {\n return normalizeConfig;\n }\n});\nconst _featureFlags = require(\"../featureFlags\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(require(\"./log\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction normalizeConfig(config) {\n // Quick structure validation\n /**\n * type FilePath = string\n * type RawFile = { raw: string, extension?: string }\n * type ExtractorFn = (content: string) => Array<string>\n * type TransformerFn = (content: string) => string\n *\n * type Content =\n * | Array<FilePath | RawFile>\n * | {\n * files: Array<FilePath | RawFile>,\n * extract?: ExtractorFn | { [extension: string]: ExtractorFn }\n * transform?: TransformerFn | { [extension: string]: TransformerFn }\n * }\n */ let valid = (()=>{\n // `config.purge` should not exist anymore\n if (config.purge) {\n return false;\n }\n // `config.content` should exist\n if (!config.content) {\n return false;\n }\n // `config.content` should be an object or an array\n if (!Array.isArray(config.content) && !(typeof config.content === \"object\" && config.content !== null)) {\n return false;\n }\n // When `config.content` is an array, it should consist of FilePaths or RawFiles\n if (Array.isArray(config.content)) {\n return config.content.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n });\n }\n // When `config.content` is an object\n if (typeof config.content === \"object\" && config.content !== null) {\n // Only `files`, `relative`, `extract`, and `transform` can exist in `config.content`\n if (Object.keys(config.content).some((key)=>![\n \"files\",\n \"relative\",\n \"extract\",\n \"transform\"\n ].includes(key))) {\n return false;\n }\n // `config.content.files` should exist of FilePaths or RawFiles\n if (Array.isArray(config.content.files)) {\n if (!config.content.files.every((path)=>{\n // `path` can be a string\n if (typeof path === \"string\") return true;\n // `path` can be an object { raw: string, extension?: string }\n // `raw` must be a string\n if (typeof (path === null || path === void 0 ? void 0 : path.raw) !== \"string\") return false;\n // `extension` (if provided) should also be a string\n if ((path === null || path === void 0 ? void 0 : path.extension) && typeof (path === null || path === void 0 ? void 0 : path.extension) !== \"string\") {\n return false;\n }\n return true;\n })) {\n return false;\n }\n // `config.content.extract` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.extract === \"object\") {\n for (let value of Object.values(config.content.extract)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.extract === undefined || typeof config.content.extract === \"function\")) {\n return false;\n }\n // `config.content.transform` is optional, and can be a Function or a Record<String, Function>\n if (typeof config.content.transform === \"object\") {\n for (let value of Object.values(config.content.transform)){\n if (typeof value !== \"function\") {\n return false;\n }\n }\n } else if (!(config.content.transform === undefined || typeof config.content.transform === \"function\")) {\n return false;\n }\n // `config.content.relative` is optional and can be a boolean\n if (typeof config.content.relative !== \"boolean\" && typeof config.content.relative !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n return false;\n })();\n if (!valid) {\n _log.default.warn(\"purge-deprecation\", [\n \"The `purge`/`content` options have changed in Tailwind CSS v3.0.\",\n \"Update your configuration file to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#configure-content-sources\"\n ]);\n }\n // Normalize the `safelist`\n config.safelist = (()=>{\n var _purge_options;\n let { content , purge , safelist } = config;\n if (Array.isArray(safelist)) return safelist;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.safelist)) return content.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.safelist)) return purge.safelist;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : (_purge_options = purge.options) === null || _purge_options === void 0 ? void 0 : _purge_options.safelist)) return purge.options.safelist;\n return [];\n })();\n // Normalize the `blocklist`\n config.blocklist = (()=>{\n let { blocklist } = config;\n if (Array.isArray(blocklist)) {\n if (blocklist.every((item)=>typeof item === \"string\")) {\n return blocklist;\n }\n _log.default.warn(\"blocklist-invalid\", [\n \"The `blocklist` option must be an array of strings.\",\n \"https://tailwindcss.com/docs/content-configuration#discarding-classes\"\n ]);\n }\n return [];\n })();\n // Normalize prefix option\n if (typeof config.prefix === \"function\") {\n _log.default.warn(\"prefix-function\", [\n \"As of Tailwind CSS v3.0, `prefix` cannot be a function.\",\n \"Update `prefix` in your configuration to be a string to eliminate this warning.\",\n \"https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function\"\n ]);\n config.prefix = \"\";\n } else {\n var _config_prefix;\n config.prefix = (_config_prefix = config.prefix) !== null && _config_prefix !== void 0 ? _config_prefix : \"\";\n }\n // Normalize the `content`\n config.content = {\n relative: (()=>{\n let { content } = config;\n if (content === null || content === void 0 ? void 0 : content.relative) {\n return content.relative;\n }\n return (0, _featureFlags.flagEnabled)(config, \"relativeContentPathsByDefault\");\n })(),\n files: (()=>{\n let { content , purge } = config;\n if (Array.isArray(purge)) return purge;\n if (Array.isArray(purge === null || purge === void 0 ? void 0 : purge.content)) return purge.content;\n if (Array.isArray(content)) return content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.content)) return content.content;\n if (Array.isArray(content === null || content === void 0 ? void 0 : content.files)) return content.files;\n return [];\n })(),\n extract: (()=>{\n let extract = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_extract, _config_content1, _config_content_extract, _config_purge2, _config_purge_options, _config_content2, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.extract) return config.purge.extract;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.extract) return config.content.extract;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_extract = _config_purge1.extract) === null || _config_purge_extract === void 0 ? void 0 : _config_purge_extract.DEFAULT) return config.purge.extract.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_extract = _config_content1.extract) === null || _config_content_extract === void 0 ? void 0 : _config_content_extract.DEFAULT) return config.content.extract.DEFAULT;\n if ((_config_purge2 = config.purge) === null || _config_purge2 === void 0 ? void 0 : (_config_purge_options = _config_purge2.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.extractors) return config.purge.options.extractors;\n if ((_config_content2 = config.content) === null || _config_content2 === void 0 ? void 0 : (_config_content_options = _config_content2.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.extractors) return config.content.options.extractors;\n return {};\n })();\n let extractors = {};\n let defaultExtractor = (()=>{\n var _config_purge, _config_purge_options, _config_content, _config_content_options;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : (_config_purge_options = _config_purge.options) === null || _config_purge_options === void 0 ? void 0 : _config_purge_options.defaultExtractor) {\n return config.purge.options.defaultExtractor;\n }\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : (_config_content_options = _config_content.options) === null || _config_content_options === void 0 ? void 0 : _config_content_options.defaultExtractor) {\n return config.content.options.defaultExtractor;\n }\n return undefined;\n })();\n if (defaultExtractor !== undefined) {\n extractors.DEFAULT = defaultExtractor;\n }\n // Functions\n if (typeof extract === \"function\") {\n extractors.DEFAULT = extract;\n } else if (Array.isArray(extract)) {\n for (let { extensions , extractor } of extract !== null && extract !== void 0 ? extract : []){\n for (let extension of extensions){\n extractors[extension] = extractor;\n }\n }\n } else if (typeof extract === \"object\" && extract !== null) {\n Object.assign(extractors, extract);\n }\n return extractors;\n })(),\n transform: (()=>{\n let transform = (()=>{\n var _config_purge, _config_content, _config_purge1, _config_purge_transform, _config_content1, _config_content_transform;\n if ((_config_purge = config.purge) === null || _config_purge === void 0 ? void 0 : _config_purge.transform) return config.purge.transform;\n if ((_config_content = config.content) === null || _config_content === void 0 ? void 0 : _config_content.transform) return config.content.transform;\n if ((_config_purge1 = config.purge) === null || _config_purge1 === void 0 ? void 0 : (_config_purge_transform = _config_purge1.transform) === null || _config_purge_transform === void 0 ? void 0 : _config_purge_transform.DEFAULT) return config.purge.transform.DEFAULT;\n if ((_config_content1 = config.content) === null || _config_content1 === void 0 ? void 0 : (_config_content_transform = _config_content1.transform) === null || _config_content_transform === void 0 ? void 0 : _config_content_transform.DEFAULT) return config.content.transform.DEFAULT;\n return {};\n })();\n let transformers = {};\n if (typeof transform === \"function\") {\n transformers.DEFAULT = transform;\n }\n if (typeof transform === \"object\" && transform !== null) {\n Object.assign(transformers, transform);\n }\n return transformers;\n })()\n };\n // Validate globs to prevent bogus globs.\n // E.g.: `./src/*.{html}` is invalid, the `{html}` should just be `html`\n for (let file of config.content.files){\n if (typeof file === \"string\" && /{([^,]*?)}/g.test(file)) {\n _log.default.warn(\"invalid-glob-braces\", [\n `The glob pattern ${(0, _log.dim)(file)} in your Tailwind CSS configuration is invalid.`,\n `Update it to ${(0, _log.dim)(file.replace(/{([^,]*?)}/g, \"$1\"))} to silence this warning.`\n ]);\n break;\n }\n }\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return isPlainObject;\n }\n});\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: function() {\n return cloneDeep;\n }\n});\nfunction cloneDeep(value) {\n if (Array.isArray(value)) {\n return value.map((child)=>cloneDeep(child));\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(Object.entries(value).map(([k, v])=>[\n k,\n cloneDeep(v)\n ]));\n }\n return value;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return escapeCommas;\n }\n});\nfunction escapeCommas(className) {\n return className.replace(/\\\\,/g, \"\\\\2c \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _default = {\n aliceblue: [\n 240,\n 248,\n 255\n ],\n antiquewhite: [\n 250,\n 235,\n 215\n ],\n aqua: [\n 0,\n 255,\n 255\n ],\n aquamarine: [\n 127,\n 255,\n 212\n ],\n azure: [\n 240,\n 255,\n 255\n ],\n beige: [\n 245,\n 245,\n 220\n ],\n bisque: [\n 255,\n 228,\n 196\n ],\n black: [\n 0,\n 0,\n 0\n ],\n blanchedalmond: [\n 255,\n 235,\n 205\n ],\n blue: [\n 0,\n 0,\n 255\n ],\n blueviolet: [\n 138,\n 43,\n 226\n ],\n brown: [\n 165,\n 42,\n 42\n ],\n burlywood: [\n 222,\n 184,\n 135\n ],\n cadetblue: [\n 95,\n 158,\n 160\n ],\n chartreuse: [\n 127,\n 255,\n 0\n ],\n chocolate: [\n 210,\n 105,\n 30\n ],\n coral: [\n 255,\n 127,\n 80\n ],\n cornflowerblue: [\n 100,\n 149,\n 237\n ],\n cornsilk: [\n 255,\n 248,\n 220\n ],\n crimson: [\n 220,\n 20,\n 60\n ],\n cyan: [\n 0,\n 255,\n 255\n ],\n darkblue: [\n 0,\n 0,\n 139\n ],\n darkcyan: [\n 0,\n 139,\n 139\n ],\n darkgoldenrod: [\n 184,\n 134,\n 11\n ],\n darkgray: [\n 169,\n 169,\n 169\n ],\n darkgreen: [\n 0,\n 100,\n 0\n ],\n darkgrey: [\n 169,\n 169,\n 169\n ],\n darkkhaki: [\n 189,\n 183,\n 107\n ],\n darkmagenta: [\n 139,\n 0,\n 139\n ],\n darkolivegreen: [\n 85,\n 107,\n 47\n ],\n darkorange: [\n 255,\n 140,\n 0\n ],\n darkorchid: [\n 153,\n 50,\n 204\n ],\n darkred: [\n 139,\n 0,\n 0\n ],\n darksalmon: [\n 233,\n 150,\n 122\n ],\n darkseagreen: [\n 143,\n 188,\n 143\n ],\n darkslateblue: [\n 72,\n 61,\n 139\n ],\n darkslategray: [\n 47,\n 79,\n 79\n ],\n darkslategrey: [\n 47,\n 79,\n 79\n ],\n darkturquoise: [\n 0,\n 206,\n 209\n ],\n darkviolet: [\n 148,\n 0,\n 211\n ],\n deeppink: [\n 255,\n 20,\n 147\n ],\n deepskyblue: [\n 0,\n 191,\n 255\n ],\n dimgray: [\n 105,\n 105,\n 105\n ],\n dimgrey: [\n 105,\n 105,\n 105\n ],\n dodgerblue: [\n 30,\n 144,\n 255\n ],\n firebrick: [\n 178,\n 34,\n 34\n ],\n floralwhite: [\n 255,\n 250,\n 240\n ],\n forestgreen: [\n 34,\n 139,\n 34\n ],\n fuchsia: [\n 255,\n 0,\n 255\n ],\n gainsboro: [\n 220,\n 220,\n 220\n ],\n ghostwhite: [\n 248,\n 248,\n 255\n ],\n gold: [\n 255,\n 215,\n 0\n ],\n goldenrod: [\n 218,\n 165,\n 32\n ],\n gray: [\n 128,\n 128,\n 128\n ],\n green: [\n 0,\n 128,\n 0\n ],\n greenyellow: [\n 173,\n 255,\n 47\n ],\n grey: [\n 128,\n 128,\n 128\n ],\n honeydew: [\n 240,\n 255,\n 240\n ],\n hotpink: [\n 255,\n 105,\n 180\n ],\n indianred: [\n 205,\n 92,\n 92\n ],\n indigo: [\n 75,\n 0,\n 130\n ],\n ivory: [\n 255,\n 255,\n 240\n ],\n khaki: [\n 240,\n 230,\n 140\n ],\n lavender: [\n 230,\n 230,\n 250\n ],\n lavenderblush: [\n 255,\n 240,\n 245\n ],\n lawngreen: [\n 124,\n 252,\n 0\n ],\n lemonchiffon: [\n 255,\n 250,\n 205\n ],\n lightblue: [\n 173,\n 216,\n 230\n ],\n lightcoral: [\n 240,\n 128,\n 128\n ],\n lightcyan: [\n 224,\n 255,\n 255\n ],\n lightgoldenrodyellow: [\n 250,\n 250,\n 210\n ],\n lightgray: [\n 211,\n 211,\n 211\n ],\n lightgreen: [\n 144,\n 238,\n 144\n ],\n lightgrey: [\n 211,\n 211,\n 211\n ],\n lightpink: [\n 255,\n 182,\n 193\n ],\n lightsalmon: [\n 255,\n 160,\n 122\n ],\n lightseagreen: [\n 32,\n 178,\n 170\n ],\n lightskyblue: [\n 135,\n 206,\n 250\n ],\n lightslategray: [\n 119,\n 136,\n 153\n ],\n lightslategrey: [\n 119,\n 136,\n 153\n ],\n lightsteelblue: [\n 176,\n 196,\n 222\n ],\n lightyellow: [\n 255,\n 255,\n 224\n ],\n lime: [\n 0,\n 255,\n 0\n ],\n limegreen: [\n 50,\n 205,\n 50\n ],\n linen: [\n 250,\n 240,\n 230\n ],\n magenta: [\n 255,\n 0,\n 255\n ],\n maroon: [\n 128,\n 0,\n 0\n ],\n mediumaquamarine: [\n 102,\n 205,\n 170\n ],\n mediumblue: [\n 0,\n 0,\n 205\n ],\n mediumorchid: [\n 186,\n 85,\n 211\n ],\n mediumpurple: [\n 147,\n 112,\n 219\n ],\n mediumseagreen: [\n 60,\n 179,\n 113\n ],\n mediumslateblue: [\n 123,\n 104,\n 238\n ],\n mediumspringgreen: [\n 0,\n 250,\n 154\n ],\n mediumturquoise: [\n 72,\n 209,\n 204\n ],\n mediumvioletred: [\n 199,\n 21,\n 133\n ],\n midnightblue: [\n 25,\n 25,\n 112\n ],\n mintcream: [\n 245,\n 255,\n 250\n ],\n mistyrose: [\n 255,\n 228,\n 225\n ],\n moccasin: [\n 255,\n 228,\n 181\n ],\n navajowhite: [\n 255,\n 222,\n 173\n ],\n navy: [\n 0,\n 0,\n 128\n ],\n oldlace: [\n 253,\n 245,\n 230\n ],\n olive: [\n 128,\n 128,\n 0\n ],\n olivedrab: [\n 107,\n 142,\n 35\n ],\n orange: [\n 255,\n 165,\n 0\n ],\n orangered: [\n 255,\n 69,\n 0\n ],\n orchid: [\n 218,\n 112,\n 214\n ],\n palegoldenrod: [\n 238,\n 232,\n 170\n ],\n palegreen: [\n 152,\n 251,\n 152\n ],\n paleturquoise: [\n 175,\n 238,\n 238\n ],\n palevioletred: [\n 219,\n 112,\n 147\n ],\n papayawhip: [\n 255,\n 239,\n 213\n ],\n peachpuff: [\n 255,\n 218,\n 185\n ],\n peru: [\n 205,\n 133,\n 63\n ],\n pink: [\n 255,\n 192,\n 203\n ],\n plum: [\n 221,\n 160,\n 221\n ],\n powderblue: [\n 176,\n 224,\n 230\n ],\n purple: [\n 128,\n 0,\n 128\n ],\n rebeccapurple: [\n 102,\n 51,\n 153\n ],\n red: [\n 255,\n 0,\n 0\n ],\n rosybrown: [\n 188,\n 143,\n 143\n ],\n royalblue: [\n 65,\n 105,\n 225\n ],\n saddlebrown: [\n 139,\n 69,\n 19\n ],\n salmon: [\n 250,\n 128,\n 114\n ],\n sandybrown: [\n 244,\n 164,\n 96\n ],\n seagreen: [\n 46,\n 139,\n 87\n ],\n seashell: [\n 255,\n 245,\n 238\n ],\n sienna: [\n 160,\n 82,\n 45\n ],\n silver: [\n 192,\n 192,\n 192\n ],\n skyblue: [\n 135,\n 206,\n 235\n ],\n slateblue: [\n 106,\n 90,\n 205\n ],\n slategray: [\n 112,\n 128,\n 144\n ],\n slategrey: [\n 112,\n 128,\n 144\n ],\n snow: [\n 255,\n 250,\n 250\n ],\n springgreen: [\n 0,\n 255,\n 127\n ],\n steelblue: [\n 70,\n 130,\n 180\n ],\n tan: [\n 210,\n 180,\n 140\n ],\n teal: [\n 0,\n 128,\n 128\n ],\n thistle: [\n 216,\n 191,\n 216\n ],\n tomato: [\n 255,\n 99,\n 71\n ],\n turquoise: [\n 64,\n 224,\n 208\n ],\n violet: [\n 238,\n 130,\n 238\n ],\n wheat: [\n 245,\n 222,\n 179\n ],\n white: [\n 255,\n 255,\n 255\n ],\n whitesmoke: [\n 245,\n 245,\n 245\n ],\n yellow: [\n 255,\n 255,\n 0\n ],\n yellowgreen: [\n 154,\n 205,\n 50\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseColor: function() {\n return parseColor;\n },\n formatColor: function() {\n return formatColor;\n }\n});\nconst _colorNames = /*#__PURE__*/ _interop_require_default(require(\"./colorNames\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet HEX = /^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\nlet SHORT_HEX = /^#([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\nlet VALUE = /(?:\\d+|\\d*\\.\\d+)%?/;\nlet SEP = /(?:\\s*,\\s*|\\s+)/;\nlet ALPHA_SEP = /\\s*[,/]\\s*/;\nlet CUSTOM_PROPERTY = /var\\(--(?:[^ )]*?)\\)/;\nlet RGB = new RegExp(`^(rgba?)\\\\(\\\\s*(${VALUE.source}|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nlet HSL = new RegExp(`^(hsla?)\\\\(\\\\s*((?:${VALUE.source})(?:deg|rad|grad|turn)?|${CUSTOM_PROPERTY.source})(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?(?:${ALPHA_SEP.source}(${VALUE.source}|${CUSTOM_PROPERTY.source}))?\\\\s*\\\\)$`);\nfunction parseColor(value, { loose =false } = {}) {\n var _match_, _match__toString;\n if (typeof value !== \"string\") {\n return null;\n }\n value = value.trim();\n if (value === \"transparent\") {\n return {\n mode: \"rgb\",\n color: [\n \"0\",\n \"0\",\n \"0\"\n ],\n alpha: \"0\"\n };\n }\n if (value in _colorNames.default) {\n return {\n mode: \"rgb\",\n color: _colorNames.default[value].map((v)=>v.toString())\n };\n }\n let hex = value.replace(SHORT_HEX, (_, r, g, b, a)=>[\n \"#\",\n r,\n r,\n g,\n g,\n b,\n b,\n a ? a + a : \"\"\n ].join(\"\")).match(HEX);\n if (hex !== null) {\n return {\n mode: \"rgb\",\n color: [\n parseInt(hex[1], 16),\n parseInt(hex[2], 16),\n parseInt(hex[3], 16)\n ].map((v)=>v.toString()),\n alpha: hex[4] ? (parseInt(hex[4], 16) / 255).toString() : undefined\n };\n }\n var _value_match;\n let match = (_value_match = value.match(RGB)) !== null && _value_match !== void 0 ? _value_match : value.match(HSL);\n if (match === null) {\n return null;\n }\n let color = [\n match[2],\n match[3],\n match[4]\n ].filter(Boolean).map((v)=>v.toString());\n // rgba(var(--my-color), 0.1)\n // hsla(var(--my-color), 0.1)\n if (color.length === 2 && color[0].startsWith(\"var(\")) {\n return {\n mode: match[1],\n color: [\n color[0]\n ],\n alpha: color[1]\n };\n }\n if (!loose && color.length !== 3) {\n return null;\n }\n if (color.length < 3 && !color.some((part)=>/^var\\(.*?\\)$/.test(part))) {\n return null;\n }\n return {\n mode: match[1],\n color,\n alpha: (_match_ = match[5]) === null || _match_ === void 0 ? void 0 : (_match__toString = _match_.toString) === null || _match__toString === void 0 ? void 0 : _match__toString.call(_match_)\n };\n}\nfunction formatColor({ mode , color , alpha }) {\n let hasAlpha = alpha !== undefined;\n if (mode === \"rgba\" || mode === \"hsla\") {\n return `${mode}(${color.join(\", \")}${hasAlpha ? `, ${alpha}` : \"\"})`;\n }\n return `${mode}(${color.join(\" \")}${hasAlpha ? ` / ${alpha}` : \"\"})`;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n withAlphaValue: function() {\n return withAlphaValue;\n },\n default: function() {\n return withAlphaVariable;\n }\n});\nconst _color = require(\"./color\");\nfunction withAlphaValue(color, alphaValue, defaultValue) {\n if (typeof color === \"function\") {\n return color({\n opacityValue: alphaValue\n });\n }\n let parsed = (0, _color.parseColor)(color, {\n loose: true\n });\n if (parsed === null) {\n return defaultValue;\n }\n return (0, _color.formatColor)({\n ...parsed,\n alpha: alphaValue\n });\n}\nfunction withAlphaVariable({ color , property , variable }) {\n let properties = [].concat(property);\n if (typeof color === \"function\") {\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n color({\n opacityVariable: variable,\n opacityValue: `var(${variable})`\n })\n ];\n }))\n };\n }\n const parsed = (0, _color.parseColor)(color);\n if (parsed === null) {\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n if (parsed.alpha !== undefined) {\n // Has an alpha value, return color as-is\n return Object.fromEntries(properties.map((p)=>[\n p,\n color\n ]));\n }\n return {\n [variable]: \"1\",\n ...Object.fromEntries(properties.map((p)=>{\n return [\n p,\n (0, _color.formatColor)({\n ...parsed,\n alpha: `var(${variable})`\n })\n ];\n }))\n };\n}\n","/**\n * This splits a string on a top-level character.\n *\n * Regex doesn't support recursion (at least not the JS-flavored version).\n * So we have to use a tiny state machine to keep track of paren placement.\n *\n * Expected behavior using commas:\n * var(--a, 0 0 1px rgb(0, 0, 0)), 0 0 1px rgb(0, 0, 0)\n * ─┬─ ┬ ┬ ┬\n * x x x ╰──────── Split because top-level\n * ╰──────────────┴──┴───────────── Ignored b/c inside >= 1 levels of parens\n *\n * @param {string} input\n * @param {string} separator\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"splitAtTopLevelOnly\", {\n enumerable: true,\n get: function() {\n return splitAtTopLevelOnly;\n }\n});\nfunction splitAtTopLevelOnly(input, separator) {\n let stack = [];\n let parts = [];\n let lastPos = 0;\n let isEscaped = false;\n for(let idx = 0; idx < input.length; idx++){\n let char = input[idx];\n if (stack.length === 0 && char === separator[0] && !isEscaped) {\n if (separator.length === 1 || input.slice(idx, idx + separator.length) === separator) {\n parts.push(input.slice(lastPos, idx));\n lastPos = idx + separator.length;\n }\n }\n if (isEscaped) {\n isEscaped = false;\n } else if (char === \"\\\\\") {\n isEscaped = true;\n }\n if (char === \"(\" || char === \"[\" || char === \"{\") {\n stack.push(char);\n } else if (char === \")\" && stack[stack.length - 1] === \"(\" || char === \"]\" && stack[stack.length - 1] === \"[\" || char === \"}\" && stack[stack.length - 1] === \"{\") {\n stack.pop();\n }\n }\n parts.push(input.slice(lastPos));\n return parts;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n parseBoxShadowValue: function() {\n return parseBoxShadowValue;\n },\n formatBoxShadowValue: function() {\n return formatBoxShadowValue;\n }\n});\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet KEYWORDS = new Set([\n \"inset\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nlet SPACE = /\\ +(?![^(]*\\))/g // Similar to the one above, but with spaces instead.\n;\nlet LENGTH = /^-?(\\d+|\\.\\d+)(.*?)$/g;\nfunction parseBoxShadowValue(input) {\n let shadows = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(input, \",\");\n return shadows.map((shadow)=>{\n let value = shadow.trim();\n let result = {\n raw: value\n };\n let parts = value.split(SPACE);\n let seen = new Set();\n for (let part of parts){\n // Reset index, since the regex is stateful.\n LENGTH.lastIndex = 0;\n // Keyword\n if (!seen.has(\"KEYWORD\") && KEYWORDS.has(part)) {\n result.keyword = part;\n seen.add(\"KEYWORD\");\n } else if (LENGTH.test(part)) {\n if (!seen.has(\"X\")) {\n result.x = part;\n seen.add(\"X\");\n } else if (!seen.has(\"Y\")) {\n result.y = part;\n seen.add(\"Y\");\n } else if (!seen.has(\"BLUR\")) {\n result.blur = part;\n seen.add(\"BLUR\");\n } else if (!seen.has(\"SPREAD\")) {\n result.spread = part;\n seen.add(\"SPREAD\");\n }\n } else {\n if (!result.color) {\n result.color = part;\n } else {\n if (!result.unknown) result.unknown = [];\n result.unknown.push(part);\n }\n }\n }\n // Check if valid\n result.valid = result.x !== undefined && result.y !== undefined;\n return result;\n });\n}\nfunction formatBoxShadowValue(shadows) {\n return shadows.map((shadow)=>{\n if (!shadow.valid) {\n return shadow.raw;\n }\n return [\n shadow.keyword,\n shadow.x,\n shadow.y,\n shadow.blur,\n shadow.spread,\n shadow.color\n ].filter(Boolean).join(\" \");\n }).join(\", \");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalize: function() {\n return normalize;\n },\n url: function() {\n return url;\n },\n number: function() {\n return number;\n },\n percentage: function() {\n return percentage;\n },\n length: function() {\n return length;\n },\n lineWidth: function() {\n return lineWidth;\n },\n shadow: function() {\n return shadow;\n },\n color: function() {\n return color;\n },\n image: function() {\n return image;\n },\n gradient: function() {\n return gradient;\n },\n position: function() {\n return position;\n },\n familyName: function() {\n return familyName;\n },\n genericName: function() {\n return genericName;\n },\n absoluteSize: function() {\n return absoluteSize;\n },\n relativeSize: function() {\n return relativeSize;\n }\n});\nconst _color = require(\"./color\");\nconst _parseBoxShadowValue = require(\"./parseBoxShadowValue\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nlet cssFunctions = [\n \"min\",\n \"max\",\n \"clamp\",\n \"calc\"\n];\n// Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types\nfunction isCSSFunction(value) {\n return cssFunctions.some((fn)=>new RegExp(`^${fn}\\\\(.*\\\\)`).test(value));\n}\nconst placeholder = \"--tw-placeholder\";\nconst placeholderRe = new RegExp(placeholder, \"g\");\nfunction normalize(value, isRoot = true) {\n if (value.startsWith(\"--\")) {\n return `var(${value})`;\n }\n // Keep raw strings if it starts with `url(`\n if (value.includes(\"url(\")) {\n return value.split(/(url\\(.*?\\))/g).filter(Boolean).map((part)=>{\n if (/^url\\(.*?\\)$/.test(part)) {\n return part;\n }\n return normalize(part, false);\n }).join(\"\");\n }\n // Convert `_` to ` `, except for escaped underscores `\\_`\n value = value.replace(/([^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + \" \".repeat(fullMatch.length - 1)).replace(/^_/g, \" \").replace(/\\\\_/g, \"_\");\n // Remove leftover whitespace\n if (isRoot) {\n value = value.trim();\n }\n value = normalizeMathOperatorSpacing(value);\n return value;\n}\n/**\n * Add spaces around operators inside math functions\n * like calc() that do not follow an operator or '('.\n *\n * @param {string} value\n * @returns {string}\n */ function normalizeMathOperatorSpacing(value) {\n return value.replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>{\n let vars = [];\n return match.replace(/var\\((--.+?)[,)]/g, (match, g1)=>{\n vars.push(g1);\n return match.replace(g1, placeholder);\n }).replace(/(-?\\d*\\.?\\d(?!\\b-\\d.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, \"$1 $2 \").replace(placeholderRe, ()=>vars.shift());\n });\n}\nfunction url(value) {\n return value.startsWith(\"url(\");\n}\nfunction number(value) {\n return !isNaN(Number(value)) || isCSSFunction(value);\n}\nfunction percentage(value) {\n return value.endsWith(\"%\") && number(value.slice(0, -1)) || isCSSFunction(value);\n}\n// Please refer to MDN when updating this list:\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units\n// https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries#container_query_length_units\nlet lengthUnits = [\n \"cm\",\n \"mm\",\n \"Q\",\n \"in\",\n \"pc\",\n \"pt\",\n \"px\",\n \"em\",\n \"ex\",\n \"ch\",\n \"rem\",\n \"lh\",\n \"rlh\",\n \"vw\",\n \"vh\",\n \"vmin\",\n \"vmax\",\n \"vb\",\n \"vi\",\n \"svw\",\n \"svh\",\n \"lvw\",\n \"lvh\",\n \"dvw\",\n \"dvh\",\n \"cqw\",\n \"cqh\",\n \"cqi\",\n \"cqb\",\n \"cqmin\",\n \"cqmax\"\n];\nlet lengthUnitsPattern = `(?:${lengthUnits.join(\"|\")})`;\nfunction length(value) {\n return value === \"0\" || new RegExp(`^[+-]?[0-9]*\\.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`).test(value) || isCSSFunction(value);\n}\nlet lineWidths = new Set([\n \"thin\",\n \"medium\",\n \"thick\"\n]);\nfunction lineWidth(value) {\n return lineWidths.has(value);\n}\nfunction shadow(value) {\n let parsedShadows = (0, _parseBoxShadowValue.parseBoxShadowValue)(normalize(value));\n for (let parsedShadow of parsedShadows){\n if (!parsedShadow.valid) {\n return false;\n }\n }\n return true;\n}\nfunction color(value) {\n let colors = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if ((0, _color.parseColor)(part, {\n loose: true\n }) !== null) return colors++, true;\n return false;\n });\n if (!result) return false;\n return colors > 0;\n}\nfunction image(value) {\n let images = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (url(part) || gradient(part) || [\n \"element(\",\n \"image(\",\n \"cross-fade(\",\n \"image-set(\"\n ].some((fn)=>part.startsWith(fn))) {\n images++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return images > 0;\n}\nlet gradientTypes = new Set([\n \"conic-gradient\",\n \"linear-gradient\",\n \"radial-gradient\",\n \"repeating-conic-gradient\",\n \"repeating-linear-gradient\",\n \"repeating-radial-gradient\"\n]);\nfunction gradient(value) {\n value = normalize(value);\n for (let type of gradientTypes){\n if (value.startsWith(`${type}(`)) {\n return true;\n }\n }\n return false;\n}\nlet validPositions = new Set([\n \"center\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n]);\nfunction position(value) {\n let positions = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \"_\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n if (validPositions.has(part) || length(part) || percentage(part)) {\n positions++;\n return true;\n }\n return false;\n });\n if (!result) return false;\n return positions > 0;\n}\nfunction familyName(value) {\n let fonts = 0;\n let result = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n part = normalize(part);\n if (part.startsWith(\"var(\")) return true;\n // If it contains spaces, then it should be quoted\n if (part.includes(\" \")) {\n if (!/(['\"])([^\"']+)\\1/g.test(part)) {\n return false;\n }\n }\n // If it starts with a number, it's invalid\n if (/^\\d/g.test(part)) {\n return false;\n }\n fonts++;\n return true;\n });\n if (!result) return false;\n return fonts > 0;\n}\nlet genericNames = new Set([\n \"serif\",\n \"sans-serif\",\n \"monospace\",\n \"cursive\",\n \"fantasy\",\n \"system-ui\",\n \"ui-serif\",\n \"ui-sans-serif\",\n \"ui-monospace\",\n \"ui-rounded\",\n \"math\",\n \"emoji\",\n \"fangsong\"\n]);\nfunction genericName(value) {\n return genericNames.has(value);\n}\nlet absoluteSizes = new Set([\n \"xx-small\",\n \"x-small\",\n \"small\",\n \"medium\",\n \"large\",\n \"x-large\",\n \"x-large\",\n \"xxx-large\"\n]);\nfunction absoluteSize(value) {\n return absoluteSizes.has(value);\n}\nlet relativeSizes = new Set([\n \"larger\",\n \"smaller\"\n]);\nfunction relativeSize(value) {\n return relativeSizes.has(value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"backgroundSize\", {\n enumerable: true,\n get: function() {\n return backgroundSize;\n }\n});\nconst _dataTypes = require(\"./dataTypes\");\nconst _splitAtTopLevelOnly = require(\"./splitAtTopLevelOnly\");\nfunction backgroundSize(value) {\n let keywordValues = [\n \"cover\",\n \"contain\"\n ];\n // the <length-percentage> type will probably be a css function\n // so we have to use `splitAtTopLevelOnly`\n return (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(value, \",\").every((part)=>{\n let sizes = (0, _splitAtTopLevelOnly.splitAtTopLevelOnly)(part, \"_\").filter(Boolean);\n if (sizes.length === 1 && keywordValues.includes(sizes[0])) return true;\n if (sizes.length !== 1 && sizes.length !== 2) return false;\n return sizes.every((size)=>(0, _dataTypes.length)(size) || (0, _dataTypes.percentage)(size) || size === \"auto\");\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n updateAllClasses: function() {\n return updateAllClasses;\n },\n asValue: function() {\n return asValue;\n },\n parseColorFormat: function() {\n return parseColorFormat;\n },\n asColor: function() {\n return asColor;\n },\n asLookupValue: function() {\n return asLookupValue;\n },\n typeMap: function() {\n return typeMap;\n },\n coerceValue: function() {\n return coerceValue;\n },\n getMatchingTypes: function() {\n return getMatchingTypes;\n }\n});\nconst _escapeCommas = /*#__PURE__*/ _interop_require_default(require(\"./escapeCommas\"));\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _dataTypes = require(\"./dataTypes\");\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _validateFormalSyntax = require(\"./validateFormalSyntax\");\nconst _featureFlags = require(\"../featureFlags.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction updateAllClasses(selectors, updateClass) {\n selectors.walkClasses((sel)=>{\n sel.value = updateClass(sel.value);\n if (sel.raws && sel.raws.value) {\n sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);\n }\n });\n}\nfunction resolveArbitraryValue(modifier, validate) {\n if (!isArbitraryValue(modifier)) {\n return undefined;\n }\n let value = modifier.slice(1, -1);\n if (!validate(value)) {\n return undefined;\n }\n return (0, _dataTypes.normalize)(value);\n}\nfunction asNegativeValue(modifier, lookup = {}, validate) {\n let positiveValue = lookup[modifier];\n if (positiveValue !== undefined) {\n return (0, _negateValue.default)(positiveValue);\n }\n if (isArbitraryValue(modifier)) {\n let resolved = resolveArbitraryValue(modifier, validate);\n if (resolved === undefined) {\n return undefined;\n }\n return (0, _negateValue.default)(resolved);\n }\n}\nfunction asValue(modifier, options = {}, { validate =()=>true } = {}) {\n var _options_values;\n let value = (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n if (value !== undefined) {\n return value;\n }\n if (options.supportsNegativeValues && modifier.startsWith(\"-\")) {\n return asNegativeValue(modifier.slice(1), options.values, validate);\n }\n return resolveArbitraryValue(modifier, validate);\n}\nfunction isArbitraryValue(input) {\n return input.startsWith(\"[\") && input.endsWith(\"]\");\n}\nfunction splitUtilityModifier(modifier) {\n let slashIdx = modifier.lastIndexOf(\"/\");\n if (slashIdx === -1 || slashIdx === modifier.length - 1) {\n return [\n modifier,\n undefined\n ];\n }\n let arbitrary = isArbitraryValue(modifier);\n // The modifier could be of the form `[foo]/[bar]`\n // We want to handle this case properly\n // without affecting `[foo/bar]`\n if (arbitrary && !modifier.includes(\"]/[\")) {\n return [\n modifier,\n undefined\n ];\n }\n return [\n modifier.slice(0, slashIdx),\n modifier.slice(slashIdx + 1)\n ];\n}\nfunction parseColorFormat(value) {\n if (typeof value === \"string\" && value.includes(\"<alpha-value>\")) {\n let oldValue = value;\n return ({ opacityValue =1 })=>oldValue.replace(\"<alpha-value>\", opacityValue);\n }\n return value;\n}\nfunction unwrapArbitraryModifier(modifier) {\n return (0, _dataTypes.normalize)(modifier.slice(1, -1));\n}\nfunction asColor(modifier, options = {}, { tailwindConfig ={} } = {}) {\n var _options_values;\n if (((_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier]) !== undefined) {\n var _options_values1;\n return parseColorFormat((_options_values1 = options.values) === null || _options_values1 === void 0 ? void 0 : _options_values1[modifier]);\n }\n // TODO: Hoist this up to getMatchingTypes or something\n // We do this here because we need the alpha value (if any)\n let [color, alpha] = splitUtilityModifier(modifier);\n if (alpha !== undefined) {\n var _options_values2, _tailwindConfig_theme, _tailwindConfig_theme_opacity;\n var _options_values_color;\n let normalizedColor = (_options_values_color = (_options_values2 = options.values) === null || _options_values2 === void 0 ? void 0 : _options_values2[color]) !== null && _options_values_color !== void 0 ? _options_values_color : isArbitraryValue(color) ? color.slice(1, -1) : undefined;\n if (normalizedColor === undefined) {\n return undefined;\n }\n normalizedColor = parseColorFormat(normalizedColor);\n if (isArbitraryValue(alpha)) {\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, unwrapArbitraryModifier(alpha));\n }\n if (((_tailwindConfig_theme = tailwindConfig.theme) === null || _tailwindConfig_theme === void 0 ? void 0 : (_tailwindConfig_theme_opacity = _tailwindConfig_theme.opacity) === null || _tailwindConfig_theme_opacity === void 0 ? void 0 : _tailwindConfig_theme_opacity[alpha]) === undefined) {\n return undefined;\n }\n return (0, _withAlphaVariable.withAlphaValue)(normalizedColor, tailwindConfig.theme.opacity[alpha]);\n }\n return asValue(modifier, options, {\n validate: _dataTypes.color\n });\n}\nfunction asLookupValue(modifier, options = {}) {\n var _options_values;\n return (_options_values = options.values) === null || _options_values === void 0 ? void 0 : _options_values[modifier];\n}\nfunction guess(validate) {\n return (modifier, options)=>{\n return asValue(modifier, options, {\n validate\n });\n };\n}\nlet typeMap = {\n any: asValue,\n color: asColor,\n url: guess(_dataTypes.url),\n image: guess(_dataTypes.image),\n length: guess(_dataTypes.length),\n percentage: guess(_dataTypes.percentage),\n position: guess(_dataTypes.position),\n lookup: asLookupValue,\n \"generic-name\": guess(_dataTypes.genericName),\n \"family-name\": guess(_dataTypes.familyName),\n number: guess(_dataTypes.number),\n \"line-width\": guess(_dataTypes.lineWidth),\n \"absolute-size\": guess(_dataTypes.absoluteSize),\n \"relative-size\": guess(_dataTypes.relativeSize),\n shadow: guess(_dataTypes.shadow),\n size: guess(_validateFormalSyntax.backgroundSize)\n};\nlet supportedTypes = Object.keys(typeMap);\nfunction splitAtFirst(input, delim) {\n let idx = input.indexOf(delim);\n if (idx === -1) return [\n undefined,\n input\n ];\n return [\n input.slice(0, idx),\n input.slice(idx + 1)\n ];\n}\nfunction coerceValue(types, modifier, options, tailwindConfig) {\n if (options.values && modifier in options.values) {\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n return [\n result,\n type,\n null\n ];\n }\n }\n if (isArbitraryValue(modifier)) {\n let arbitraryValue = modifier.slice(1, -1);\n let [explicitType, value] = splitAtFirst(arbitraryValue, \":\");\n // It could be that this resolves to `url(https` which is not a valid\n // identifier. We currently only support \"simple\" words with dashes or\n // underscores. E.g.: family-name\n if (!/^[\\w-_]+$/g.test(explicitType)) {\n value = arbitraryValue;\n } else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {\n return [];\n }\n if (value.length > 0 && supportedTypes.includes(explicitType)) {\n return [\n asValue(`[${value}]`, options),\n explicitType,\n null\n ];\n }\n }\n let matches = getMatchingTypes(types, modifier, options, tailwindConfig);\n // Find first matching type\n for (let match of matches){\n return match;\n }\n return [];\n}\nfunction* getMatchingTypes(types, rawModifier, options, tailwindConfig) {\n let modifiersEnabled = (0, _featureFlags.flagEnabled)(tailwindConfig, \"generalizedModifiers\");\n let [modifier, utilityModifier] = splitUtilityModifier(rawModifier);\n let canUseUtilityModifier = modifiersEnabled && options.modifiers != null && (options.modifiers === \"any\" || typeof options.modifiers === \"object\" && (utilityModifier && isArbitraryValue(utilityModifier) || utilityModifier in options.modifiers));\n if (!canUseUtilityModifier) {\n modifier = rawModifier;\n utilityModifier = undefined;\n }\n if (utilityModifier !== undefined && modifier === \"\") {\n modifier = \"DEFAULT\";\n }\n // Check the full value first\n // TODO: Move to asValue… somehow\n if (utilityModifier !== undefined) {\n if (typeof options.modifiers === \"object\") {\n var _options_modifiers;\n var _options_modifiers_utilityModifier;\n let configValue = (_options_modifiers_utilityModifier = (_options_modifiers = options.modifiers) === null || _options_modifiers === void 0 ? void 0 : _options_modifiers[utilityModifier]) !== null && _options_modifiers_utilityModifier !== void 0 ? _options_modifiers_utilityModifier : null;\n if (configValue !== null) {\n utilityModifier = configValue;\n } else if (isArbitraryValue(utilityModifier)) {\n utilityModifier = unwrapArbitraryModifier(utilityModifier);\n }\n }\n }\n for (let { type } of types !== null && types !== void 0 ? types : []){\n let result = typeMap[type](modifier, options, {\n tailwindConfig\n });\n if (result === undefined) {\n continue;\n }\n yield [\n result,\n type,\n utilityModifier !== null && utilityModifier !== void 0 ? utilityModifier : null\n ];\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return toColorValue;\n }\n});\nfunction toColorValue(maybeFunction) {\n return typeof maybeFunction === \"function\" ? maybeFunction({}) : maybeFunction;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _negateValue = /*#__PURE__*/ _interop_require_default(require(\"./negateValue\"));\nconst _corePluginList = /*#__PURE__*/ _interop_require_default(require(\"../corePluginList\"));\nconst _configurePlugins = /*#__PURE__*/ _interop_require_default(require(\"./configurePlugins\"));\nconst _colors = /*#__PURE__*/ _interop_require_default(require(\"../public/colors\"));\nconst _defaults = require(\"./defaults\");\nconst _toPath = require(\"./toPath\");\nconst _normalizeConfig = require(\"./normalizeConfig\");\nconst _isPlainObject = /*#__PURE__*/ _interop_require_default(require(\"./isPlainObject\"));\nconst _cloneDeep = require(\"./cloneDeep\");\nconst _pluginUtils = require(\"./pluginUtils\");\nconst _withAlphaVariable = require(\"./withAlphaVariable\");\nconst _toColorValue = /*#__PURE__*/ _interop_require_default(require(\"./toColorValue\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isFunction(input) {\n return typeof input === \"function\";\n}\nfunction mergeWith(target, ...sources) {\n let customizer = sources.pop();\n for (let source of sources){\n for(let k in source){\n let merged = customizer(target[k], source[k]);\n if (merged === undefined) {\n if ((0, _isPlainObject.default)(target[k]) && (0, _isPlainObject.default)(source[k])) {\n target[k] = mergeWith({}, target[k], source[k], customizer);\n } else {\n target[k] = source[k];\n }\n } else {\n target[k] = merged;\n }\n }\n }\n return target;\n}\nconst configUtils = {\n colors: _colors.default,\n negative (scale) {\n // TODO: Log that this function isn't really needed anymore?\n return Object.keys(scale).filter((key)=>scale[key] !== \"0\").reduce((negativeScale, key)=>{\n let negativeValue = (0, _negateValue.default)(scale[key]);\n if (negativeValue !== undefined) {\n negativeScale[`-${key}`] = negativeValue;\n }\n return negativeScale;\n }, {});\n },\n breakpoints (screens) {\n return Object.keys(screens).filter((key)=>typeof screens[key] === \"string\").reduce((breakpoints, key)=>({\n ...breakpoints,\n [`screen-${key}`]: screens[key]\n }), {});\n }\n};\nfunction value(valueToResolve, ...args) {\n return isFunction(valueToResolve) ? valueToResolve(...args) : valueToResolve;\n}\nfunction collectExtends(items) {\n return items.reduce((merged, { extend })=>{\n return mergeWith(merged, extend, (mergedValue, extendValue)=>{\n if (mergedValue === undefined) {\n return [\n extendValue\n ];\n }\n if (Array.isArray(mergedValue)) {\n return [\n extendValue,\n ...mergedValue\n ];\n }\n return [\n extendValue,\n mergedValue\n ];\n });\n }, {});\n}\nfunction mergeThemes(themes) {\n return {\n ...themes.reduce((merged, theme)=>(0, _defaults.defaults)(merged, theme), {}),\n // In order to resolve n config objects, we combine all of their `extend` properties\n // into arrays instead of objects so they aren't overridden.\n extend: collectExtends(themes)\n };\n}\nfunction mergeExtensionCustomizer(merged, value) {\n // When we have an array of objects, we do want to merge it\n if (Array.isArray(merged) && (0, _isPlainObject.default)(merged[0])) {\n return merged.concat(value);\n }\n // When the incoming value is an array, and the existing config is an object, prepend the existing object\n if (Array.isArray(value) && (0, _isPlainObject.default)(value[0]) && (0, _isPlainObject.default)(merged)) {\n return [\n merged,\n ...value\n ];\n }\n // Override arrays (for example for font-families, box-shadows, ...)\n if (Array.isArray(value)) {\n return value;\n }\n // Execute default behaviour\n return undefined;\n}\nfunction mergeExtensions({ extend , ...theme }) {\n return mergeWith(theme, extend, (themeValue, extensions)=>{\n // The `extend` property is an array, so we need to check if it contains any functions\n if (!isFunction(themeValue) && !extensions.some(isFunction)) {\n return mergeWith({}, themeValue, ...extensions, mergeExtensionCustomizer);\n }\n return (resolveThemePath, utils)=>mergeWith({}, ...[\n themeValue,\n ...extensions\n ].map((e)=>value(e, resolveThemePath, utils)), mergeExtensionCustomizer);\n });\n}\n/**\n *\n * @param {string} key\n * @return {Iterable<string[] & {alpha: string | undefined}>}\n */ function* toPaths(key) {\n let path = (0, _toPath.toPath)(key);\n if (path.length === 0) {\n return;\n }\n yield path;\n if (Array.isArray(key)) {\n return;\n }\n let pattern = /^(.*?)\\s*\\/\\s*([^/]+)$/;\n let matches = key.match(pattern);\n if (matches !== null) {\n let [, prefix, alpha] = matches;\n let newPath = (0, _toPath.toPath)(prefix);\n newPath.alpha = alpha;\n yield newPath;\n }\n}\nfunction resolveFunctionKeys(object) {\n // theme('colors.red.500 / 0.5') -> ['colors', 'red', '500 / 0', '5]\n const resolvePath = (key, defaultValue)=>{\n for (const path of toPaths(key)){\n let index = 0;\n let val = object;\n while(val !== undefined && val !== null && index < path.length){\n val = val[path[index++]];\n let shouldResolveAsFn = isFunction(val) && (path.alpha === undefined || index <= path.length - 1);\n val = shouldResolveAsFn ? val(resolvePath, configUtils) : val;\n }\n if (val !== undefined) {\n if (path.alpha !== undefined) {\n let normalized = (0, _pluginUtils.parseColorFormat)(val);\n return (0, _withAlphaVariable.withAlphaValue)(normalized, path.alpha, (0, _toColorValue.default)(normalized));\n }\n if ((0, _isPlainObject.default)(val)) {\n return (0, _cloneDeep.cloneDeep)(val);\n }\n return val;\n }\n }\n return defaultValue;\n };\n Object.assign(resolvePath, {\n theme: resolvePath,\n ...configUtils\n });\n return Object.keys(object).reduce((resolved, key)=>{\n resolved[key] = isFunction(object[key]) ? object[key](resolvePath, configUtils) : object[key];\n return resolved;\n }, {});\n}\nfunction extractPluginConfigs(configs) {\n let allConfigs = [];\n configs.forEach((config)=>{\n allConfigs = [\n ...allConfigs,\n config\n ];\n var _config_plugins;\n const plugins = (_config_plugins = config === null || config === void 0 ? void 0 : config.plugins) !== null && _config_plugins !== void 0 ? _config_plugins : [];\n if (plugins.length === 0) {\n return;\n }\n plugins.forEach((plugin)=>{\n if (plugin.__isOptionsFunction) {\n plugin = plugin();\n }\n var _plugin_config;\n allConfigs = [\n ...allConfigs,\n ...extractPluginConfigs([\n (_plugin_config = plugin === null || plugin === void 0 ? void 0 : plugin.config) !== null && _plugin_config !== void 0 ? _plugin_config : {}\n ])\n ];\n });\n });\n return allConfigs;\n}\nfunction resolveCorePlugins(corePluginConfigs) {\n const result = [\n ...corePluginConfigs\n ].reduceRight((resolved, corePluginConfig)=>{\n if (isFunction(corePluginConfig)) {\n return corePluginConfig({\n corePlugins: resolved\n });\n }\n return (0, _configurePlugins.default)(corePluginConfig, resolved);\n }, _corePluginList.default);\n return result;\n}\nfunction resolvePluginLists(pluginLists) {\n const result = [\n ...pluginLists\n ].reduceRight((resolved, pluginList)=>{\n return [\n ...resolved,\n ...pluginList\n ];\n }, []);\n return result;\n}\nfunction resolveConfig(configs) {\n let allConfigs = [\n ...extractPluginConfigs(configs),\n {\n prefix: \"\",\n important: false,\n separator: \":\"\n }\n ];\n var _t_theme, _c_plugins;\n return (0, _normalizeConfig.normalizeConfig)((0, _defaults.defaults)({\n theme: resolveFunctionKeys(mergeExtensions(mergeThemes(allConfigs.map((t)=>{\n return (_t_theme = t === null || t === void 0 ? void 0 : t.theme) !== null && _t_theme !== void 0 ? _t_theme : {};\n })))),\n corePlugins: resolveCorePlugins(allConfigs.map((c)=>c.corePlugins)),\n plugins: resolvePluginLists(configs.map((c)=>{\n return (_c_plugins = c === null || c === void 0 ? void 0 : c.plugins) !== null && _c_plugins !== void 0 ? _c_plugins : [];\n }))\n }, ...allConfigs));\n}\n","module.exports = {\n content: [],\n presets: [],\n darkMode: 'media', // or 'class'\n theme: {\n accentColor: ({ theme }) => ({\n ...theme('colors'),\n auto: 'auto',\n }),\n animation: {\n none: 'none',\n spin: 'spin 1s linear infinite',\n ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',\n pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',\n bounce: 'bounce 1s infinite',\n },\n aria: {\n busy: 'busy=\"true\"',\n checked: 'checked=\"true\"',\n disabled: 'disabled=\"true\"',\n expanded: 'expanded=\"true\"',\n hidden: 'hidden=\"true\"',\n pressed: 'pressed=\"true\"',\n readonly: 'readonly=\"true\"',\n required: 'required=\"true\"',\n selected: 'selected=\"true\"',\n },\n aspectRatio: {\n auto: 'auto',\n square: '1 / 1',\n video: '16 / 9',\n },\n backdropBlur: ({ theme }) => theme('blur'),\n backdropBrightness: ({ theme }) => theme('brightness'),\n backdropContrast: ({ theme }) => theme('contrast'),\n backdropGrayscale: ({ theme }) => theme('grayscale'),\n backdropHueRotate: ({ theme }) => theme('hueRotate'),\n backdropInvert: ({ theme }) => theme('invert'),\n backdropOpacity: ({ theme }) => theme('opacity'),\n backdropSaturate: ({ theme }) => theme('saturate'),\n backdropSepia: ({ theme }) => theme('sepia'),\n backgroundColor: ({ theme }) => theme('colors'),\n backgroundImage: {\n none: 'none',\n 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n },\n backgroundOpacity: ({ theme }) => theme('opacity'),\n backgroundPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n backgroundSize: {\n auto: 'auto',\n cover: 'cover',\n contain: 'contain',\n },\n blur: {\n 0: '0',\n none: '0',\n sm: '4px',\n DEFAULT: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '40px',\n '3xl': '64px',\n },\n borderColor: ({ theme }) => ({\n ...theme('colors'),\n DEFAULT: theme('colors.gray.200', 'currentColor'),\n }),\n borderOpacity: ({ theme }) => theme('opacity'),\n borderRadius: {\n none: '0px',\n sm: '0.125rem',\n DEFAULT: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n borderSpacing: ({ theme }) => ({\n ...theme('spacing'),\n }),\n borderWidth: {\n DEFAULT: '1px',\n 0: '0px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n boxShadow: {\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n none: 'none',\n },\n boxShadowColor: ({ theme }) => theme('colors'),\n brightness: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n caretColor: ({ theme }) => theme('colors'),\n colors: ({ colors }) => ({\n inherit: colors.inherit,\n current: colors.current,\n transparent: colors.transparent,\n black: colors.black,\n white: colors.white,\n slate: colors.slate,\n gray: colors.gray,\n zinc: colors.zinc,\n neutral: colors.neutral,\n stone: colors.stone,\n red: colors.red,\n orange: colors.orange,\n amber: colors.amber,\n yellow: colors.yellow,\n lime: colors.lime,\n green: colors.green,\n emerald: colors.emerald,\n teal: colors.teal,\n cyan: colors.cyan,\n sky: colors.sky,\n blue: colors.blue,\n indigo: colors.indigo,\n violet: colors.violet,\n purple: colors.purple,\n fuchsia: colors.fuchsia,\n pink: colors.pink,\n rose: colors.rose,\n }),\n columns: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n '3xs': '16rem',\n '2xs': '18rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n },\n container: {},\n content: {\n none: 'none',\n },\n contrast: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 100: '1',\n 125: '1.25',\n 150: '1.5',\n 200: '2',\n },\n cursor: {\n auto: 'auto',\n default: 'default',\n pointer: 'pointer',\n wait: 'wait',\n text: 'text',\n move: 'move',\n help: 'help',\n 'not-allowed': 'not-allowed',\n none: 'none',\n 'context-menu': 'context-menu',\n progress: 'progress',\n cell: 'cell',\n crosshair: 'crosshair',\n 'vertical-text': 'vertical-text',\n alias: 'alias',\n copy: 'copy',\n 'no-drop': 'no-drop',\n grab: 'grab',\n grabbing: 'grabbing',\n 'all-scroll': 'all-scroll',\n 'col-resize': 'col-resize',\n 'row-resize': 'row-resize',\n 'n-resize': 'n-resize',\n 'e-resize': 'e-resize',\n 's-resize': 's-resize',\n 'w-resize': 'w-resize',\n 'ne-resize': 'ne-resize',\n 'nw-resize': 'nw-resize',\n 'se-resize': 'se-resize',\n 'sw-resize': 'sw-resize',\n 'ew-resize': 'ew-resize',\n 'ns-resize': 'ns-resize',\n 'nesw-resize': 'nesw-resize',\n 'nwse-resize': 'nwse-resize',\n 'zoom-in': 'zoom-in',\n 'zoom-out': 'zoom-out',\n },\n divideColor: ({ theme }) => theme('borderColor'),\n divideOpacity: ({ theme }) => theme('borderOpacity'),\n divideWidth: ({ theme }) => theme('borderWidth'),\n dropShadow: {\n sm: '0 1px 1px rgb(0 0 0 / 0.05)',\n DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],\n md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],\n lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],\n xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],\n '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',\n none: '0 0 #0000',\n },\n fill: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n flex: {\n 1: '1 1 0%',\n auto: '1 1 auto',\n initial: '0 1 auto',\n none: 'none',\n },\n flexBasis: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n }),\n flexGrow: {\n 0: '0',\n DEFAULT: '1',\n },\n flexShrink: {\n 0: '0',\n DEFAULT: '1',\n },\n fontFamily: {\n sans: [\n 'ui-sans-serif',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n '\"Noto Sans\"',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n '\"Noto Color Emoji\"',\n ],\n serif: ['ui-serif', 'Georgia', 'Cambria', '\"Times New Roman\"', 'Times', 'serif'],\n mono: [\n 'ui-monospace',\n 'SFMono-Regular',\n 'Menlo',\n 'Monaco',\n 'Consolas',\n '\"Liberation Mono\"',\n '\"Courier New\"',\n 'monospace',\n ],\n },\n fontSize: {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n '2xl': ['1.5rem', { lineHeight: '2rem' }],\n '3xl': ['1.875rem', { lineHeight: '2.25rem' }],\n '4xl': ['2.25rem', { lineHeight: '2.5rem' }],\n '5xl': ['3rem', { lineHeight: '1' }],\n '6xl': ['3.75rem', { lineHeight: '1' }],\n '7xl': ['4.5rem', { lineHeight: '1' }],\n '8xl': ['6rem', { lineHeight: '1' }],\n '9xl': ['8rem', { lineHeight: '1' }],\n },\n fontWeight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n gap: ({ theme }) => theme('spacing'),\n gradientColorStops: ({ theme }) => theme('colors'),\n gradientColorStopPositions: {\n '0%': '0%',\n '5%': '5%',\n '10%': '10%',\n '15%': '15%',\n '20%': '20%',\n '25%': '25%',\n '30%': '30%',\n '35%': '35%',\n '40%': '40%',\n '45%': '45%',\n '50%': '50%',\n '55%': '55%',\n '60%': '60%',\n '65%': '65%',\n '70%': '70%',\n '75%': '75%',\n '80%': '80%',\n '85%': '85%',\n '90%': '90%',\n '95%': '95%',\n '100%': '100%',\n },\n grayscale: {\n 0: '0',\n DEFAULT: '100%',\n },\n gridAutoColumns: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridAutoRows: {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n },\n gridColumn: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-7': 'span 7 / span 7',\n 'span-8': 'span 8 / span 8',\n 'span-9': 'span 9 / span 9',\n 'span-10': 'span 10 / span 10',\n 'span-11': 'span 11 / span 11',\n 'span-12': 'span 12 / span 12',\n 'span-full': '1 / -1',\n },\n gridColumnEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridColumnStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n 13: '13',\n },\n gridRow: {\n auto: 'auto',\n 'span-1': 'span 1 / span 1',\n 'span-2': 'span 2 / span 2',\n 'span-3': 'span 3 / span 3',\n 'span-4': 'span 4 / span 4',\n 'span-5': 'span 5 / span 5',\n 'span-6': 'span 6 / span 6',\n 'span-full': '1 / -1',\n },\n gridRowEnd: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridRowStart: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n },\n gridTemplateColumns: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n },\n gridTemplateRows: {\n none: 'none',\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n },\n height: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n hueRotate: {\n 0: '0deg',\n 15: '15deg',\n 30: '30deg',\n 60: '60deg',\n 90: '90deg',\n 180: '180deg',\n },\n inset: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n invert: {\n 0: '0',\n DEFAULT: '100%',\n },\n keyframes: {\n spin: {\n to: {\n transform: 'rotate(360deg)',\n },\n },\n ping: {\n '75%, 100%': {\n transform: 'scale(2)',\n opacity: '0',\n },\n },\n pulse: {\n '50%': {\n opacity: '.5',\n },\n },\n bounce: {\n '0%, 100%': {\n transform: 'translateY(-25%)',\n animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',\n },\n '50%': {\n transform: 'none',\n animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',\n },\n },\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0em',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n 3: '.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n },\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n },\n listStyleImage: {\n none: 'none',\n },\n margin: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n }),\n lineClamp: {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n },\n maxHeight: ({ theme }) => ({\n ...theme('spacing'),\n none: 'none',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n maxWidth: ({ theme, breakpoints }) => ({\n none: 'none',\n 0: '0rem',\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem',\n '7xl': '80rem',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n prose: '65ch',\n ...breakpoints(theme('screens')),\n }),\n minHeight: {\n 0: '0px',\n full: '100%',\n screen: '100vh',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n minWidth: {\n 0: '0px',\n full: '100%',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n objectPosition: {\n bottom: 'bottom',\n center: 'center',\n left: 'left',\n 'left-bottom': 'left bottom',\n 'left-top': 'left top',\n right: 'right',\n 'right-bottom': 'right bottom',\n 'right-top': 'right top',\n top: 'top',\n },\n opacity: {\n 0: '0',\n 5: '0.05',\n 10: '0.1',\n 20: '0.2',\n 25: '0.25',\n 30: '0.3',\n 40: '0.4',\n 50: '0.5',\n 60: '0.6',\n 70: '0.7',\n 75: '0.75',\n 80: '0.8',\n 90: '0.9',\n 95: '0.95',\n 100: '1',\n },\n order: {\n first: '-9999',\n last: '9999',\n none: '0',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n outlineColor: ({ theme }) => theme('colors'),\n outlineOffset: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n outlineWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n padding: ({ theme }) => theme('spacing'),\n placeholderColor: ({ theme }) => theme('colors'),\n placeholderOpacity: ({ theme }) => theme('opacity'),\n ringColor: ({ theme }) => ({\n DEFAULT: theme('colors.blue.500', '#3b82f6'),\n ...theme('colors'),\n }),\n ringOffsetColor: ({ theme }) => theme('colors'),\n ringOffsetWidth: {\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n ringOpacity: ({ theme }) => ({\n DEFAULT: '0.5',\n ...theme('opacity'),\n }),\n ringWidth: {\n DEFAULT: '3px',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n rotate: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n 45: '45deg',\n 90: '90deg',\n 180: '180deg',\n },\n saturate: {\n 0: '0',\n 50: '.5',\n 100: '1',\n 150: '1.5',\n 200: '2',\n },\n scale: {\n 0: '0',\n 50: '.5',\n 75: '.75',\n 90: '.9',\n 95: '.95',\n 100: '1',\n 105: '1.05',\n 110: '1.1',\n 125: '1.25',\n 150: '1.5',\n },\n screens: {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n scrollMargin: ({ theme }) => ({\n ...theme('spacing'),\n }),\n scrollPadding: ({ theme }) => theme('spacing'),\n sepia: {\n 0: '0',\n DEFAULT: '100%',\n },\n skew: {\n 0: '0deg',\n 1: '1deg',\n 2: '2deg',\n 3: '3deg',\n 6: '6deg',\n 12: '12deg',\n },\n space: ({ theme }) => ({\n ...theme('spacing'),\n }),\n spacing: {\n px: '1px',\n 0: '0px',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n stroke: ({ theme }) => ({\n none: 'none',\n ...theme('colors'),\n }),\n strokeWidth: {\n 0: '0',\n 1: '1',\n 2: '2',\n },\n supports: {},\n data: {},\n textColor: ({ theme }) => theme('colors'),\n textDecorationColor: ({ theme }) => theme('colors'),\n textDecorationThickness: {\n auto: 'auto',\n 'from-font': 'from-font',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n textIndent: ({ theme }) => ({\n ...theme('spacing'),\n }),\n textOpacity: ({ theme }) => theme('opacity'),\n textUnderlineOffset: {\n auto: 'auto',\n 0: '0px',\n 1: '1px',\n 2: '2px',\n 4: '4px',\n 8: '8px',\n },\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left',\n },\n transitionDelay: {\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionDuration: {\n DEFAULT: '150ms',\n 0: '0s',\n 75: '75ms',\n 100: '100ms',\n 150: '150ms',\n 200: '200ms',\n 300: '300ms',\n 500: '500ms',\n 700: '700ms',\n 1000: '1000ms',\n },\n transitionProperty: {\n none: 'none',\n all: 'all',\n DEFAULT:\n 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',\n colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform',\n },\n transitionTimingFunction: {\n DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',\n },\n translate: ({ theme }) => ({\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n full: '100%',\n }),\n width: ({ theme }) => ({\n auto: 'auto',\n ...theme('spacing'),\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%',\n full: '100%',\n screen: '100vw',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n }),\n willChange: {\n auto: 'auto',\n scroll: 'scroll-position',\n contents: 'contents',\n transform: 'transform',\n },\n zIndex: {\n auto: 'auto',\n 0: '0',\n 10: '10',\n 20: '20',\n 30: '30',\n 40: '40',\n 50: '50',\n },\n },\n plugins: [],\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return getAllConfigs;\n }\n});\nconst _configfull = /*#__PURE__*/ _interop_require_default(require(\"../../stubs/config.full.js\"));\nconst _featureFlags = require(\"../featureFlags\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getAllConfigs(config) {\n var _config_presets;\n const configs = ((_config_presets = config === null || config === void 0 ? void 0 : config.presets) !== null && _config_presets !== void 0 ? _config_presets : [\n _configfull.default\n ]).slice().reverse().flatMap((preset)=>getAllConfigs(preset instanceof Function ? preset() : preset));\n const features = {\n // Add experimental configs here...\n respectDefaultRingColorOpacity: {\n theme: {\n ringColor: ({ theme })=>({\n DEFAULT: \"#3b82f67f\",\n ...theme(\"colors\")\n })\n }\n },\n disableColorOpacityUtilitiesByDefault: {\n corePlugins: {\n backgroundOpacity: false,\n borderOpacity: false,\n divideOpacity: false,\n placeholderOpacity: false,\n ringOpacity: false,\n textOpacity: false\n }\n }\n };\n const experimentals = Object.keys(features).filter((feature)=>(0, _featureFlags.flagEnabled)(config, feature)).map((feature)=>features[feature]);\n return [\n config,\n ...experimentals,\n ...configs\n ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return resolveConfig;\n }\n});\nconst _resolveConfig = /*#__PURE__*/ _interop_require_default(require(\"../util/resolveConfig\"));\nconst _getAllConfigs = /*#__PURE__*/ _interop_require_default(require(\"../util/getAllConfigs\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction resolveConfig(...configs) {\n let [, ...defaultConfigs] = (0, _getAllConfigs.default)(configs[0]);\n return (0, _resolveConfig.default)([\n ...configs,\n ...defaultConfigs\n ]);\n}\n","let resolveConfig = require('./lib/public/resolve-config')\nmodule.exports = (resolveConfig.__esModule ? resolveConfig : { default: resolveConfig }).default\n","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","import * as TailwindColors from \"tailwindcss/colors\"\r\n\r\nexport const BrandColors = {\r\n 50: \"#FCE3E4\",\r\n 100: \"#F9CDCE\",\r\n 200: \"#F39699\",\r\n 300: \"#ED6368\",\r\n 400: \"#E72C32\",\r\n 500: \"#C4161C\",\r\n 600: \"#9C1216\",\r\n 700: \"#770D11\",\r\n 800: \"#4E090B\",\r\n 900: \"#290506\",\r\n}\r\n\r\nconst customColors = {\r\n onprimary: TailwindColors.white,\r\n warning: TailwindColors.amber,\r\n error: TailwindColors.rose,\r\n info: TailwindColors.cyan,\r\n success: TailwindColors.lime,\r\n primary: TailwindColors.sky,\r\n brand: BrandColors,\r\n}\r\n\r\nexport const CustomColors = {\r\n ...customColors,\r\n // Warning\r\n warning: customColors.warning[\"500\"],\r\n \"warning-darken\": customColors.warning[\"600\"],\r\n \"warning-lighten\": customColors.warning[\"400\"],\r\n // Success\r\n success: customColors.success[\"500\"],\r\n \"success-darken\": customColors.success[\"600\"],\r\n \"success-lighten\": customColors.success[\"400\"],\r\n // Error\r\n error: customColors.error[\"500\"],\r\n \"error-darken\": customColors.error[\"600\"],\r\n \"error-lighten\": customColors.error[\"400\"],\r\n // Info\r\n info: customColors.info[\"500\"],\r\n \"info-darken\": customColors.info[\"600\"],\r\n \"info-lighten\": customColors.info[\"400\"],\r\n // Primary\r\n primary: customColors.primary[\"500\"],\r\n \"primary-darken\": customColors.primary[\"600\"],\r\n \"primary-lighten\": customColors.primary[\"400\"],\r\n // Surfaces\r\n onsurface: TailwindColors.slate[\"500\"],\r\n onbackground: TailwindColors.slate[\"700\"],\r\n surface: TailwindColors.slate[\"50\"],\r\n background: TailwindColors.white,\r\n}\r\n\r\nexport default {\r\n prefix: \"e-\",\r\n corePlugins: {\r\n preflight: false,\r\n },\r\n content: [\"./src/**/*.{html,js,vue,ts}\"],\r\n theme: {\r\n extend: {\r\n colors: CustomColors,\r\n maxWidth: {\r\n \"1/12\": \"8.333333333%\",\r\n \"2/12\": \"16.666666666%\",\r\n \"3/12\": \"25%\",\r\n \"4/12\": \"33.333333333%\",\r\n \"5/12\": \"41.666666667%\",\r\n \"6/12\": \"50%\",\r\n \"7/12\": \"58.333333334%\",\r\n \"8/12\": \"66.666666666%\",\r\n \"9/12\": \"75%\",\r\n \"10/12\": \"83.333333334%\",\r\n \"11/12\": \"91.666666666%\",\r\n \"12/12\": \"100%\",\r\n },\r\n },\r\n fontSize: {\r\n xs: \"0.75rem\",\r\n sm: \"0.875rem\",\r\n base: \"1rem\",\r\n lg: \"1.125rem\",\r\n xl: \"1.25rem\",\r\n \"2xl\": \"1.5rem\",\r\n \"3xl\": \"1.875rem\",\r\n \"4xl\": \"2.25rem\",\r\n \"5xl\": \"3rem\",\r\n \"6xl\": \"3.75rem\",\r\n \"7xl\": \"4.5rem\",\r\n \"8xl\": \"6rem\",\r\n \"9xl\": \"8rem\",\r\n },\r\n },\r\n plugins: [],\r\n safelist: [\r\n {\r\n pattern: /e-w-(full|auto)/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-grow/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-basis-(\\d{1,2}\\/\\d{1,2}|full|auto|0)/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /^!?e-max-w-(\\d{1,2}\\/\\d{1,2})/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-offset-(1[0-2]|[1-9])/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern: /e-items-(start|center|end|baseline|stretch)/,\r\n },\r\n {\r\n pattern: /e-self-(start|center|end|baseline|stretch)/,\r\n },\r\n {\r\n pattern:\r\n /e-justify-(around|between|center|end|evenly|normal|start|stretch)/,\r\n variants: [\"lg\", \"md\", \"sm\", \"xs\", \"xl\"],\r\n },\r\n {\r\n pattern:\r\n /e-content-(around|baseline|between|center|end|evenly|normal|start|stretch)/,\r\n },\r\n ],\r\n}\r\n","import resolveConfig from \"tailwindcss/resolveConfig\"\r\nimport tailwindConfig from \"../config\"\r\nimport { Size, BaseColor } from \"@/types\"\r\n\r\nexport const fullConfig = resolveConfig(tailwindConfig) as any\r\n\r\nexport const TextSizes = fullConfig.theme.fontSize\r\n\r\nexport const Colors = fullConfig.theme.colors\r\n\r\nexport const BadgeSizes = [\r\n Size.dot,\r\n Size.xs,\r\n Size.sm,\r\n Size.md,\r\n Size.lg,\r\n Size.xl,\r\n] as const\r\n\r\nexport const AvatarSizes = [\r\n Size.xs,\r\n Size.sm,\r\n Size.md,\r\n Size.lg,\r\n Size.xl,\r\n Size[\"2xl\"],\r\n] as const\r\n\r\nexport const IconSizes = [\r\n Size.xs,\r\n Size.sm,\r\n Size.md,\r\n Size.base,\r\n Size.lg,\r\n Size.xl,\r\n Size[\"2xl\"],\r\n Size[\"3xl\"],\r\n Size[\"4xl\"],\r\n Size[\"5xl\"],\r\n Size[\"6xl\"],\r\n Size[\"7xl\"],\r\n Size[\"8xl\"],\r\n Size[\"9xl\"],\r\n] as const\r\n\r\nexport const BadgeColors = [\r\n BaseColor.warning,\r\n BaseColor.error,\r\n BaseColor.info,\r\n BaseColor.success,\r\n BaseColor.primary,\r\n BaseColor.default,\r\n] as const\r\n\r\nexport const EVENTS = [\r\n \"play\",\r\n \"pause\",\r\n \"ended\",\r\n \"loadeddata\",\r\n \"waiting\",\r\n \"playing\",\r\n \"timeupdate\",\r\n \"canplay\",\r\n \"canplaythrough\",\r\n \"statechanged\",\r\n]\r\n\r\nexport default {}\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { IconSizes } from \"@/constants\"\r\nimport { BaseColor, Size, TailwindColorClass, TIconSize } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n name: \"EIcon\",\r\n props: {\r\n icon: {\r\n type: String,\r\n default: \"\",\r\n },\r\n color: {\r\n type: String as PropType<TailwindColorClass>,\r\n default: BaseColor.default,\r\n },\r\n size: {\r\n type: String as PropType<TIconSize>,\r\n default: Size.sm,\r\n },\r\n },\r\n computed: {\r\n sizes(): Record<Size, string> {\r\n return IconSizes.reduce((acc, s) => {\r\n return {\r\n ...acc,\r\n [s]: `e-text-${s}`,\r\n }\r\n }, {}) as Record<Size, string>\r\n },\r\n iconClasses(): string[] {\r\n const sizeClasses = this.sizes[this.size] || this.sizes[Size.sm]\r\n const iconClasses = `${\r\n this.icon?.split(\" \")?.length > 1 ? this.icon : `fa fa-${this.icon}`\r\n }`\r\n const color = this.color\r\n\r\n return [\r\n \"e-inline-flex e-items-center e-justify-center e-rounded-full\",\r\n color,\r\n iconClasses,\r\n sizeClasses,\r\n ]\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { Size } from \"@/types\"\r\nimport { TextSizes, Colors } from \"@/constants\"\r\n\r\nexport default Vue.extend({\r\n name: \"ESpinner\",\r\n props: {\r\n dark: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n color: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n animationDuration: {\r\n type: [Number, String],\r\n default: 1000,\r\n },\r\n size: {\r\n type: String as PropType<Size>,\r\n default: Size.base,\r\n },\r\n opacity: {\r\n type: [String, Number],\r\n default: 1,\r\n },\r\n },\r\n data() {\r\n return {\r\n sizes: TextSizes,\r\n colors: Colors,\r\n }\r\n },\r\n computed: {\r\n computedSize(): number {\r\n return this.sizes[Size[this.size]] || this.size || this.sizes[Size.base]\r\n },\r\n fill(): { primary: string; secondary: string } {\r\n let fill = {\r\n primary: this.colors.brand[500],\r\n secondary: this.colors.neutral[300],\r\n }\r\n\r\n if (this.dark && !this.color) {\r\n fill = {\r\n primary: this.colors.neutral[100],\r\n secondary: this.colors.neutral[100],\r\n }\r\n }\r\n\r\n if (!this.dark && this.color) {\r\n fill = {\r\n primary: this.colors.brand[500],\r\n secondary: this.colors.neutral[950],\r\n }\r\n }\r\n\r\n if (!this.dark && !this.color) {\r\n fill = {\r\n primary: this.colors.neutral[200],\r\n secondary: this.colors.neutral[200],\r\n }\r\n }\r\n\r\n return fill\r\n },\r\n },\r\n methods: {\r\n getNthPathStyle(index: number) {\r\n const animationDuration =\r\n typeof this.animationDuration === \"string\"\r\n ? Number.parseInt(this.animationDuration)\r\n : this.animationDuration\r\n\r\n return {\r\n animationDuration: `${this.animationDuration}ms`,\r\n animationDelay: `${(index / 10) * animationDuration}ms`,\r\n fill: `${this.fill[index % 2 === 0 ? \"primary\" : \"secondary\"]}`,\r\n }\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { FlexAlignContent, FlexAlignItems, FlexJustifyContent } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n props: {\r\n align: {\r\n type: String as PropType<FlexAlignItems>,\r\n default: undefined,\r\n },\r\n alignContent: {\r\n type: String as PropType<FlexAlignContent>,\r\n default: undefined,\r\n },\r\n justify: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyXs: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifySm: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyMd: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyLg: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n justifyXl: {\r\n type: String as PropType<FlexJustifyContent>,\r\n default: undefined,\r\n },\r\n noGutters: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n justifyClasses(): Record<string, boolean> {\r\n return {\r\n [`e-justify-${this.justify}`]: !!this.justify,\r\n [`xs:e-justify-${this.justifySm}`]: !!this.justifySm,\r\n [`sm:e-justify-${this.justifySm}`]: !!this.justifySm,\r\n [`md:e-justify-${this.justifyMd}`]: !!this.justifyMd,\r\n [`lg:e-justify-${this.justifyLg}`]: !!this.justifyLg,\r\n [`xl:e-justify-${this.justifyXl}`]: !!this.justifyXl,\r\n }\r\n },\r\n rowClasses(): Record<string, boolean> {\r\n return {\r\n ...(this.align ? { [`e-items-${this.align}`]: true } : {}),\r\n ...(this.alignContent\r\n ? { [`e-content-${this.alignContent}`]: true }\r\n : {}),\r\n ...(this.noGutters ? { [\"e-row--no-gutters\"]: true } : {}),\r\n ...this.justifyClasses,\r\n }\r\n },\r\n },\r\n})\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { FlexAlignSelf } from \"@/types\"\r\n\r\nexport default Vue.extend({\r\n props: {\r\n alignSelf: {\r\n type: String as PropType<FlexAlignSelf>,\r\n default: \"auto\",\r\n },\r\n cols: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n lg: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n md: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n offset: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetLg: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetMd: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetSm: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetXs: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n offsetXl: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n sm: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n xs: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n xl: {\r\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\r\n default: undefined,\r\n },\r\n },\r\n computed: {\r\n colClasses(): Record<string, boolean> {\r\n return {\r\n // Align self\r\n ...(this.alignSelf ? { [`e-self-${this.alignSelf}`]: true } : {}),\r\n\r\n // cols=\"auto\"\r\n [this.autoClasses(\"xs:\", this.xs)]: this.isSizePropAuto(this.xs),\r\n [this.autoClasses(\"sm:\", this.sm)]: this.isSizePropAuto(this.sm),\r\n [this.autoClasses(\"md:\", this.md)]: this.isSizePropAuto(this.md),\r\n [this.autoClasses(\"lg:\", this.lg)]: this.isSizePropAuto(this.lg),\r\n [this.autoClasses(\"xl:e\", this.xl)]: this.isSizePropAuto(this.xl),\r\n [this.autoClasses(\"\", this.cols)]: this.isSizePropAuto(this.cols, true),\r\n\r\n // cols=\"12\"\r\n \"xs:e-basis-full xs:!e-max-w-12/12\": this.xs === 12 || this.xs === \"12\",\r\n \"sm:e-basis-full sm:!e-max-w-12/12\": this.sm === 12 || this.sm === \"12\",\r\n \"md:e-basis-full md:!e-max-w-12/12\": this.md === 12 || this.md === \"12\",\r\n \"lg:e-basis-full lg:!e-max-w-12/12\": this.lg === 12 || this.lg === \"12\",\r\n \"xl:e-basis-full xl:!e-max-w-12/12\": this.xl === 12 || this.xl === \"12\",\r\n \"e-basis-full e-max-w-12/12\": this.cols === 12 || this.cols === \"12\",\r\n\r\n // cols=\"n\"\r\n [`xs:e-basis-${this.xs}/12 xs:!e-max-w-${this.xs}/12`]:\r\n this.isSizePropertyNumeric(this.xs),\r\n [`sm:e-basis-${this.sm}/12 sm:!e-max-w-${this.sm}/12`]:\r\n this.isSizePropertyNumeric(this.sm),\r\n [`md:e-basis-${this.md}/12 md:!e-max-w-${this.md}/12`]:\r\n this.isSizePropertyNumeric(this.md),\r\n [`lg:e-basis-${this.lg}/12 lg:!e-max-w-${this.lg}/12`]:\r\n this.isSizePropertyNumeric(this.lg),\r\n [`xl:e-basis-${this.xl}/12 xl:!e-max-w-${this.xl}/12`]:\r\n this.isSizePropertyNumeric(this.xl),\r\n [`e-basis-${this.cols}/12 !e-max-w-${this.cols}/12`]:\r\n this.isSizePropertyNumeric(this.cols),\r\n\r\n // offset=\"n\"\r\n [`xs:e-offset-${this.offsetXs}`]: this.offsetXs !== undefined,\r\n [`sm:e-offset-${this.offsetSm}`]: this.offsetSm !== undefined,\r\n [`md:e-offset-${this.offsetMd}`]: this.offsetMd !== undefined,\r\n [`lg:e-offset-${this.offsetLg}`]: this.offsetLg !== undefined,\r\n [`xl:e-offset-${this.offsetXl}`]: this.offsetXl !== undefined,\r\n [`e-offset-${this.offset}`]: this.offset !== undefined,\r\n }\r\n },\r\n },\r\n methods: {\r\n autoClasses(prefix: string, value: boolean | string | number) {\r\n const basis = value === \"auto\" ? \"auto\" : \"0\"\r\n const grow = value === \"auto\" ? \"-0\" : \"\"\r\n const width = value === \"auto\" ? \"auto\" : \"full\"\r\n\r\n return `${prefix}e-basis-${basis} ${prefix}e-grow${grow} ${prefix}e-w-${width}`\r\n },\r\n isSizePropAuto(\r\n prop: boolean | string | number | undefined,\r\n acceptUndefined = false\r\n ) {\r\n return (\r\n prop === \"auto\" ||\r\n prop === 0 ||\r\n prop === \"0\" ||\r\n (acceptUndefined && !prop)\r\n )\r\n },\r\n isSizePropertyNumeric(prop: boolean | string | number | undefined) {\r\n const n = Number.parseInt(prop as string)\r\n\r\n return prop !== \"auto\" && !isNaN(n) && n >= 1 && n < 12\r\n },\r\n },\r\n})\r\n","export function isFullScreen() {\r\n return !!(\r\n document.fullscreenElement ||\r\n document.mozFullScreenElement ||\r\n document.webkitFullscreenElement ||\r\n document.msFullscreenElement\r\n )\r\n}\r\n\r\nexport function makeFullScreen(element: HTMLElement) {\r\n if (isFullScreen()) {\r\n return new Promise((resolve) => resolve())\r\n }\r\n\r\n if (element.requestFullscreen) {\r\n return element?.requestFullscreen()\r\n } else if (element.mozRequestFullScreen) {\r\n return element?.mozRequestFullScreen()\r\n } else if (element.webkitRequestFullScreen) {\r\n return element?.webkitRequestFullScreen()\r\n } else if (element.msRequestFullscreen) {\r\n return element?.msRequestFullscreen()\r\n }\r\n}\r\n\r\nexport function exitFullScreen() {\r\n if (!isFullScreen()) {\r\n return new Promise((resolve) => resolve())\r\n }\r\n\r\n if (document.exitFullscreen) {\r\n return document.exitFullscreen()\r\n } else if (document.mozCancelFullScreen) {\r\n return document.mozCancelFullScreen()\r\n } else if (document.webkitCancelFullScreen) {\r\n return document.webkitCancelFullScreen()\r\n } else if (document.msExitFullscreen) {\r\n return document.msExitFullscreen()\r\n }\r\n}\r\n","\r\nimport Vue, { PropType } from \"vue\"\r\nimport { makeFullScreen, exitFullScreen } from \"@/utils\"\r\nimport ESpinner from \"@/components/ESpinner.vue\"\r\n// types:\r\nexport type VideoSource = {\r\n type: string\r\n src: string\r\n}\r\n\r\n// Helper functions\r\nconst leadingZeroFormatter = new Intl.NumberFormat(undefined, {\r\n minimumIntegerDigits: 2,\r\n})\r\n\r\n// List of events so we can bind them on mount\r\nexport const VIDEO_PLAYER_EVENTS = [\r\n \"play\",\r\n \"pause\",\r\n \"ended\",\r\n \"loadeddata\",\r\n \"waiting\",\r\n \"playing\",\r\n \"timeupdate\",\r\n \"canplay\",\r\n \"canplaythrough\",\r\n \"statechanged\",\r\n \"error\",\r\n]\r\n\r\nconst formatDuration = (time: number) => {\r\n const seconds = Math.floor(time % 60)\r\n const minutes = Math.floor(time / 60) % 60\r\n const hours = Math.floor(time / 3600)\r\n if (hours === 0) {\r\n return `${minutes}:${leadingZeroFormatter.format(seconds)}`\r\n } else {\r\n return `${hours}:${leadingZeroFormatter.format(\r\n minutes\r\n )}:${leadingZeroFormatter.format(seconds)}`\r\n }\r\n}\r\n\r\nexport default Vue.extend({\r\n name: \"VideoPlayer\",\r\n components: {\r\n ESpinner,\r\n },\r\n props: {\r\n sources: {\r\n type: [Array, String] as PropType<VideoSource[] | string>,\r\n required: true,\r\n },\r\n videoListeners: {\r\n type: Object as PropType<Partial<HTMLVideoElement>>,\r\n default: () => ({}),\r\n },\r\n videoOptions: {\r\n type: Object as PropType<Partial<HTMLVideoElement>>,\r\n default: () => ({}),\r\n },\r\n },\r\n data() {\r\n return {\r\n playing: false,\r\n percentagePlayed: 0,\r\n videoLength: \"0:00\",\r\n duration: 0,\r\n videoDuration: 0,\r\n currentTime: \"0:00\",\r\n realtime: 0,\r\n isScrubbing: false,\r\n wasPaused: false,\r\n isFullscreen: false,\r\n isFinished: false,\r\n isLoading: true,\r\n isError: false,\r\n }\r\n },\r\n computed: {\r\n sourceItems() {\r\n return (\r\n Array.isArray(this.sources) ? this.sources : [{ src: this.sources }]\r\n ) as VideoSource[]\r\n },\r\n hasStartedOrFinished(): boolean {\r\n return (\r\n (this.isFinished || this.realtime <= 0.1) &&\r\n !this.isLoading &&\r\n !this.isLooped()\r\n )\r\n },\r\n withControls() {\r\n const videoOptions = this.videoOptions as Partial<HTMLVideoElement>\r\n\r\n return videoOptions?.controls === false ? \"hide\" : \"\"\r\n },\r\n },\r\n mounted() {\r\n this.bindEvents()\r\n this.initializePlayer()\r\n this.initializeFullscreenListeners()\r\n },\r\n destroyed() {\r\n this.unbindEvents()\r\n this.destroyPlayer()\r\n this.removeFullscreenListeners()\r\n },\r\n\r\n methods: {\r\n handle404Error() {\r\n this.isError = true\r\n this.isLoading = false\r\n this.playing = false\r\n },\r\n bindEvents() {\r\n VIDEO_PLAYER_EVENTS.forEach((event) => {\r\n this.bindVideoEvent(event)\r\n })\r\n },\r\n unbindEvents() {\r\n VIDEO_PLAYER_EVENTS.forEach((event) => {\r\n this.unbindVideoEvent(event)\r\n })\r\n },\r\n bindVideoEvent(which: string) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n player.addEventListener(\r\n which,\r\n (event) => {\r\n if (which === \"loadeddata\") {\r\n this.videoLength = formatDuration(player.duration)\r\n }\r\n\r\n if (which === \"timeupdate\") {\r\n this.percentagePlayed = (player.currentTime / player.duration) * 100\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n this.percentagePlayed.toString()\r\n )\r\n }\r\n\r\n this.$emit(which, { event, player: this })\r\n },\r\n true\r\n )\r\n },\r\n unbindVideoEvent(which: string) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n player.addEventListener(\r\n which,\r\n (event) => {\r\n if (which === \"loadeddata\") {\r\n this.videoLength = formatDuration(player.duration)\r\n }\r\n\r\n if (which === \"timeupdate\") {\r\n this.percentagePlayed = (player.currentTime / player.duration) * 100\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n this.percentagePlayed.toString()\r\n )\r\n }\r\n\r\n this.$emit(which, { event, player: this })\r\n },\r\n true\r\n )\r\n },\r\n initializePlayer() {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n if (playerRef.autoplay) {\r\n this.setPlaying(true)\r\n }\r\n document.addEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\r\n document.addEventListener(\"keydown\", this.handleKeyDown)\r\n },\r\n destroyPlayer() {\r\n window.removeEventListener(\"keydown\", this.handleKeyDown)\r\n document.removeEventListener(\"mouseup\", this.handleScrubbingOnMouseEnd)\r\n },\r\n removeFullscreenListeners() {\r\n if (\r\n document.fullscreenEnabled ||\r\n document.webkitFullscreenEnabled ||\r\n document.mozFullScreenEnabled ||\r\n document.msFullscreenEnabled\r\n ) {\r\n document.removeEventListener(\r\n \"fullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.removeEventListener(\r\n \"webkitfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.removeEventListener(\r\n \"mozfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.removeEventListener(\r\n \"MSFullscreenChange\",\r\n this.handleFullscreenChange\r\n )\r\n } else {\r\n console.log(\"Fullscreen API is not supported in this browser.\")\r\n }\r\n },\r\n initializeFullscreenListeners() {\r\n if (\r\n document.fullscreenEnabled ||\r\n document.webkitFullscreenEnabled ||\r\n document.mozFullScreenEnabled ||\r\n document.msFullscreenEnabled\r\n ) {\r\n document.addEventListener(\r\n \"fullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.addEventListener(\r\n \"webkitfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.addEventListener(\r\n \"mozfullscreenchange\",\r\n this.handleFullscreenChange\r\n )\r\n document.addEventListener(\r\n \"MSFullscreenChange\",\r\n this.handleFullscreenChange\r\n )\r\n } else {\r\n console.log(\"Fullscreen API is not supported in this browser.\")\r\n }\r\n },\r\n handleFullscreenChange() {\r\n this.isFullscreen =\r\n document.fullscreenElement ||\r\n document.mozFullScreenElement ||\r\n document.webkitFullscreenElement ||\r\n document.msFullscreenElement ||\r\n (window.innerWidth == screen.width &&\r\n window.innerHeight == screen.height)\r\n },\r\n\r\n isLooped() {\r\n const player = this.$refs.player as HTMLVideoElement\r\n\r\n return player.loop\r\n },\r\n handleScrubbingOnMouseEnd(e: MouseEvent) {\r\n if (this.isScrubbing) {\r\n this.toggleScrubbing(e)\r\n }\r\n },\r\n handleEnded() {\r\n this.isFinished = true\r\n this.playing = false\r\n },\r\n handleLoading() {\r\n this.isLoading = false\r\n },\r\n play() {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n const playPromise = playerRef.play()\r\n if (playPromise !== undefined) {\r\n playerRef\r\n .play()\r\n .then(() => this.setPlaying(true))\r\n .catch(console.error)\r\n }\r\n },\r\n pause() {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n playerRef.pause()\r\n this.setPlaying(false)\r\n },\r\n togglePlay() {\r\n if (this.playing) {\r\n this.pause()\r\n } else {\r\n this.play()\r\n }\r\n },\r\n setPlaying(state: boolean) {\r\n this.playing = state\r\n },\r\n seekToPercentage(percentage: number) {\r\n const playerRef = this.$refs.player as HTMLVideoElement\r\n if (!playerRef) {\r\n return\r\n }\r\n const currentTime = (percentage / 100) * playerRef.duration\r\n playerRef.currentTime = currentTime\r\n },\r\n convertTimeToDuration(seconds: number) {\r\n // @ts-ignore\r\n return [parseInt((seconds / 60) % 60, 10), parseInt(seconds % 60, 10)]\r\n .join(\":\")\r\n .replace(/\\b(\\d)\\b/g, \"0$1\")\r\n },\r\n\r\n closeFullscreenMode() {\r\n if (document.fullscreenElement) {\r\n exitFullScreen().then(() => {\r\n this.isFullscreen = false\r\n console.log(\"Exited fullscreen\")\r\n })\r\n\r\n this.isFullscreen = false\r\n }\r\n },\r\n openFullscreenMode() {\r\n const element = this.$refs.videoContainer as HTMLDivElement\r\n if (element) {\r\n makeFullScreen(element).then(() => {\r\n this.isFullscreen = true\r\n })\r\n this.isFullscreen = true\r\n }\r\n },\r\n toggleFullscreenMode() {\r\n if (this.isFullscreen) {\r\n this.closeFullscreenMode()\r\n } else {\r\n this.openFullscreenMode()\r\n }\r\n },\r\n\r\n getDuration() {\r\n const player = this.$refs.player as HTMLVideoElement\r\n this.videoLength = formatDuration(player.duration)\r\n this.videoDuration = player.duration\r\n },\r\n handleTimeUpdate() {\r\n const player = this.$refs.player as HTMLVideoElement\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n if (!player || !timelineContainer) {\r\n return\r\n }\r\n this.currentTime = formatDuration(player.currentTime)\r\n this.realtime = player.currentTime\r\n const percent = Number(this.realtime) / Number(this.videoDuration)\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n percent.toString()\r\n )\r\n },\r\n handleTimelineUpdate(e: MouseEvent) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n if (!document.body.contains(player)) {\r\n return\r\n }\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n const rect = timelineContainer.getBoundingClientRect()\r\n const percent =\r\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\r\n timelineContainer.style.setProperty(\r\n \"--preview-position\",\r\n percent.toString()\r\n )\r\n if (this.isScrubbing) {\r\n e.preventDefault()\r\n timelineContainer.style.setProperty(\r\n \"--progress-position\",\r\n percent.toString()\r\n )\r\n }\r\n },\r\n skip(duration = 5) {\r\n const player = this.$refs.player as HTMLVideoElement\r\n\r\n player.currentTime += duration\r\n },\r\n async toggleScrubbing(e: MouseEvent) {\r\n const timelineContainer = this.$refs.timelineContainer as HTMLDivElement\r\n const videoContainer = this.$refs.videoContainer as HTMLDivElement\r\n const player = this.$refs.player as HTMLVideoElement\r\n if (!player) {\r\n return\r\n }\r\n const rect = timelineContainer.getBoundingClientRect()\r\n const percent =\r\n Math.min(Math.max(0, e.x - rect.x), rect.width) / rect.width\r\n this.isScrubbing = (e.buttons & 1) === 1\r\n videoContainer.classList.toggle(\"scrubbing\", this.isScrubbing)\r\n if (this.isScrubbing) {\r\n this.wasPaused = player.paused\r\n await player.pause()\r\n this.handleTimelineUpdate(e)\r\n\r\n return\r\n }\r\n this.realtime = percent * this.videoDuration\r\n player.currentTime = percent * this.videoDuration\r\n if (this.wasPaused) {\r\n return\r\n }\r\n const playPromise = player.play()\r\n // @see issue: https://developer.chrome.com/blog/play-request-was-interrupted/\r\n if (playPromise !== undefined) {\r\n playPromise\r\n .then(() => this.handleTimelineUpdate(e))\r\n .catch(console.error)\r\n }\r\n },\r\n\r\n handleKeyDown(e: KeyboardEvent) {\r\n const tagName = document.activeElement?.tagName.toLowerCase()\r\n if (tagName === \"input\") {\r\n return\r\n }\r\n switch (e.key.toLowerCase()) {\r\n case \" \":\r\n if (tagName === \"button\") {\r\n return\r\n }\r\n this.togglePlay()\r\n break\r\n case \"k\":\r\n this.togglePlay()\r\n break\r\n case \"escape\":\r\n e.preventDefault()\r\n this.closeFullscreenMode()\r\n this.isFullscreen = false\r\n\r\n break\r\n case \"f\":\r\n this.openFullscreenMode()\r\n this.isFullscreen = true\r\n\r\n break\r\n }\r\n },\r\n },\r\n})\r\n","import * as d3 from \"d3\"\r\nimport { TimelineAxis, TimelineAxesConfig } from \"@/types\"\r\n\r\nconst getFormattedDay = (d: Date) => {\r\n const day = d3.utcFormat(\"%_d\")(d)\r\n const daySuffixes: { [key: string]: string } = {\r\n [\"1\"]: \"st\",\r\n [\"2\"]: \"nd\",\r\n [\"3\"]: \"rd\",\r\n }\r\n\r\n const daySuffix = daySuffixes[day.charAt(1)] || \"th\"\r\n\r\n return `${day}${daySuffix}`\r\n}\r\n\r\nconst getFormattedDayNoEndOfMonth = (d: Date) => {\r\n const nextDay = new Date(\r\n Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() + 1)\r\n )\r\n const isEndOfTheMonth = nextDay.getUTCDate() === 1\r\n\r\n if (isEndOfTheMonth) {\r\n return \"\"\r\n }\r\n\r\n return d3.utcFormat(\"%-d\")(d)\r\n}\r\n\r\nconst getFormattedHour = (d: Date) => {\r\n return [\"0\", \" 0\", \"00\"].includes(d3.utcFormat(\"%H\")(d))\r\n ? \"\"\r\n : `${d3.utcFormat(\"%H\")(d)}h`\r\n}\r\n\r\nconst getFormattedHourMinute = (d: Date) => {\r\n const HH_MM = d3.utcFormat(\"%H:%M\")(d)\r\n\r\n return HH_MM === \"00:00\" ? \"\" : HH_MM\r\n}\r\n\r\nconst getFormattedMinuteSecond = (d: Date) => {\r\n return d3.utcFormat(\"%M:%S\")(d)\r\n}\r\n\r\nconst getFormattedOverviewMinuteSecond = (d: Date) => {\r\n const HH_MM_SS = d3.utcFormat(\"%Hh%Mm\")(d)\r\n\r\n return `${HH_MM_SS}`\r\n}\r\n\r\nconst getFormattedOverviewHour = (d: Date) => {\r\n const hour = getFormattedHourMinute(d)\r\n const day = getFormattedDay(d)\r\n const month = d3.utcFormat(\"%B\")(d)\r\n\r\n return hour || `${month} ${day}`\r\n}\r\n\r\nconst getFormattedDayHourMinute = (d: Date) => {\r\n const HH_MM = getFormattedHourMinute(d)\r\n const hour = Number.parseInt(d3.utcFormat(\"%H\")(d))\r\n const day = getFormattedDay(d)\r\n const month = d3.utcFormat(\"%B\")(d)\r\n\r\n if (HH_MM && hour % 6 === 0) {\r\n return `${month} ${day} ${HH_MM}`\r\n }\r\n\r\n return getFormattedOverviewHour(d)\r\n}\r\n\r\nconst filterHourDivisibleBy = (n: number) => {\r\n return (d: Date) => {\r\n const hour = d3.utcFormat(\"%H\")(d)\r\n const minute = d3.utcFormat(\"%M\")(d)\r\n\r\n return !(minute === \"00\" && Number.parseInt(hour) % n === 0)\r\n }\r\n}\r\n\r\nconst filterMinutesDivisibleBy = (n: number) => {\r\n return (d: Date) => {\r\n const minute = d3.utcFormat(\"%M\")(d)\r\n\r\n return Number.parseInt(minute) % n !== 0\r\n }\r\n}\r\n\r\nconst filterMinutesSecondsDivisibleBy = (n: number) => {\r\n return (d: Date) => {\r\n const minute = d3.utcFormat(\"%M\")(d)\r\n const second = d3.utcFormat(\"%S\")(d)\r\n\r\n return Number.parseInt(minute) % n !== 0 && Number.parseInt(second) === 0\r\n }\r\n}\r\n\r\n/**\r\n * Precision of the timeline ticks\r\n * (measured in Hours per Pixel)\r\n */\r\nconst Precision = {\r\n _10_seconds: 0.000025,\r\n _20_seconds: 0.0001,\r\n _30_seconds: 0.00015,\r\n _1_minute: 0.0003,\r\n _2_minutes: 0.00075,\r\n _5_minutes: 0.002,\r\n _15_minutes: 0.005,\r\n _30_minutes: 0.01,\r\n _1_hour: 0.025,\r\n _2_hours: 0.05,\r\n _3_hours: 0.1,\r\n _4_hours: 0.15,\r\n _6_hours: 0.25,\r\n _1_day: 1,\r\n _2_days: 2,\r\n _1_month: 8,\r\n _1_month_abbr: 13,\r\n _1_month_letter: 22,\r\n _3_months: 33,\r\n infinity: Infinity,\r\n}\r\n\r\n/**\r\n * Map of formats and ticks intervals for the Timeline axis(s) by type.\r\n */\r\nexport const defaultAxesConfig: TimelineAxesConfig = {\r\n [TimelineAxis.overview]: [\r\n {\r\n precision: Precision._30_seconds,\r\n interval: d3.utcMinute.every(2),\r\n format: getFormattedOverviewMinuteSecond,\r\n },\r\n {\r\n precision: Precision._1_minute,\r\n interval: d3.utcMinute.every(5),\r\n format: getFormattedOverviewMinuteSecond,\r\n },\r\n {\r\n precision: Precision._2_minutes,\r\n interval: d3.utcMinute.every(10),\r\n format: getFormattedOverviewHour,\r\n },\r\n {\r\n precision: Precision._5_minutes,\r\n interval: d3.utcMinute.every(20),\r\n format: getFormattedDayHourMinute,\r\n },\r\n {\r\n precision: Precision._15_minutes,\r\n interval: d3.utcHour,\r\n format: getFormattedDayHourMinute,\r\n },\r\n {\r\n precision: Precision._30_minutes,\r\n interval: d3.utcHour.every(2),\r\n format: getFormattedDayHourMinute,\r\n },\r\n {\r\n precision: Precision._2_hours,\r\n interval: d3.utcHour.every(6),\r\n format: (d: Date) => {\r\n const hour = getFormattedHourMinute(d)\r\n const day = getFormattedDay(d)\r\n const month = d3.utcFormat(\"%B\")(d)\r\n\r\n return hour || `${month} ${day}`\r\n },\r\n },\r\n {\r\n precision: Precision._3_hours,\r\n interval: d3.utcHour.every(12),\r\n format: getFormattedOverviewHour,\r\n },\r\n {\r\n precision: Precision._6_hours,\r\n interval: d3.utcHour.every(24),\r\n format: (d: Date) => {\r\n const day = getFormattedDay(d)\r\n const abbreviatedMonth = d3.utcFormat(\"%b\")(d)\r\n\r\n return `${abbreviatedMonth} ${day}`\r\n },\r\n },\r\n {\r\n precision: Precision._2_days,\r\n interval: d3.utcMonth,\r\n format: (d: Date) => {\r\n const startOfTheYear = d.getUTCMonth() === 0 && d.getUTCDate() === 1\r\n const format = startOfTheYear ? \"%Y – %B\" : \"%B\"\r\n\r\n return d3.utcFormat(format)(d)\r\n },\r\n },\r\n {\r\n precision: Precision.infinity,\r\n interval: d3.utcYear,\r\n format: \"%Y\",\r\n },\r\n ],\r\n [TimelineAxis.detailed]: [\r\n {\r\n precision: Precision._10_seconds,\r\n interval: d3.utcSecond.every(10),\r\n format: getFormattedMinuteSecond,\r\n },\r\n {\r\n precision: Precision._20_seconds,\r\n interval: d3.utcSecond\r\n .every(20)\r\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\r\n format: getFormattedMinuteSecond,\r\n },\r\n {\r\n precision: Precision._30_seconds,\r\n interval: d3.utcSecond\r\n .every(30)\r\n ?.filter(filterMinutesSecondsDivisibleBy(2)),\r\n format: getFormattedMinuteSecond,\r\n },\r\n {\r\n precision: Precision._1_minute,\r\n interval: d3.utcMinute.filter(filterMinutesDivisibleBy(5)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._2_minutes,\r\n interval: d3.utcMinute.every(2)?.filter(filterMinutesDivisibleBy(10)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._5_minutes,\r\n interval: d3.utcMinute.every(5)?.filter(filterMinutesDivisibleBy(20)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._15_minutes,\r\n interval: d3.utcMinute.every(15)?.filter(filterHourDivisibleBy(1)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._30_minutes,\r\n interval: d3.utcMinute.every(30)?.filter(filterHourDivisibleBy(2)),\r\n format: getFormattedHourMinute,\r\n },\r\n {\r\n precision: Precision._1_hour,\r\n interval: d3.utcHour.filter(filterHourDivisibleBy(6)),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._2_hours,\r\n interval: d3.utcHour.every(2)?.filter(filterHourDivisibleBy(6)),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._3_hours,\r\n interval: d3.utcHour.every(3)?.filter(filterHourDivisibleBy(12)),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._4_hours,\r\n interval: d3.utcHour.every(4),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._6_hours,\r\n interval: d3.utcHour.every(6),\r\n format: getFormattedHour,\r\n },\r\n {\r\n precision: Precision._1_day,\r\n interval: d3.utcDay,\r\n format: getFormattedDayNoEndOfMonth,\r\n },\r\n {\r\n precision: Precision._2_days,\r\n interval: d3.utcDay.every(2),\r\n format: getFormattedDayNoEndOfMonth,\r\n },\r\n {\r\n precision: Precision._1_month,\r\n interval: d3.utcMonth,\r\n format: \"%B\",\r\n },\r\n {\r\n precision: Precision._1_month_abbr,\r\n interval: d3.utcMonth,\r\n format: \"%b\",\r\n },\r\n {\r\n precision: Precision._1_month_letter,\r\n interval: d3.utcMonth,\r\n format: (d: Date) => d3.utcFormat(\"%B\")(d).charAt(0),\r\n },\r\n {\r\n precision: Precision._3_months,\r\n interval: d3.utcMonth.every(3),\r\n format: \"Q%q\",\r\n },\r\n {\r\n precision: Precision.infinity,\r\n interval: d3.utcMonth.every(3),\r\n format: \"\",\r\n },\r\n ],\r\n [TimelineAxis.detailedBackground]: [\r\n {\r\n precision: Precision._10_seconds,\r\n interval: d3.utcSecond,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._20_seconds,\r\n interval: d3.utcSecond.every(5),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._30_seconds,\r\n interval: d3.utcSecond.every(10),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_minute,\r\n interval: d3.utcSecond.every(20),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._2_minutes,\r\n interval: d3.utcSecond.every(30),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._5_minutes,\r\n interval: d3.utcMinute,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._15_minutes,\r\n interval: d3.utcMinute.every(3),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._30_minutes,\r\n interval: d3.utcMinute.every(6),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_hour,\r\n interval: d3.utcMinute.every(15),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._2_hours,\r\n interval: d3.utcMinute.every(30),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._3_hours,\r\n interval: d3.utcHour,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._4_hours,\r\n interval: d3.utcHour,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._6_hours,\r\n interval: d3.utcMinute.every(120),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_day,\r\n interval: d3.utcHour.every(8),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._2_days,\r\n interval: d3.utcHour.every(12),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_month,\r\n interval: d3.utcDay.filter((d: Date) => {\r\n const dayOfMonth = d.getUTCDate()\r\n const daysInMonth = new Date(\r\n d.getUTCFullYear(),\r\n d.getUTCMonth() + 1,\r\n 0\r\n ).getUTCDate()\r\n const fifthOfMonth = Math.ceil(daysInMonth / 5) // 1/4 of the month\r\n\r\n return (\r\n dayOfMonth === fifthOfMonth ||\r\n dayOfMonth === 2 * fifthOfMonth ||\r\n dayOfMonth === 3 * fifthOfMonth ||\r\n dayOfMonth === 4 * fifthOfMonth\r\n )\r\n }),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_month_abbr,\r\n interval: d3.utcDay.filter((d: Date) => {\r\n const dayOfMonth = d.getUTCDate()\r\n const daysInMonth = new Date(\r\n d.getUTCFullYear(),\r\n d.getUTCMonth() + 1,\r\n 0\r\n ).getUTCDate()\r\n const quarterOfTheMonth = Math.ceil(daysInMonth / 4) // 1/4 of the month\r\n\r\n return (\r\n dayOfMonth === quarterOfTheMonth ||\r\n dayOfMonth === 2 * quarterOfTheMonth ||\r\n dayOfMonth === 3 * quarterOfTheMonth\r\n )\r\n }),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._1_month_letter,\r\n interval: d3.utcDay.filter((d: Date) => {\r\n const dayOfMonth = d.getUTCDate()\r\n const daysInMonth = new Date(\r\n d.getUTCFullYear(),\r\n d.getUTCMonth() + 1,\r\n 0\r\n ).getUTCDate()\r\n const halfOfTheMonth = Math.ceil(daysInMonth / 2) // 1/4 of the month\r\n\r\n return dayOfMonth === halfOfTheMonth\r\n }),\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision._3_months,\r\n interval: d3.utcMonth,\r\n format: \"\",\r\n },\r\n {\r\n precision: Precision.infinity,\r\n interval: d3.utcMonth,\r\n format: \"\",\r\n },\r\n ],\r\n}\r\n","import { DirectiveOptions } from \"vue\"\r\n\r\nexport interface ObservedElement extends HTMLElement {\r\n __resizeObserver__?: ResizeObserver\r\n}\r\n\r\nconst ResizeObserverDirective: DirectiveOptions = {\r\n bind(el, binding) {\r\n const { value: callback } = binding\r\n\r\n if (typeof callback !== \"function\") {\r\n console.error(\"Invalid callback function provided to v-resize-observer\")\r\n\r\n return\r\n }\r\n\r\n const observer: ResizeObserver = new ResizeObserver(\r\n (entries: ResizeObserverEntry[]) => {\r\n if (!entries[0]) {\r\n return\r\n }\r\n\r\n callback(entries[0])\r\n }\r\n )\r\n\r\n observer.observe(el)\r\n ;(el as ObservedElement).__resizeObserver__ = observer\r\n },\r\n unbind(el) {\r\n if ((el as ObservedElement).__resizeObserver__) {\r\n ;(el as ObservedElement).__resizeObserver__!.disconnect()\r\n delete (el as ObservedElement).__resizeObserver__\r\n }\r\n },\r\n}\r\n\r\nexport default ResizeObserverDirective\r\n","import ResizeObserverDirective from \"@/directives/resize-observer\"\r\n\r\nexport const DirectivesMap = [\r\n {\r\n name: \"resize-observer\",\r\n definition: ResizeObserverDirective,\r\n },\r\n]\r\n\r\nexport { ResizeObserverDirective }\r\n","\r\nimport * as d3 from \"d3\"\r\nimport Vue, { PropType } from \"vue\"\r\nimport { D3ZoomEvent, Axis, ZoomBehavior } from \"d3\"\r\nimport { defaultAxesConfig } from \"@/components/ETimeline.config\"\r\nimport {\r\n TimelineAxesConfig,\r\n TimelineAxis,\r\n TimelineTicksConfig,\r\n Timestamp,\r\n} from \"@/types\"\r\nimport { ResizeObserverDirective } from \"@/directives\"\r\nimport moment from \"moment-timezone\"\r\n\r\nexport type TimelineBarEvent = {\r\n timestamp: string | Date\r\n color?: string\r\n [key: string]: any\r\n}\r\n\r\nexport type TimelineRangeEvent = {\r\n startDate: string | Date\r\n endDate: string | Date\r\n [key: string]: any\r\n}\r\n\r\nexport type TimelineCountEvent = {\r\n timestamp: string | Date\r\n count: number\r\n [key: string]: any\r\n}\r\n\r\nexport type TimelineEvent =\r\n | TimelineBarEvent\r\n | TimelineRangeEvent\r\n | TimelineCountEvent\r\n\r\nexport enum TimelineChartType {\r\n bars = \"bars\",\r\n lineGraph = \"lineGraph\",\r\n}\r\n\r\nexport type TimelineEventsGroup = {\r\n label: string\r\n color: string\r\n isLoading?: Boolean\r\n isHidden?: Boolean\r\n chartType?: TimelineChartType\r\n events: Array<TimelineEvent>\r\n}\r\n\r\nexport type TimelineEventsByType = {\r\n [eventsType: string]: TimelineEventsGroup\r\n}\r\n\r\nconst classes = {\r\n eventGroup: \"event-group\",\r\n eventGroupBg: \"event-group-bg\",\r\n eventRect: \"event-rect\",\r\n labelBg: \"label-bg\",\r\n labelBgFill: \"label-bg-fill\",\r\n labelText: \"label-text\",\r\n loadingIndicator: \"loading-indicator\",\r\n xAxis: \"x-axis\",\r\n selectedTimestampCursor: \"selected-timestamp-cursor\",\r\n lineGraphGroup: \"line-graph-group\",\r\n lineGraphPath: \"line-graph-path\",\r\n lineGraphHoverZone: \"line-graph-hover-zone\",\r\n lineGraphDot: \"line-graph-dot\",\r\n curtain: \"curtain\",\r\n}\r\n\r\nconst defs = {\r\n areaGradient: \"area-gradient\",\r\n loadingGradient: \"loading-gradient\",\r\n}\r\n\r\nexport default Vue.extend({\r\n name: \"ETimeline\",\r\n directives: {\r\n resizeObserver: ResizeObserverDirective,\r\n },\r\n props: {\r\n eventsGroups: {\r\n type: Object as PropType<TimelineEventsByType>,\r\n default: () => ({}),\r\n },\r\n xAxesConfig: {\r\n type: Object as PropType<TimelineAxesConfig>,\r\n default: () => defaultAxesConfig,\r\n },\r\n dark: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n startDate: {\r\n type: String,\r\n default: undefined,\r\n },\r\n endDate: {\r\n type: String,\r\n default: undefined,\r\n },\r\n selectedTimestamp: {\r\n type: String,\r\n default: undefined,\r\n },\r\n showEventTooltip: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n disableZoom: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n normalizeEvents: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n flattenLineGraphEnds: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n curtains: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showLabels: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n rectMinWidth: {\r\n type: Number,\r\n default: 1,\r\n },\r\n barChartHeight: {\r\n type: Number,\r\n default: 18,\r\n },\r\n lineGraphMinHeight: {\r\n type: Number,\r\n default: 60,\r\n },\r\n minZoom: {\r\n type: Number,\r\n default: 0.0001,\r\n },\r\n maxZoom: {\r\n type: Number,\r\n default: 850_000,\r\n },\r\n cursorTimestamp: {\r\n type: [String, undefined] as PropType<string | undefined>,\r\n default: undefined,\r\n },\r\n },\r\n data() {\r\n return {\r\n tooltip: null as unknown as HTMLElement,\r\n cursor: null as unknown as HTMLElement,\r\n timeline: null as unknown as HTMLElement,\r\n selectedTimestampCursor: null as unknown as HTMLElement,\r\n svg: null as unknown as d3.Selection<SVGSVGElement, any, any, any>,\r\n axesContainer: null as unknown as d3.Selection<\r\n SVGGElement,\r\n any,\r\n any,\r\n any\r\n >,\r\n xAxes: {} as unknown as Record<TimelineAxis, Axis<Date>>,\r\n timeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\r\n initialTimeScale: null as unknown as d3.ScaleTime<any, any, unknown>,\r\n currentTimeScaleDensity: null as unknown as number,\r\n zoomBehavior: null as unknown as ZoomBehavior<SVGSVGElement, unknown>,\r\n isMouseDown: false,\r\n axisHeight: 22,\r\n eventGroupPadding: 0,\r\n isHoveringEvent: false,\r\n hoveredEvent: null as unknown as TimelineEvent,\r\n isHoveringTimeline: false,\r\n hoveredTimestamp: null as unknown as string,\r\n eventTooltipStyle: {},\r\n hoveredEventType: null as unknown as string,\r\n utcOffset: 0,\r\n lastTransform: { x: 0, k: 1 },\r\n transformDiff: { translation: 0, scale: 1 },\r\n yScale: null as unknown as d3.ScaleLinear<any, any>,\r\n hoveredCounts: [] as { count: number; type: string }[],\r\n countsByTimestamp: {} as Record<string, Record<string, number>>,\r\n dotsByTimestamp: {} as Record<\r\n string,\r\n d3.Selection<SVGCircleElement, any, any, any>[]\r\n >,\r\n visibleFrom: null as unknown as Date,\r\n visibleTo: null as unknown as Date,\r\n curtainHandleWidth: 5,\r\n leftCurtainWidth: 50,\r\n rightCurtainWidth: 50,\r\n isHoveringCurtain: false,\r\n isDraggingCurtain: false,\r\n }\r\n },\r\n computed: {\r\n classes(): Record<string, string | Record<string, boolean>> {\r\n return {\r\n wrapper: {\r\n \"e-border-gray-700 e-timeline--dark\": this.dark,\r\n \"e-border-gray-300\": !this.dark,\r\n \"e-timeline--dragging\": this.isInteractingWithCurtain,\r\n },\r\n background: this.dark ? \"e-bg-gray-900\" : \"e-bg-gray-50\",\r\n tooltipSlot: this.dark\r\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\r\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\r\n eventTooltipSlot: this.dark\r\n ? \"e-bg-gray-900 e-text-white e-border-gray-700\"\r\n : \"e-bg-gray-100 e-text-gray-700 e-border-gray-300\",\r\n }\r\n },\r\n lineGraphGroups(): TimelineEventsByType {\r\n return Object.entries(this.filteredEventsGroups).reduce(\r\n (acc, [type, eventsGroup]) => {\r\n if (eventsGroup.chartType === TimelineChartType.lineGraph) {\r\n return { ...acc, [type]: eventsGroup }\r\n } else {\r\n return acc\r\n }\r\n },\r\n {}\r\n )\r\n },\r\n lineGraphChartHeight(): number {\r\n if (!this.showLabels) {\r\n return this.lineGraphMinHeight\r\n }\r\n\r\n const combinedLabelsHeight =\r\n Object.keys(this.lineGraphGroups).length * this.barChartHeight\r\n\r\n return Math.max(this.lineGraphMinHeight, combinedLabelsHeight)\r\n },\r\n barGroups(): TimelineEventsByType {\r\n return Object.entries(this.filteredEventsGroups).reduce(\r\n (acc, [type, eventsGroup]) => {\r\n if (eventsGroup.chartType !== TimelineChartType.lineGraph) {\r\n return { ...acc, [type]: eventsGroup }\r\n } else {\r\n return acc\r\n }\r\n },\r\n {}\r\n )\r\n },\r\n hasLineGraphChart(): boolean {\r\n return Object.keys(this.lineGraphGroups).length > 0\r\n },\r\n labelRectWidth(): number {\r\n const eventsGroups = Object.values(\r\n this.eventsGroups\r\n ) as TimelineEventsGroup[]\r\n const maxLabelLength = eventsGroups.reduce((acc, eventsGroup) => {\r\n return Math.max(acc, eventsGroup.label?.length)\r\n }, 0)\r\n\r\n return maxLabelLength * 7.5 + 5\r\n },\r\n combinedXAxesHeight(): number {\r\n const axesCount = Object.keys(this.xAxesConfig).length - 1\r\n\r\n return this.axisHeight * axesCount\r\n },\r\n timelineHeight(): number {\r\n const barGroupsCount = Object.keys(this.barGroups).length\r\n const lineGraphChartHeight = this.hasLineGraphChart\r\n ? this.lineGraphChartHeight\r\n : 0\r\n const padding = this.eventGroupPadding * (barGroupsCount - 1)\r\n const eventsGouprsHeight = this.barChartHeight * barGroupsCount\r\n\r\n return (\r\n this.combinedXAxesHeight +\r\n lineGraphChartHeight +\r\n eventsGouprsHeight +\r\n padding\r\n )\r\n },\r\n filteredEventsGroups(): TimelineEventsByType {\r\n const entries = Object.entries(this.eventsGroups).filter(\r\n ([_type, group]) => {\r\n return !(group as TimelineEventsGroup).isHidden\r\n }\r\n )\r\n\r\n return Object.fromEntries(entries) as TimelineEventsByType\r\n },\r\n allEventsSorted(): TimelineEvent[] {\r\n const flattenedEvents = (\r\n Object.values(this.filteredEventsGroups) as TimelineEventsGroup[]\r\n )\r\n .map((e: TimelineEventsGroup) => e.events)\r\n .flat()\r\n\r\n return flattenedEvents.sort((a, b) =>\r\n new Date(a.timestamp || a.startDate) >\r\n new Date(b.timestamp || b.startDate)\r\n ? 1\r\n : -1\r\n )\r\n },\r\n oldestEvent(): TimelineEvent {\r\n let oldestEvent\r\n if (this.allEventsSorted.length > 1) {\r\n oldestEvent = this.allEventsSorted[0]\r\n } else {\r\n const DAY = 86_400_000\r\n const yesterday = new Date(new Date().getTime() - DAY)\r\n\r\n oldestEvent = {\r\n timestamp: yesterday,\r\n }\r\n }\r\n\r\n return oldestEvent\r\n },\r\n latestEvent(): TimelineEvent {\r\n let latestEvent\r\n if (this.allEventsSorted.length > 1) {\r\n latestEvent = this.allEventsSorted[this.allEventsSorted.length - 1]\r\n } else {\r\n const defaultMaxDate = new Date()\r\n\r\n latestEvent = {\r\n timestamp: defaultMaxDate,\r\n }\r\n }\r\n\r\n return latestEvent\r\n },\r\n allLineChartTimestamps(): string[] {\r\n const allTimestamps = new Set()\r\n Object.values(this.lineGraphGroups).forEach((group) => {\r\n group.events.forEach((event) => {\r\n allTimestamps.add(event.timestamp)\r\n })\r\n })\r\n\r\n return Array.from(allTimestamps).sort() as unknown as string[]\r\n },\r\n placeholderLineChartGroup(): TimelineEvent[] {\r\n return this.fillTimeGaps(\r\n this.allLineChartTimestamps.map((timestamp) => ({\r\n timestamp,\r\n count: 0,\r\n }))\r\n )\r\n },\r\n normalizedLineGraphGroups(): TimelineEventsByType {\r\n return Object.entries(this.lineGraphGroups).reduce(\r\n (acc, [type, group]) => {\r\n return {\r\n ...acc,\r\n [type]: {\r\n ...group,\r\n events: this.getNormalizedEvents(group.events),\r\n },\r\n }\r\n },\r\n {}\r\n )\r\n },\r\n isInteractingWithCurtain(): boolean {\r\n return this.isHoveringCurtain || this.isDraggingCurtain\r\n },\r\n },\r\n watch: {\r\n dark() {\r\n this.handleDarkModeChange()\r\n },\r\n selectedTimestamp() {\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n startDate() {\r\n this.zoomToStartAndEndDates()\r\n },\r\n endDate() {\r\n this.zoomToStartAndEndDates()\r\n },\r\n eventsGroups() {\r\n this.updateAndRedrawTimeline()\r\n },\r\n cursorTimestamp() {\r\n if (this.cursorTimestamp) {\r\n this.hoveredTimestamp = this.cursorTimestamp\r\n const timestamp = this.tzStringToDate(this.hoveredTimestamp)\r\n const cursorX = this.timeScale(timestamp)\r\n this.cursor.style.left = cursorX + \"px\"\r\n this.isHoveringTimeline = true\r\n } else {\r\n this.isHoveringTimeline = false\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.initTimeline()\r\n },\r\n beforeDestroy() {\r\n document.removeEventListener(\"mouseup\", this.handleDocumentMouseUp)\r\n },\r\n methods: {\r\n initTimeline(startDate?: string, endDate?: string) {\r\n this.initRefs()\r\n\r\n if (!this.timeline) {\r\n setTimeout(this.initTimeline, 500)\r\n\r\n return\r\n }\r\n\r\n this.initSvg()\r\n this.initDefs()\r\n this.initUtcOffset()\r\n this.initTimeScale(startDate, endDate)\r\n this.initXAxes()\r\n this.initYScale()\r\n this.initZoomBehavior()\r\n this.drawEventsGroups()\r\n this.initCurtains()\r\n this.emitCurtainChange()\r\n this.initSelectedTimestampCursor()\r\n this.registerEventsListeners()\r\n this.emitVisibleInterval()\r\n },\r\n initRefs() {\r\n this.tooltip = this.$refs.tooltip as HTMLElement\r\n this.cursor = this.$refs.cursor as HTMLElement\r\n this.timeline = this.$refs.timelineContainer as HTMLElement\r\n this.selectedTimestampCursor = this.$refs.selectedTimestamp as HTMLElement\r\n },\r\n initSvg() {\r\n this.svg = d3\r\n .select(this.timeline)\r\n .append(\"svg\")\r\n .attr(\"width\", this.timeline.offsetWidth)\r\n .attr(\"height\", this.timelineHeight) as d3.Selection<\r\n SVGSVGElement,\r\n any,\r\n any,\r\n any\r\n >\r\n },\r\n initDefs() {\r\n const defsSelection = this.svg.append(\"defs\")\r\n\r\n Object.entries(this.filteredEventsGroups).forEach(\r\n ([type, eventsGroup]) => {\r\n const { color, chartType } = eventsGroup\r\n const gradient = defsSelection\r\n .append(\"linearGradient\")\r\n .attr(\"id\", `${defs.loadingGradient}-${type}`)\r\n .attr(\"x1\", \"0%\")\r\n .attr(\"y1\", \"0%\")\r\n .attr(\"x2\", \"100%\")\r\n .attr(\"y2\", \"0%\")\r\n\r\n gradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"0%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", \"0\")\r\n gradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"50%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", \"0.6\")\r\n gradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"100%\")\r\n .attr(\"stop-color\", color)\r\n .attr(\"stop-opacity\", \"0\")\r\n\r\n if (chartType === TimelineChartType.lineGraph) {\r\n const areaGradient = defsSelection\r\n .append(\"linearGradient\")\r\n .attr(\"id\", `${defs.areaGradient}-${type}`)\r\n .attr(\"x1\", \"0%\")\r\n .attr(\"x2\", \"0%\")\r\n .attr(\"y1\", \"0%\")\r\n .attr(\"y2\", \"100%\")\r\n areaGradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"0%\")\r\n .style(\"stop-color\", color)\r\n .style(\"stop-opacity\", 0.3)\r\n areaGradient\r\n .append(\"stop\")\r\n .attr(\"offset\", \"38%\")\r\n .style(\"stop-color\", color)\r\n .style(\"stop-opacity\", 0)\r\n }\r\n }\r\n )\r\n },\r\n initUtcOffset() {\r\n const sampleTimestamp =\r\n this.startDate ||\r\n this.oldestEvent.timestamp ||\r\n this.oldestEvent.startDate\r\n this.utcOffset = moment.parseZone(sampleTimestamp).utcOffset()\r\n },\r\n initTimeScale(start?: string, end?: string) {\r\n const startDate =\r\n start ||\r\n this.startDate ||\r\n this.oldestEvent.timestamp ||\r\n this.oldestEvent.startDate\r\n const endDate =\r\n end ||\r\n this.endDate ||\r\n this.latestEvent.timestamp ||\r\n this.latestEvent.endDate\r\n\r\n this.timeScale = d3\r\n .scaleTime()\r\n .domain([this.tzStringToDate(startDate), this.tzStringToDate(endDate)])\r\n .range([0, this.timeline.offsetWidth])\r\n\r\n this.initialTimeScale = this.timeScale.copy()\r\n this.updateCurrentTimeScaleDensity()\r\n },\r\n initXAxes() {\r\n let i = 0\r\n const padding = 5\r\n for (const axisName in this.xAxesConfig) {\r\n const axis = this.createAxis(axisName as TimelineAxis)\r\n this.xAxes[axisName as TimelineAxis] = axis\r\n this.svg\r\n .append(\"g\")\r\n .classed(classes.xAxis, true)\r\n .classed(`${classes.xAxis}-${axisName}`, true)\r\n .attr(\"transform\", `translate(0, ${i || padding})`)\r\n .call(axis)\r\n\r\n this.translateTicksText(axisName)\r\n i += this.axisHeight\r\n }\r\n },\r\n initYScale() {\r\n this.yScale = d3.scaleLinear().range([this.lineGraphChartHeight, 0])\r\n const flattenedCounts = Object.values(this.lineGraphGroups)\r\n .map((g) => g.events)\r\n .flat()\r\n const maxCount = d3.max(flattenedCounts, (d) => d.count)\r\n this.yScale.domain([0, maxCount])\r\n },\r\n initZoomBehavior() {\r\n if (this.disableZoom) {\r\n return\r\n }\r\n\r\n this.zoomBehavior = d3\r\n .zoom<SVGSVGElement, unknown>()\r\n .on(\"zoom\", this.handleZoom)\r\n .scaleExtent([this.minZoom, this.maxZoom])\r\n\r\n this.svg.call(this.zoomBehavior)\r\n },\r\n initSelectedTimestampCursor() {\r\n this.svg\r\n .append(\"line\")\r\n .attr(\"class\", classes.selectedTimestampCursor)\r\n .style(\"stroke\", \"red\")\r\n .style(\"stroke-width\", \"1px\")\r\n .style(\"opacity\", 0)\r\n .attr(\"x1\", 0)\r\n .attr(\"x2\", 0)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", this.timelineHeight)\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n updateAndRedrawTimeline() {\r\n const { startDate, endDate } = this.getCurrentTimeBounds()\r\n this.clearTimeline()\r\n this.initTimeline(startDate, endDate)\r\n },\r\n clearTimeline() {\r\n if (this.svg) {\r\n this.svg.remove()\r\n }\r\n this.countsByTimestamp = {}\r\n },\r\n repositionSelectedTimestampCursor() {\r\n const cursor = this.svg.select(`.${classes.selectedTimestampCursor}`)\r\n if (!this.selectedTimestamp) {\r\n cursor.style(\"opacity\", 0)\r\n\r\n return\r\n }\r\n const timestamp = this.tzStringToDate(this.selectedTimestamp)\r\n const cursorX = this.timeScale(timestamp)\r\n if (!isNaN(cursorX)) {\r\n cursor.attr(\"x1\", cursorX).attr(\"x2\", cursorX).style(\"opacity\", 0.5)\r\n } else {\r\n cursor.style(\"opacity\", 0)\r\n }\r\n },\r\n updateCurrentTimeScaleDensity() {\r\n const timeAtPixel0 = this.timeScale.invert(0).getTime()\r\n const timeAtPixel1 = this.timeScale.invert(1).getTime()\r\n const HOUR = 3_600_000\r\n\r\n this.currentTimeScaleDensity = (timeAtPixel1 - timeAtPixel0) / HOUR\r\n },\r\n registerEventsListeners() {\r\n document.addEventListener(\"mouseup\", this.handleDocumentMouseUp)\r\n this.svg.on(\"mousedown\", this.handleMouseDown)\r\n this.svg.on(\"mousemove\", this.handleMouseMove)\r\n this.svg.on(\"click\", this.handleClick)\r\n this.svg.on(\"mouseleave\", this.handleMouseLeave)\r\n },\r\n emitVisibleInterval() {\r\n const visibleFrom = this.timeScale.invert(0)\r\n const visibleTo = this.timeScale.invert(this.timeline.offsetWidth)\r\n\r\n if (\r\n this.visibleFrom &&\r\n this.visibleFrom.getTime() === visibleFrom.getTime() &&\r\n this.visibleTo &&\r\n this.visibleTo.getTime() === visibleTo.getTime()\r\n ) {\r\n return\r\n }\r\n\r\n this.visibleFrom = visibleFrom\r\n this.visibleTo = visibleTo\r\n\r\n const fromDate = this.dateToTzString(this.visibleFrom)\r\n const toDate = this.dateToTzString(this.visibleTo)\r\n\r\n this.$emit(\"visible-interval-change\", {\r\n fromDate,\r\n toDate,\r\n transform: this.transformDiff,\r\n })\r\n },\r\n createAxis(axisName: TimelineAxis) {\r\n const axis = this.xAxesConfig[axisName as TimelineAxis]\r\n const config = this.getAxisTicksConfig(axis)\r\n\r\n return d3\r\n .axisBottom<Date>(this.timeScale)\r\n .ticks(config.interval)\r\n .tickFormat(config.formatFn)\r\n .tickSizeOuter(0)\r\n .tickSizeInner(this.timelineHeight)\r\n },\r\n getAxisTicksConfig(configs: TimelineTicksConfig[]) {\r\n const { interval, format } = configs.find(\r\n (config) =>\r\n config.precision >= this.currentTimeScaleDensity && config.interval\r\n ) as TimelineTicksConfig\r\n\r\n const formatFn = (d: Date): string => {\r\n return typeof format === \"function\"\r\n ? format(d)\r\n : d3.timeFormat(format)(d)\r\n }\r\n\r\n return {\r\n formatFn,\r\n interval,\r\n }\r\n },\r\n handleResize({ contentRect }: ResizeObserverEntry) {\r\n if (this.svg) {\r\n this.svg.attr(\"width\", contentRect.width)\r\n this.updateCurtainsOnResize(contentRect.width)\r\n }\r\n },\r\n handleDarkModeChange() {\r\n if (!this.showLabels) {\r\n return\r\n }\r\n\r\n const that = this\r\n this.svg.selectAll(`.${classes.labelBg}`).each(function () {\r\n const label = d3.select(this)\r\n label.style(\"fill\", that.dark ? \"black\" : \"white\")\r\n })\r\n this.svg.selectAll(`.${classes.labelBgFill}`).each(function () {\r\n const bgFill = d3.select(this)\r\n const color = (bgFill.node()! as HTMLElement).dataset.color\r\n bgFill\r\n .style(\"fill\", that.getLabelBackgroundColor(color as string))\r\n .style(\"stroke\", that.getTextFillColor(color as string))\r\n .style(\"stroke-width\", 0.25)\r\n })\r\n this.svg.selectAll(`.${classes.labelText}`).each(function () {\r\n const text = d3.select(this)\r\n const color = (text.node()! as HTMLElement).dataset.color\r\n text.style(\"fill\", that.getTextFillColor(color as string))\r\n })\r\n },\r\n handleMouseDown() {\r\n this.isMouseDown = true\r\n },\r\n handleDocumentMouseUp() {\r\n this.isMouseDown = false\r\n },\r\n handleMouseLeave() {\r\n this.isHoveringTimeline = false\r\n this.$emit(\"hovered-timestamp\", undefined)\r\n },\r\n handleMouseMove(event: MouseEvent) {\r\n if (this.isMouseDown) {\r\n return\r\n }\r\n const mouseX = event.offsetX\r\n const date = this.timeScale.invert(mouseX)\r\n this.hoveredTimestamp = this.dateToTzString(date)\r\n this.isHoveringTimeline = true\r\n this.$emit(\"hovered-timestamp\", this.hoveredTimestamp)\r\n this.cursor.style.left = mouseX + \"px\"\r\n\r\n if (!this.tooltip) {\r\n return\r\n }\r\n\r\n this.eventTooltipStyle = {\r\n left: `${mouseX}px`,\r\n bottom: `${this.timeline.getBoundingClientRect().height}px`,\r\n zIndex: 100,\r\n }\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n handleClick(event: MouseEvent) {\r\n const mouseX = event.offsetX\r\n const date = this.timeScale.invert(mouseX)\r\n const formattedDateTz = this.dateToTzString(date)\r\n\r\n this.$emit(\"date-clicked\", formattedDateTz)\r\n\r\n if (this.isHoveringEvent) {\r\n this.$emit(\"event-clicked\", {\r\n event: this.hoveredEvent,\r\n type: this.hoveredEventType,\r\n })\r\n }\r\n },\r\n handleLineMouseOver(\r\n _event: MouseEvent,\r\n eventData: TimelineCountEvent,\r\n eventType: string\r\n ) {\r\n this.hoveredCounts = Object.entries(\r\n this.countsByTimestamp[`${eventData.timestamp}`]\r\n ).reduce((acc, entry) => {\r\n const [type, count] = entry\r\n\r\n return [...acc, { type, count }]\r\n }, [] as { type: string; count: number }[])\r\n this.hoveredEvent = eventData\r\n this.isHoveringEvent = true\r\n this.$emit(\"event-mouseover\", {\r\n eventData,\r\n eventType,\r\n hoveredCounts: this.hoveredCounts,\r\n })\r\n },\r\n handleLineMouseOut() {\r\n this.isHoveringEvent = false\r\n this.hoveredCounts = []\r\n this.$emit(\"event-mouseout\")\r\n },\r\n handleBarMouseOver(\r\n _event: MouseEvent,\r\n eventData: TimelineEvent,\r\n eventType: string\r\n ) {\r\n this.hoveredEvent = eventData\r\n this.hoveredEventType = eventType\r\n this.isHoveringEvent = true\r\n this.$emit(\"event-mouseover\", { eventData, eventType })\r\n },\r\n handleBarMouseOut() {\r\n this.isHoveringEvent = false\r\n this.hoveredEvent = null as unknown as TimelineEvent\r\n this.$emit(\"event-mouseout\")\r\n },\r\n handleLabelMouseOver(groupType: string) {\r\n d3.selectAll(`.${classes.lineGraphGroup}-${groupType}`).classed(\r\n `${classes.lineGraphGroup}--highlighted`,\r\n true\r\n )\r\n d3.selectAll(`.${classes.lineGraphGroup}-label`).classed(\r\n `${classes.lineGraphGroup}-label--highlighted`,\r\n true\r\n )\r\n },\r\n handleLabelMouseLeave(groupType: string) {\r\n d3.selectAll(`.${classes.lineGraphGroup}-${groupType}`).classed(\r\n `${classes.lineGraphGroup}--highlighted`,\r\n false\r\n )\r\n d3.selectAll(`.${classes.lineGraphGroup}-label`).classed(\r\n `${classes.lineGraphGroup}-label--highlighted`,\r\n false\r\n )\r\n },\r\n handleZoom(event: D3ZoomEvent<SVGSVGElement, any>) {\r\n const newScale = event.transform.rescaleX(this.initialTimeScale)\r\n this.timeScale.domain(newScale.domain())\r\n this.updateCurrentTimeScaleDensity()\r\n const scale = event.transform.k / this.lastTransform.k\r\n this.transformDiff = {\r\n scale: scale,\r\n translation: event.transform.x - this.lastTransform.x,\r\n }\r\n this.lastTransform = { ...event.transform }\r\n\r\n for (const axisName in this.xAxes) {\r\n this.rescaleAxis(axisName, newScale)\r\n this.translateTicksText(axisName)\r\n }\r\n this.updateBarCharts()\r\n this.updateLineGraphs()\r\n this.updateLineGraphHoverZones()\r\n this.repositionSelectedTimestampCursor()\r\n this.emitVisibleInterval()\r\n this.emitCurtainChange()\r\n },\r\n emitCurtainChange() {\r\n const { startDate, endDate } = this.calculateDateRangeFromCurtains()\r\n this.$emit(\"curtain-range-change\", {\r\n startDate: new Date(startDate).toISOString(),\r\n endDate: new Date(endDate).toISOString(),\r\n })\r\n },\r\n calculateDateRangeFromCurtains() {\r\n const timelineWidth = this.timeline.offsetWidth\r\n const fullRange = this.timeScale.domain()\r\n const totalDuration = fullRange[1].getTime() - fullRange[0].getTime()\r\n\r\n const leftDuration =\r\n ((this.leftCurtainWidth - this.curtainHandleWidth * 2) /\r\n timelineWidth) *\r\n totalDuration\r\n const rightDuration =\r\n ((this.rightCurtainWidth + this.curtainHandleWidth * 2) /\r\n timelineWidth) *\r\n totalDuration\r\n\r\n const startDate = new Date(fullRange[0].getTime() + leftDuration)\r\n const endDate = new Date(fullRange[1].getTime() - rightDuration)\r\n\r\n return { startDate, endDate }\r\n },\r\n updateCurtainsOnResize(timelineWidth: number) {\r\n const { startDate, endDate } = this.calculateDateRangeFromCurtains()\r\n const fullRange = this.timeScale.domain()\r\n const totalDuration = fullRange[1].getTime() - fullRange[0].getTime()\r\n\r\n const leftDuration = startDate.getTime() - fullRange[0].getTime()\r\n const rightDuration = fullRange[1].getTime() - endDate.getTime()\r\n\r\n this.leftCurtainWidth = (leftDuration / totalDuration) * timelineWidth\r\n this.rightCurtainWidth = (rightDuration / totalDuration) * timelineWidth\r\n\r\n this.svg\r\n .select(`.${classes.curtain}--left`)\r\n .attr(\"width\", this.leftCurtainWidth)\r\n this.svg\r\n .select(`.${classes.curtain}--right`)\r\n .attr(\r\n \"x\",\r\n timelineWidth - this.rightCurtainWidth + this.curtainHandleWidth * 2\r\n )\r\n .attr(\"width\", this.rightCurtainWidth)\r\n },\r\n handleDragStart() {\r\n this.isDraggingCurtain = true\r\n },\r\n handleDragEnd() {\r\n this.isDraggingCurtain = false\r\n },\r\n handleLeftDrag(event: d3.D3DragEvent<SVGRectElement, any, any>) {\r\n event.sourceEvent.stopPropagation()\r\n const newWidth = Math.min(\r\n event.x,\r\n this.timeline.offsetWidth - this.rightCurtainWidth\r\n )\r\n this.leftCurtainWidth = Math.max(0, newWidth)\r\n this.svg\r\n .select(`.${classes.curtain}--left`)\r\n .attr(\"width\", this.leftCurtainWidth)\r\n this.emitCurtainChange()\r\n },\r\n handleRightDrag(event: d3.D3DragEvent<SVGRectElement, any, any>) {\r\n event.sourceEvent.stopPropagation()\r\n\r\n const timelineWidth = this.timeline.offsetWidth\r\n const newWidth = Math.min(\r\n this.timeline.offsetWidth - event.x,\r\n this.timeline.offsetWidth - this.leftCurtainWidth\r\n )\r\n const newX = timelineWidth - newWidth\r\n this.rightCurtainWidth = Math.max(0, newWidth)\r\n\r\n this.svg\r\n .select(`.${classes.curtain}--right`)\r\n .attr(\"width\", this.rightCurtainWidth)\r\n .attr(\"x\", newX)\r\n\r\n this.emitCurtainChange()\r\n },\r\n zoomToStartAndEndDates() {\r\n const startDate =\r\n this.startDate ||\r\n this.oldestEvent.timestamp ||\r\n this.oldestEvent.startDate\r\n const endDate =\r\n this.endDate || this.latestEvent.timestamp || this.latestEvent.endDate\r\n\r\n const startTime = this.tzStringToDate(startDate)\r\n const endTime = this.tzStringToDate(endDate)\r\n const timelineWidth = this.timeline.offsetWidth\r\n const newDomain = [startTime, endTime]\r\n const newRange = [0, timelineWidth]\r\n\r\n this.timeScale = d3.scaleTime().domain(newDomain).range(newRange)\r\n this.initialTimeScale = this.timeScale.copy()\r\n\r\n this.updateCurrentTimeScaleDensity()\r\n for (const axisName in this.xAxes) {\r\n this.rescaleAxis(axisName, this.timeScale)\r\n this.translateTicksText(axisName)\r\n }\r\n this.updateBarCharts()\r\n this.updateLineGraphs()\r\n this.updateLineGraphHoverZones()\r\n this.repositionSelectedTimestampCursor()\r\n },\r\n rescaleAxis(axisName: string, newScale: d3.ScaleTime<any, any, unknown>) {\r\n const axis: Axis<Date> = this.xAxes[axisName as TimelineAxis]\r\n const ticksConfig = this.getAxisTicksConfig(\r\n this.xAxesConfig[axisName as TimelineAxis]\r\n )\r\n axis\r\n .scale(newScale)\r\n .ticks(ticksConfig.interval)\r\n .tickFormat(ticksConfig.formatFn)\r\n .tickSizeOuter(0)\r\n this.svg.select<SVGGElement>(`.${classes.xAxis}-${axisName}`).call(axis)\r\n },\r\n translateTicksText(axisName: string) {\r\n this.svg\r\n .select<SVGGElement>(`.${classes.xAxis}-${axisName}`)\r\n .selectAll(\".tick text\")\r\n .each(function () {\r\n let textElement = d3.select(this as SVGTextElement)\r\n let textBBox = (textElement.node() as SVGGraphicsElement).getBBox()\r\n textElement\r\n .attr(\"x\", textBBox.height / 2)\r\n .attr(\"y\", 0)\r\n .style(\"text-anchor\", \"start\")\r\n })\r\n },\r\n updateBarCharts() {\r\n const rectsSelector = `.${classes.eventGroup} > rect.${classes.eventRect}`\r\n this.svg\r\n .selectAll<SVGRectElement, TimelineEvent>(rectsSelector)\r\n .attr(\"x\", this.getEventRectX)\r\n .attr(\"width\", this.getEventRectWidth)\r\n .attr(\"height\", this.barChartHeight)\r\n },\r\n updateLineGraphs() {\r\n Object.entries(this.lineGraphGroups).forEach(([type]) => {\r\n const area = d3\r\n .area<TimelineCountEvent>()\r\n .x((d) => this.timeScale(this.tzStringToDate(d.timestamp)))\r\n .y0(this.timelineHeight)\r\n .y1((d) => this.yScale(d.count))\r\n .curve(d3.curveMonotoneX)\r\n\r\n this.svg\r\n .selectAll<SVGPathElement, TimelineCountEvent[]>(\r\n `.${classes.lineGraphPath}-${type}`\r\n )\r\n .attr(\"d\", (d) => area(d))\r\n })\r\n },\r\n updateLineGraphHoverZones() {\r\n Object.keys(this.lineGraphGroups).forEach((type) => {\r\n const that = this\r\n this.svg\r\n .selectAll<SVGCircleElement, TimelineCountEvent>(\r\n `.${classes.lineGraphDot}-${type}`\r\n )\r\n .each(function (d) {\r\n d3.select(this)\r\n .attr(\"cx\", that.timeScale(that.tzStringToDate(d.timestamp)))\r\n .attr(\"cy\", that.yScale(d.count))\r\n })\r\n\r\n this.svg\r\n .selectAll<SVGRectElement, TimelineCountEvent>(\r\n `.${classes.lineGraphHoverZone}-${type}`\r\n )\r\n .each(function (d) {\r\n const x =\r\n that.timeScale(that.tzStringToDate(d.timestamp).getTime()) - 15\r\n d3.select(this)\r\n .attr(\"x\", x)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", 30)\r\n .attr(\"height\", that.lineGraphChartHeight)\r\n })\r\n })\r\n },\r\n getEventRectX(d: TimelineEvent) {\r\n return this.timeScale(this.tzStringToDate(d.startDate || d.timestamp))\r\n },\r\n getEventRectWidth(d: TimelineEvent) {\r\n if (!d) {\r\n return 0\r\n }\r\n if (d.startDate && d.endDate) {\r\n const startTimestamp = new Date(d.startDate)\r\n const endTimestamp = new Date(d.endDate)\r\n const width =\r\n this.timeScale(endTimestamp) - this.timeScale(startTimestamp)\r\n\r\n return Math.max(width, this.rectMinWidth)\r\n } else {\r\n const oneSecondWidth = 1 / (this.currentTimeScaleDensity * 3600)\r\n\r\n return Math.max(oneSecondWidth, this.rectMinWidth)\r\n }\r\n },\r\n initCurtains() {\r\n if (!this.curtains) {\r\n return\r\n }\r\n\r\n const timelineWidth = this.timeline.offsetWidth\r\n const timelineHeight = this.timelineHeight\r\n\r\n this.svg\r\n .append(\"rect\")\r\n .classed(`${classes.curtain} ${classes.curtain}--left`, true)\r\n .attr(\"width\", this.leftCurtainWidth)\r\n .attr(\"height\", timelineHeight + this.curtainHandleWidth * 2)\r\n .attr(\"y\", -this.curtainHandleWidth)\r\n .attr(\"x\", -this.curtainHandleWidth)\r\n .attr(\"fill\", \"rgba(0, 0, 0, 0.5)\")\r\n .on(\"mouseenter\", () => (this.isHoveringCurtain = true))\r\n .on(\"mouseleave\", () => (this.isHoveringCurtain = false))\r\n .call(\r\n d3\r\n .drag<SVGRectElement, any, any>()\r\n .on(\"start\", this.handleDragStart)\r\n .on(\"drag\", this.handleLeftDrag)\r\n .on(\"end\", this.handleDragEnd)\r\n )\r\n\r\n this.svg\r\n .append(\"rect\")\r\n .classed(`${classes.curtain} ${classes.curtain}--right`, true)\r\n .attr(\r\n \"x\",\r\n timelineWidth - this.rightCurtainWidth + this.curtainHandleWidth * 2\r\n )\r\n .attr(\"y\", -this.curtainHandleWidth)\r\n .attr(\"width\", this.rightCurtainWidth + this.curtainHandleWidth * 2)\r\n .attr(\"height\", timelineHeight + this.curtainHandleWidth * 2)\r\n .attr(\"fill\", \"rgba(0, 0, 0, 0.5)\")\r\n .on(\"mouseenter\", () => (this.isHoveringCurtain = true))\r\n .on(\"mouseleave\", () => (this.isHoveringCurtain = false))\r\n .call(\r\n d3\r\n .drag<SVGRectElement, any, any>()\r\n .on(\"start\", this.handleDragStart)\r\n .on(\"drag\", this.handleRightDrag)\r\n .on(\"end\", this.handleDragEnd)\r\n )\r\n },\r\n drawEventsGroups() {\r\n this.svg.selectAll(`g.${classes.eventGroup}`).remove()\r\n\r\n this.drawLineGraphEventsGroups()\r\n this.drawBarEventsGroups()\r\n },\r\n drawLineGraphEventsGroups() {\r\n const yOffset = this.combinedXAxesHeight\r\n const eventsGroups = this.normalizeEvents\r\n ? this.normalizedLineGraphGroups\r\n : this.lineGraphGroups\r\n\r\n Object.entries(eventsGroups).forEach(([type, eventsGroup]) => {\r\n const gElement = this.svg\r\n .append(\"g\")\r\n .classed(\r\n `${classes.lineGraphGroup} ${classes.lineGraphGroup}-${type}`,\r\n true\r\n )\r\n .attr(\"transform\", `translate(0,${yOffset})`)\r\n const { color, events } = eventsGroup\r\n\r\n this.drawLineGraph({\r\n events,\r\n gElement,\r\n color,\r\n type,\r\n })\r\n this.drawLineGraphHoverZones({\r\n events: events as TimelineCountEvent[],\r\n gElement,\r\n color,\r\n type,\r\n })\r\n })\r\n\r\n Object.entries(this.lineGraphGroups).forEach(\r\n ([type, eventsGroup], index) => {\r\n const { color, isLoading, label } = eventsGroup\r\n const labelYPosition =\r\n this.lineGraphChartHeight - this.barChartHeight * (index + 1)\r\n const loadingIndicatorYPosition =\r\n yOffset + this.lineGraphChartHeight - this.barChartHeight\r\n const labelsGElement = this.svg\r\n .append(\"g\")\r\n .classed(`${classes.lineGraphGroup}-label`, true)\r\n .attr(\"transform\", `translate(0,${yOffset})`)\r\n .on(\"mouseover\", () => this.handleLabelMouseOver(type))\r\n .on(\"mouseleave\", () => this.handleLabelMouseLeave(type))\r\n\r\n this.drawProgressIndicator({\r\n type,\r\n color,\r\n isLoading,\r\n yPosition: loadingIndicatorYPosition,\r\n })\r\n this.drawTextLabel({\r\n color,\r\n label,\r\n yPosition: labelYPosition,\r\n gElement: labelsGElement,\r\n })\r\n }\r\n )\r\n },\r\n drawLineGraph({\r\n events,\r\n gElement,\r\n color,\r\n type,\r\n }: {\r\n events: TimelineEvent[]\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n color: string\r\n type: string\r\n }) {\r\n const area = d3\r\n .area<TimelineCountEvent>()\r\n .x((d) => this.timeScale(this.tzStringToDate(d.timestamp)))\r\n .y0(this.timelineHeight)\r\n .y1((d) => this.yScale(d.count))\r\n .curve(d3.curveMonotoneX)\r\n\r\n gElement\r\n .append(\"path\")\r\n .datum(events as TimelineCountEvent[])\r\n .classed(`${classes.lineGraphPath}-${type}`, true)\r\n .attr(\"fill\", `url(#${defs.areaGradient}-${type})`)\r\n .attr(\"stroke\", color)\r\n .attr(\"stroke-linejoin\", \"round\")\r\n .attr(\"stroke-linecap\", \"round\")\r\n .attr(\"stroke-width\", 1)\r\n .attr(\"d\", (d) => area(d))\r\n },\r\n drawLineGraphHoverZones({\r\n events,\r\n gElement,\r\n color,\r\n type,\r\n }: {\r\n events: TimelineCountEvent[]\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n color: string\r\n type: string\r\n }) {\r\n events.forEach((event: TimelineCountEvent) => {\r\n const timestamp = `${event.timestamp}`\r\n this.countsByTimestamp[timestamp] = {\r\n ...(this.countsByTimestamp[timestamp] || {}),\r\n [type]: event.count,\r\n }\r\n\r\n const circle = gElement\r\n .append(\"circle\")\r\n .classed(\r\n `${classes.lineGraphDot} ${classes.lineGraphDot}-${type}`,\r\n true\r\n )\r\n .attr(\"cx\", this.timeScale(this.tzStringToDate(event.timestamp)))\r\n .attr(\"cy\", this.yScale(event.count))\r\n .attr(\"r\", 1.5)\r\n .attr(\"fill\", color)\r\n .attr(\"stroke-width\", 0)\r\n .datum(event)\r\n\r\n this.dotsByTimestamp[timestamp] = [\r\n ...(this.dotsByTimestamp[timestamp] || []),\r\n circle,\r\n ]\r\n\r\n gElement\r\n .append(\"rect\")\r\n .classed(`${classes.lineGraphHoverZone}-${type}`, true)\r\n .attr(\"x\", this.timeScale(this.tzStringToDate(event.timestamp)) - 15)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", 30)\r\n .attr(\"height\", this.lineGraphChartHeight)\r\n .attr(\"fill\", \"transparent\")\r\n .datum(event)\r\n .on(\"mouseover\", (e) => {\r\n this.handleLineMouseOver(e, event, type)\r\n this.dotsByTimestamp[timestamp].forEach((d) =>\r\n d.classed(`${classes.lineGraphDot}--active`, true)\r\n )\r\n })\r\n .on(\"mouseout\", () => {\r\n this.handleLineMouseOut()\r\n this.dotsByTimestamp[timestamp].forEach((d) =>\r\n d.classed(`${classes.lineGraphDot}--active`, false)\r\n )\r\n })\r\n })\r\n },\r\n drawBarEventsGroups() {\r\n Object.entries(this.barGroups).forEach(([type, eventsGroup], index) => {\r\n const { color, label, events, isLoading } =\r\n eventsGroup as TimelineEventsGroup\r\n const padding = index === 0 ? 0 : this.eventGroupPadding\r\n const yOffset = this.hasLineGraphChart ? this.lineGraphChartHeight : 0\r\n const yPosition =\r\n index * (this.barChartHeight + padding) +\r\n this.combinedXAxesHeight +\r\n yOffset\r\n\r\n this.drawProgressIndicator({\r\n yPosition,\r\n type,\r\n color,\r\n isLoading,\r\n })\r\n\r\n const gElement = this.svg\r\n .append(\"g\")\r\n .attr(\"data-color\", color)\r\n .classed(classes.eventGroup, true)\r\n .classed(`${classes.eventGroup}-${type}`, true)\r\n\r\n this.drawBackground({\r\n color,\r\n gElement,\r\n yPosition,\r\n })\r\n this.drawBars({\r\n events,\r\n color,\r\n gElement,\r\n yPosition,\r\n type,\r\n })\r\n this.drawTextLabel({\r\n color,\r\n label,\r\n gElement,\r\n yPosition,\r\n })\r\n })\r\n },\r\n drawProgressIndicator({\r\n yPosition,\r\n type,\r\n isLoading,\r\n }: {\r\n yPosition: number\r\n type: string\r\n color: string\r\n isLoading: Boolean | undefined\r\n }) {\r\n const rect = this.svg\r\n .append(\"rect\")\r\n .classed(\r\n `${classes.loadingIndicator} ${classes.loadingIndicator}-${type}`,\r\n true\r\n )\r\n .attr(\"x\", 0)\r\n .attr(\"y\", yPosition)\r\n .attr(\"width\", this.timeline.offsetWidth / 3)\r\n .attr(\"height\", this.barChartHeight)\r\n .attr(\"fill\", `url(#${defs.loadingGradient}-${type})`)\r\n\r\n rect.style(\"visibility\", isLoading ? \"visible\" : \"hidden\")\r\n },\r\n drawBackground({\r\n color,\r\n yPosition,\r\n gElement,\r\n }: {\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n yPosition: number\r\n color: string\r\n }) {\r\n gElement\r\n .append(\"rect\")\r\n .attr(\"class\", classes.eventGroupBg)\r\n .attr(\"x\", 0)\r\n .attr(\"y\", yPosition)\r\n .attr(\"width\", this.timeline.offsetWidth)\r\n .attr(\"height\", this.barChartHeight)\r\n .attr(\"fill\", d3.color(color)!.toString())\r\n .style(\"opacity\", 0.1)\r\n },\r\n drawBars({\r\n events,\r\n gElement,\r\n yPosition,\r\n color,\r\n type,\r\n }: {\r\n events: TimelineEvent[]\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n yPosition: number\r\n color: string\r\n type: string\r\n }) {\r\n const that = this\r\n gElement\r\n .selectAll(classes.eventRect)\r\n .data(events)\r\n .enter()\r\n .append(\"rect\")\r\n .classed(classes.eventRect, true)\r\n .attr(\"x\", this.getEventRectX)\r\n .attr(\"y\", yPosition)\r\n .attr(\"ry\", 1.5)\r\n .attr(\"rx\", 1.5)\r\n .attr(\"width\", this.getEventRectWidth)\r\n .attr(\"height\", this.barChartHeight)\r\n .attr(\"stroke-width\", 5)\r\n .attr(\"cursor\", \"pointer\")\r\n .attr(\"stroke\", \"#0000\")\r\n .style(\"fill\", (event: TimelineEvent) => event.color || color)\r\n .on(\"mouseover\", function (event, eventData) {\r\n const rect = d3.select(this)\r\n rect.classed(`${classes.eventRect}--hovered`, true)\r\n that.handleBarMouseOver(event, eventData, type)\r\n })\r\n .on(\"mouseout\", function () {\r\n const rect = d3.select(this)\r\n rect.classed(`${classes.eventRect}--hovered`, false)\r\n that.handleBarMouseOut()\r\n })\r\n },\r\n drawTextLabel({\r\n gElement,\r\n yPosition,\r\n color,\r\n label,\r\n }: {\r\n gElement: d3.Selection<SVGGElement, any, any, any>\r\n yPosition: number\r\n color: string\r\n label: string\r\n }) {\r\n if (!this.showLabels) {\r\n return\r\n }\r\n\r\n const bg = {\r\n x: -5,\r\n y: yPosition,\r\n w: this.labelRectWidth + 5,\r\n h: this.barChartHeight,\r\n radius: 3,\r\n }\r\n\r\n // Label rect background\r\n gElement\r\n .append(\"rect\")\r\n .attr(\"class\", classes.labelBg)\r\n .attr(\"data-color\", color)\r\n .attr(\"x\", bg.x)\r\n .attr(\"y\", bg.y)\r\n .attr(\"width\", bg.w)\r\n .attr(\"height\", bg.h)\r\n .attr(\"rx\", bg.radius)\r\n .attr(\"ry\", bg.radius)\r\n .style(\"fill\", this.dark ? \"#131a29\" : \"white\")\r\n\r\n // Label rect fill\r\n gElement\r\n .append(\"rect\")\r\n .attr(\"class\", classes.labelBgFill)\r\n .attr(\"data-color\", color)\r\n .attr(\"x\", bg.x)\r\n .attr(\"y\", bg.y)\r\n .attr(\"width\", bg.w)\r\n .attr(\"height\", bg.h)\r\n .attr(\"rx\", bg.radius)\r\n .attr(\"ry\", bg.radius)\r\n .style(\"fill\", this.getLabelBackgroundColor(color))\r\n .style(\"stroke\", this.getTextFillColor(color))\r\n .style(\"stroke-width\", 0.25)\r\n\r\n // Label text\r\n gElement\r\n .append(\"text\")\r\n .attr(\"class\", classes.labelText)\r\n .attr(\"data-color\", color)\r\n .attr(\"x\", 5)\r\n .attr(\"y\", yPosition + this.barChartHeight / 2)\r\n .attr(\"dy\", \"0.35em\")\r\n .style(\"text-anchor\", \"start\")\r\n .style(\"font-size\", \"12px\")\r\n .style(\"font-weight\", 500)\r\n .style(\"stroke-linejoin\", \"round\")\r\n .style(\"paint-order\", \"stroke\")\r\n .style(\"fill\", this.getTextFillColor(color))\r\n .text(label)\r\n },\r\n getTextFillColor(baseColor: string) {\r\n return (\r\n this.dark\r\n ? d3.color(baseColor)?.brighter(1.5)\r\n : d3.color(baseColor)?.darker(2)\r\n )!.toString()\r\n },\r\n getLabelBackgroundColor(baseColor: string) {\r\n let color = d3.color(baseColor)\r\n color!.opacity = this.dark ? 0.2 : 0.5\r\n\r\n return color!.toString()\r\n },\r\n\r\n tzStringToDate(timestamp: Timestamp): Date {\r\n return moment(timestamp).add(this.utcOffset, \"minutes\").toDate()\r\n },\r\n dateToTzString(date: Date): string {\r\n const userUtcOffset = new Date(date).getTimezoneOffset()\r\n\r\n return moment(date)\r\n .add(userUtcOffset, \"minutes\")\r\n .utcOffset(this.utcOffset, true)\r\n .format()\r\n },\r\n getCurrentTimeBounds() {\r\n const bounds = this.timeScale.domain() as unknown as [string, string]\r\n\r\n return { startDate: bounds[0], endDate: bounds[1] }\r\n },\r\n getFormattedTimestamp(timestamp: Timestamp): string {\r\n return moment.parseZone(timestamp).format(\"YYYY-MM-DDTHH:mm:ss\")\r\n },\r\n fillTimeGaps(events: TimelineEvent[]) {\r\n if (events.length <= 1) {\r\n return events\r\n }\r\n\r\n const toDate = (t: string) => new Date(t)\r\n const toMilliseconds = (t: string) => toDate(t).getTime()\r\n const addInterval = (date: Date, interval: number) =>\r\n new Date(date.getTime() + interval)\r\n\r\n const minInterval = events\r\n .map((event: TimelineEvent, index: number) =>\r\n index === 0\r\n ? Infinity\r\n : toMilliseconds(event.timestamp) -\r\n toMilliseconds(events[index - 1].timestamp)\r\n )\r\n .reduce(\r\n (min: number, interval: number) => Math.min(min, interval),\r\n Infinity\r\n )\r\n\r\n let filledEvents = events.flatMap(\r\n (event: TimelineEvent, index: number) => {\r\n const nextEvent = events[index + 1]\r\n\r\n if (!nextEvent) {\r\n if (this.flattenLineGraphEnds) {\r\n const nextTimestamp = addInterval(\r\n toDate(event.timestamp),\r\n minInterval\r\n )\r\n\r\n return [\r\n event,\r\n { timestamp: nextTimestamp.toISOString(), count: 0 },\r\n ]\r\n } else {\r\n return [event]\r\n }\r\n }\r\n\r\n const nextTimestamp = toDate(event.timestamp)\r\n const endTimestamp = toDate(nextEvent.timestamp)\r\n\r\n if (endTimestamp.getTime() - nextTimestamp.getTime() > minInterval) {\r\n const fillerBeforeNext = addInterval(endTimestamp, -minInterval)\r\n const fillerAfterCurrent = addInterval(nextTimestamp, minInterval)\r\n\r\n return [\r\n event,\r\n { timestamp: fillerAfterCurrent.toISOString(), count: 0 },\r\n { timestamp: fillerBeforeNext.toISOString(), count: 0 },\r\n nextEvent,\r\n ]\r\n } else {\r\n return [event, nextEvent]\r\n }\r\n }\r\n )\r\n\r\n if (this.flattenLineGraphEnds) {\r\n const firstTimestamp = addInterval(\r\n toDate(events[0].timestamp),\r\n -minInterval\r\n )\r\n filledEvents = [\r\n { timestamp: firstTimestamp.toISOString(), count: 0 },\r\n ...filledEvents,\r\n ]\r\n }\r\n\r\n return filledEvents\r\n },\r\n getNormalizedEvents(events: TimelineEvent[]): TimelineEvent[] {\r\n return this.placeholderLineChartGroup.map((defaultEvent) => {\r\n const actualEvent = events.find(\r\n (event) => event.timestamp === defaultEvent.timestamp\r\n )\r\n\r\n return actualEvent || defaultEvent\r\n })\r\n },\r\n },\r\n})\r\n","\r\nimport { PropType } from \"vue\"\r\n\r\nexport default {\r\n name: \"EVideoEmbed\",\r\n props: {\r\n videoUrl: {\r\n type: String,\r\n required: true,\r\n },\r\n platform: {\r\n type: String as PropType<\"youtube\" | \"vimeo\">,\r\n required: true,\r\n validator: (value: string) => [\"youtube\", \"vimeo\"].includes(value),\r\n },\r\n iframeListeners: {\r\n type: Object as PropType<Partial<HTMLIFrameElement>>,\r\n default: () => ({}),\r\n },\r\n iframeOptions: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n },\r\n computed: {\r\n videoId(): string | undefined {\r\n if (this.platform === \"youtube\") {\r\n const regExp =\r\n // eslint-disable-next-line no-useless-escape\r\n /^.*(?:youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#\\&\\?]*).*/\r\n\r\n const match = this.videoUrl.match(regExp)\r\n\r\n return match && match[1].length === 11 ? match[1] : undefined\r\n } else if (this.platform === \"vimeo\") {\r\n const match = this.videoUrl.match(/vimeo\\.com\\/(\\d+)/)\r\n\r\n return match ? match[1] : undefined\r\n }\r\n\r\n return undefined\r\n },\r\n embedUrl(): string {\r\n if (this.platform === \"youtube\") {\r\n const params = new URLSearchParams({\r\n quality: \"1080p\",\r\n ...this.iframeOptions,\r\n })\r\n\r\n return `https://www.youtube.com/embed/${\r\n this.videoId\r\n }?${params.toString()}`\r\n } else if (this.platform === \"vimeo\" && this.videoId) {\r\n const token = this.videoUrl.split(\"/\").pop()?.split(\"?\")[0]\r\n const params = new URLSearchParams({\r\n h: token || \"\",\r\n quality: \"1080p\",\r\n ...this.iframeOptions,\r\n })\r\n\r\n return `https://player.vimeo.com/video/${\r\n this.videoId\r\n }?${params.toString()}`\r\n }\r\n\r\n return \"\"\r\n },\r\n },\r\n}\r\n","// Components\r\nimport EAvatar from \"@/components/EAvatar.vue\"\r\nimport EBadge from \"@/components/EBadge.vue\"\r\nimport EIcon from \"@/components/EIcon.vue\"\r\nimport ESpinner from \"@/components/ESpinner.vue\"\r\nimport ERow from \"@/components/ERow.vue\"\r\nimport ECol from \"@/components/ECol.vue\"\r\nimport EVideoPlayer from \"@/components/EVideoPlayer.vue\"\r\nimport ETimeline from \"@/components/ETimeline.vue\"\r\nimport EVideoEmbed from \"@/components/EVideoEmbed.vue\"\r\n// Directives\r\nimport { DirectivesMap } from \"@/directives\"\r\n\r\nimport { VueConstructor } from \"vue\"\r\n\r\nexport const components = {\r\n EAvatar,\r\n EBadge,\r\n EIcon,\r\n ESpinner,\r\n ERow,\r\n ECol,\r\n EVideoPlayer,\r\n ETimeline,\r\n EVideoEmbed,\r\n}\r\n\r\nexport default {\r\n install(Vue: VueConstructor) {\r\n // Register components\r\n Object.keys(components).forEach((name) => {\r\n // @ts-ignore\r\n Vue.component(name, components[name])\r\n })\r\n\r\n // Register directives\r\n DirectivesMap.forEach(({ name, definition }) => {\r\n Vue.directive(name, definition)\r\n })\r\n },\r\n}\r\n\r\nexport {\r\n EAvatar,\r\n EBadge,\r\n EIcon,\r\n ESpinner,\r\n ERow,\r\n ECol,\r\n EVideoPlayer,\r\n ETimeline,\r\n EVideoEmbed,\r\n}\r\n\r\nexport * from \"@/constants\"\r\n\r\nexport * from \"@/types\"\r\n\r\nexport * from \"@/utils\"\r\n\r\nexport * from \"@/directives\"\r\n"],"names":["Size","BaseColor","TimelineAxis","_sfc_main$8","Vue","colorClasses","sizeClasses","_sfc_main$7","Badge","exports","negateValue","value","sign","numericFunctions","fn","_default","pluginConfig","plugins","pluginName","x","create","picocolors_browserModule","_export","target","all","name","dim","_picocolors","_interop_require_default","require$$0","obj","alreadyShown","log","type","messages","key","message","input","_log","warn","version","from","to","defaults","sources","source","k","_target_hasOwnProperty","_target_hasOwnProperty1","toPath","path","openBrackets","closedBrackets","flagEnabled","issueFlagNotices","require$$1","featureFlags","config","flag","_config_future","_config_future_flag","_ref","_config_experimental","_config_experimental_flag","_ref1","experimentalFlagsEnabled","changes","s","normalizeConfig","_featureFlags","_interop_require_wildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","desc","_purge_options","content","purge","safelist","blocklist","item","_config_prefix","extract","_config_purge","_config_content","_config_purge1","_config_purge_extract","_config_content1","_config_content_extract","_config_purge2","_config_purge_options","_config_content2","_config_content_options","extractors","defaultExtractor","extensions","extractor","extension","transform","_config_purge_transform","_config_content_transform","transformers","file","isPlainObject","prototype","cloneDeep","child","v","escapeCommas","className","parseColor","formatColor","_colorNames","HEX","SHORT_HEX","VALUE","SEP","ALPHA_SEP","CUSTOM_PROPERTY","RGB","HSL","loose","_match_","_match__toString","hex","_","r","g","b","a","_value_match","match","color","part","mode","alpha","hasAlpha","withAlphaValue","withAlphaVariable","_color","alphaValue","defaultValue","parsed","property","variable","properties","p","splitAtTopLevelOnly","separator","stack","parts","lastPos","isEscaped","idx","char","parseBoxShadowValue","formatBoxShadowValue","_splitAtTopLevelOnly","KEYWORDS","SPACE","LENGTH","shadow","result","seen","shadows","normalize","url","number","percentage","length","lineWidth","image","gradient","position","familyName","genericName","absoluteSize","relativeSize","_parseBoxShadowValue","require$$2","cssFunctions","isCSSFunction","placeholder","placeholderRe","isRoot","fullMatch","characterBefore","normalizeMathOperatorSpacing","vars","g1","lengthUnitsPattern","lineWidths","parsedShadows","parsedShadow","colors","images","gradientTypes","validPositions","positions","fonts","genericNames","absoluteSizes","relativeSizes","backgroundSize","_dataTypes","keywordValues","sizes","size","updateAllClasses","asValue","parseColorFormat","asColor","asLookupValue","typeMap","coerceValue","getMatchingTypes","_escapeCommas","_withAlphaVariable","_negateValue","require$$3","_validateFormalSyntax","require$$4","require$$5","selectors","updateClass","sel","resolveArbitraryValue","modifier","validate","isArbitraryValue","asNegativeValue","lookup","positiveValue","resolved","options","_options_values","splitUtilityModifier","slashIdx","oldValue","opacityValue","unwrapArbitraryModifier","tailwindConfig","_options_values1","_options_values2","_tailwindConfig_theme","_tailwindConfig_theme_opacity","_options_values_color","normalizedColor","guess","supportedTypes","splitAtFirst","delim","types","arbitraryValue","explicitType","matches","rawModifier","modifiersEnabled","utilityModifier","_options_modifiers","_options_modifiers_utilityModifier","configValue","toColorValue","maybeFunction","resolveConfig","_corePluginList","_configurePlugins","_colors","_defaults","_toPath","_normalizeConfig","require$$6","_isPlainObject","require$$7","_cloneDeep","require$$8","_pluginUtils","require$$9","require$$10","_toColorValue","require$$11","isFunction","mergeWith","customizer","merged","configUtils","scale","negativeScale","negativeValue","screens","breakpoints","valueToResolve","args","collectExtends","items","extend","mergedValue","extendValue","mergeThemes","themes","theme","mergeExtensionCustomizer","mergeExtensions","themeValue","resolveThemePath","utils","e","toPaths","pattern","prefix","newPath","resolveFunctionKeys","object","resolvePath","index","val","normalized","extractPluginConfigs","configs","allConfigs","_config_plugins","plugin","_plugin_config","resolveCorePlugins","corePluginConfigs","corePluginConfig","resolvePluginLists","pluginLists","pluginList","_t_theme","_c_plugins","t","c","config_full","getAllConfigs","_configfull","_config_presets","preset","features","experimentals","feature","_resolveConfig","_getAllConfigs","defaultConfigs","resolveConfig_1","colors_1","BrandColors","customColors","TailwindColors.white","TailwindColors.amber","TailwindColors.rose","TailwindColors.cyan","TailwindColors.lime","TailwindColors.sky","CustomColors","TailwindColors.slate","fullConfig","TextSizes","Colors","BadgeSizes","AvatarSizes","IconSizes","BadgeColors","EVENTS","_sfc_main$6","acc","iconClasses","_b","_a","_sfc_main$5","fill","animationDuration","_sfc_main$4","_sfc_main$3","prop","acceptUndefined","n","isFullScreen","makeFullScreen","element","resolve","exitFullScreen","leadingZeroFormatter","VIDEO_PLAYER_EVENTS","formatDuration","time","seconds","minutes","hours","_sfc_main$2","ESpinner","videoOptions","event","which","player","timelineContainer","playerRef","state","currentTime","percent","rect","duration","videoContainer","playPromise","tagName","getFormattedDay","d","day","d3","daySuffix","getFormattedDayNoEndOfMonth","getFormattedHour","getFormattedHourMinute","HH_MM","getFormattedMinuteSecond","getFormattedOverviewMinuteSecond","getFormattedOverviewHour","hour","month","getFormattedDayHourMinute","filterHourDivisibleBy","filterMinutesDivisibleBy","minute","filterMinutesSecondsDivisibleBy","second","Precision","defaultAxesConfig","format","dayOfMonth","daysInMonth","fifthOfMonth","quarterOfTheMonth","halfOfTheMonth","ResizeObserverDirective","el","binding","callback","observer","entries","DirectivesMap","classes","defs","_sfc_main$1","eventsGroup","combinedLabelsHeight","axesCount","barGroupsCount","lineGraphChartHeight","padding","eventsGouprsHeight","_type","group","oldestEvent","latestEvent","allTimestamps","timestamp","cursorX","startDate","endDate","defsSelection","chartType","areaGradient","sampleTimestamp","moment","start","end","i","axisName","axis","flattenedCounts","maxCount","cursor","timeAtPixel0","timeAtPixel1","HOUR","visibleFrom","visibleTo","fromDate","toDate","interval","contentRect","that","bgFill","text","mouseX","date","formattedDateTz","_event","eventData","eventType","entry","count","groupType","newScale","timelineWidth","fullRange","totalDuration","leftDuration","rightDuration","newWidth","newX","startTime","endTime","newDomain","newRange","ticksConfig","textElement","textBBox","rectsSelector","area","startTimestamp","endTimestamp","width","oneSecondWidth","timelineHeight","yOffset","eventsGroups","gElement","events","isLoading","label","labelYPosition","loadingIndicatorYPosition","labelsGElement","circle","yPosition","bg","baseColor","userUtcOffset","bounds","toMilliseconds","addInterval","minInterval","min","filledEvents","nextEvent","nextTimestamp","fillerBeforeNext","fillerAfterCurrent","defaultEvent","_sfc_main","regExp","params","token","components","EAvatar","EBadge","EIcon","ERow","ECol","EVideoPlayer","ETimeline","EVideoEmbed","definition"],"mappings":"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AAS,GAAGG,CAAE,GAAG,EACvB,MAAO,QAAQH,CAAK,QAGhC,+BClCA,OAAO,eAAwBF,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,YACA,YACA,gBACA,gBACA,aACA,WACA,QACA,YACA,SACA,QACA,aACA,kBACA,gBACA,UACA,eACA,aACA,QACA,QACA,SACA,YACA,YACA,UACA,cACA,SACA,YACA,YACA,QACA,WACA,WACA,OACA,aACA,WACA,YACA,cACA,cACA,iBACA,gBACA,kBACA,YACA,SACA,OACA,QACA,YACA,YACA,SACA,cACA,aACA,SACA,iBACA,kBACA,iBACA,eACA,gBACA,oBACA,gBACA,iBACA,aACA,UACA,cACA,cACA,aACA,kBACA,eACA,eACA,sBACA,mBACA,gBACA,WACA,eACA,aACA,eACA,aACA,iBACA,eACA,MACA,QACA,cACA,cACA,cACA,gBACA,YACA,YACA,cACA,WACA,qBACA,iBACA,eACA,UACA,aACA,YACA,eACA,cACA,cACA,cACA,gBACA,kBACA,oBACA,kBACA,qBACA,qBACA,iBACA,uBACA,iBACA,qBACA,mBACA,mBACA,OACA,SACA,cACA,YACA,iBACA,UACA,YACA,aACA,gBACA,aACA,WACA,aACA,gBACA,YACA,qBACA,aACA,gBACA,YACA,cACA,iBACA,sBACA,sBACA,0BACA,sBACA,gBACA,mBACA,qBACA,aACA,cACA,UACA,sBACA,eACA,YACA,iBACA,eACA,eACA,gBACA,eACA,YACA,YACA,cACA,kBACA,kBACA,OACA,aACA,WACA,aACA,YACA,YACA,SACA,WACA,QACA,SACA,eACA,qBACA,mBACA,oBACA,oBACA,iBACA,kBACA,mBACA,gBACA,iBACA,qBACA,kBACA,qBACA,2BACA,aACA,wCCxLJ,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EA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CL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,IAAK,CACD,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACR,EACD,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UA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,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOuG,CACV,CACL,CAAC,EACD,SAASA,EAAaC,EAAW,CAC7B,OAAOA,EAAU,QAAQ,OAAQ,OAAO,CAC5C,2CCXA,OAAO,eAAwBxG,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,OAAO,eAAeA,EAAS,UAAW,CACtC,WAAY,GACZ,IAAK,UAAW,CACZ,OAAOM,CACV,CACL,CAAC,EACD,MAAMA,EAAW,CACb,UAAW,CACP,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,EACA,CACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,MAAO,CACH,IACA,GACA,EACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,EACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,GACA,EACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,SAAU,CACN,EACA,EACA,GACH,EACD,SAAU,CACN,EACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,EACA,IACA,CACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,EACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,EACH,EACD,WAAY,CACR,IACA,IACA,CACH,EACD,WAAY,CACR,IACA,GACA,GACH,EACD,QAAS,CACL,IACA,EACA,CACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,GACA,GACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,GACA,GACA,EACH,EACD,cAAe,CACX,EACA,IACA,GACH,EACD,WAAY,CACR,IACA,EACA,GACH,EACD,SAAU,CACN,IACA,GACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,WAAY,CACR,GACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,YAAa,CACT,GACA,IACA,EACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,MAAO,CACH,EACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,EACH,EACD,OAAQ,CACJ,GACA,EACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,CACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,qBAAsB,CAClB,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,cAAe,CACX,GACA,IACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,eAAgB,CACZ,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,CACH,EACD,UAAW,CACP,GACA,IACA,EACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,EACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,CACH,EACD,iBAAkB,CACd,IACA,IACA,GACH,EACD,WAAY,CACR,EACA,EACA,GACH,EACD,aAAc,CACV,IACA,GACA,GACH,EACD,aAAc,CACV,IACA,IACA,GACH,EACD,eAAgB,CACZ,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,IACA,GACH,EACD,kBAAmB,CACf,EACA,IACA,GACH,EACD,gBAAiB,CACb,GACA,IACA,GACH,EACD,gBAAiB,CACb,IACA,GACA,GACH,EACD,aAAc,CACV,GACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,YAAa,CACT,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,EACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,IACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,UAAW,CACP,IACA,GACA,CACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,cAAe,CACX,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,EACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,EACA,GACH,EACD,cAAe,CACX,IACA,GACA,GACH,EACD,IAAK,CACD,IACA,EACA,CACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,YAAa,CACT,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,EACH,EACD,SAAU,CACN,GACA,IACA,EACH,EACD,SAAU,CACN,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,GACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,UAAW,CACP,IACA,IACA,GACH,EACD,KAAM,CACF,IACA,IACA,GACH,EACD,YAAa,CACT,EACA,IACA,GACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,IAAK,CACD,IACA,IACA,GACH,EACD,KAAM,CACF,EACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,GACA,EACH,EACD,UAAW,CACP,GACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,MAAO,CACH,IACA,IACA,GACH,EACD,WAAY,CACR,IACA,IACA,GACH,EACD,OAAQ,CACJ,IACA,IACA,CACH,EACD,YAAa,CACT,IACA,IACA,EACH,qBC7uBL,OAAO,eAAwBN,EAAA,aAAc,CACzC,MAAO,EACX,CAAC,EACD,SAASa,EAAQ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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}