@quidgest/ui 0.5.19 → 0.6.0

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":"ui.esm.js","sources":["../src/utils/isEmpty.ts","../src/utils/isObject.ts","../src/utils/merge.ts","../src/composables/defaults.ts","../src/templates/theme.ts","../src/utils/color.ts","../src/composables/theme.ts","../src/framework.ts","../src/components/QSpinnerLoader/QSpinnerLoader.vue?vue&type=script&setup=true&lang.ts","../src/utils/setupPropsProxy.ts","../src/components/QSpinnerLoader/index.ts","../src/components/QButton/QButton.vue?vue&type=script&setup=true&lang.ts","../src/components/QButton/index.ts","../src/components/QButtonGroup/QButtonGroup.vue?vue&type=script&setup=true&lang.ts","../src/components/QButtonGroup/index.ts","../src/components/QButtonToggle/QButtonToggle.vue?vue&type=script&setup=true&lang.ts","../src/components/QButtonToggle/index.ts","../src/components/QIcon/QIcon.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/QIconFont.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/QIconImg.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/InlineSvg.js","../src/components/QIcon/QIconSvg.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/index.ts","../src/components/QInput/QInput.vue?vue&type=script&setup=true&lang.ts","../src/components/QInput/index.ts","../src/components/QLineLoader/index.ts","../src/components/QList/QList.vue?vue&type=script&setup=true&lang.ts","../src/components/QList/QListItem.vue?vue&type=script&setup=true&lang.ts","../src/composables/uid.ts","../src/components/QList/QListItemGroup.vue?vue&type=script&setup=true&lang.ts","../src/components/QList/index.ts","../src/composables/overlay.ts","../src/utils/getElement.ts","../src/components/QOverlay/QOverlay.vue?vue&type=script&setup=true&lang.ts","../src/components/QOverlay/index.ts","../src/components/QPopover/QPopover.vue?vue&type=script&setup=true&lang.ts","../src/components/QPopover/index.ts","../src/composables/attrs.ts","../src/directives/click-outside/index.ts","../src/components/QSelect/QSelect.vue?vue&type=script&setup=true&lang.ts","../src/components/QSelect/index.ts","../src/components/QTooltip/QTooltip.vue?vue&type=script&setup=true&lang.ts","../src/components/QTooltip/index.ts"],"sourcesContent":["export function isEmpty(object: unknown): boolean {\n\t// Check if the object is null or undefined\n\tif (object === null || object === undefined) {\n\t\treturn true\n\t}\n\n\t// Check if the object is a string or an array and if it is empty\n\tif (typeof object === 'string' || Array.isArray(object)) {\n\t\treturn object.length === 0\n\t}\n\n\t// Check if the object is an object and if it has no own properties\n\tif (typeof object === 'object') {\n\t\treturn Object.keys(object as Record<string, unknown>).length === 0\n\t}\n\n\t// If the object is not null, a string, an array, or an object, it's not empty\n\treturn false\n}\n","export function isObject(obj: unknown): obj is object {\n\treturn obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n","import { isObject } from './isObject'\n\nexport function merge(source: Record<string, unknown> = {}, target: Record<string, unknown> = {}) {\n\tconst out: Record<string, unknown> = {}\n\n\tfor (const key in source) {\n\t\tout[key] = source[key]\n\t}\n\n\tfor (const key in target) {\n\t\tconst sourceProperty = source[key]\n\t\tconst targetProperty = target[key]\n\n\t\t// Only continue deep merging if\n\t\t// both properties are objects\n\t\tif (isObject(sourceProperty) && isObject(targetProperty)) {\n\t\t\tout[key] = merge(\n\t\t\t\tsourceProperty as Record<string, unknown>,\n\t\t\t\ttargetProperty as Record<string, unknown>\n\t\t\t)\n\n\t\t\tcontinue\n\t\t}\n\n\t\tout[key] = targetProperty\n\t}\n\n\treturn out\n}\n","// Utils\nimport { isEmpty } from '@/utils/isEmpty'\nimport { merge } from '@/utils/merge'\nimport { ComputedRef, computed, getCurrentInstance, inject, provide, ref } from 'vue'\n\nexport const DEFAULTS_SYMBOL = 'q-defaults'\n\nexport type Defaults = Record<string | symbol, ComponentDefaults>\n\nexport type ComponentDefaults = Record<string | symbol, unknown>\n\nexport function useDefaults(): ComputedRef<ComponentDefaults | undefined> {\n\tconst vm = getCurrentInstance()\n\n\tif (!vm)\n\t\tthrow new Error('[Quidgest UI] useDefaults must be called from inside a setup function')\n\n\tconst component = vm.type.name ?? vm.type.__name\n\n\tif (!component) throw new Error('[Quidgest UI] Could not determine component name')\n\n\tconst defaults = injectDefaults()\n\treturn computed(() => defaults.value?.[component])\n}\n\n/**\n * Function to provide or update default values using the Vue.js `provide` function.\n * It takes a set of default values, merges them with the existing defaults (if any),\n * and then provides the merged defaults using the specified symbol.\n *\n * @param {Defaults} defaults - The default values to be provided or updated.\n */\nexport function provideDefaults(defaults: Defaults): void {\n\tif (isEmpty(defaults)) return\n\n\tconst currentDefaults = injectDefaults()\n\tconst providedDefaults = ref(defaults)\n\n\tconst newDefaults = computed(() => {\n\t\tif (isEmpty(providedDefaults.value)) return currentDefaults.value\n\t\treturn merge(currentDefaults.value, providedDefaults.value)\n\t})\n\n\tprovide(DEFAULTS_SYMBOL, newDefaults)\n}\n\n/**\n * Function to inject default values using the Vue.js `inject` function.\n * It retrieves the default values from the specified symbol and ensures\n * that the returned value is of type `ComputedRef<Defaults>`.\n *\n * @throws {Error} Throws an error if the defaults instance is not found.\n *\n * @returns {ComputedRef<Defaults>} A computed reference to the default values.\n */\nexport function injectDefaults(): ComputedRef<Defaults> {\n\tconst defaults = inject(DEFAULTS_SYMBOL, undefined) as ComputedRef<Defaults> | undefined\n\n\tif (!defaults) throw new Error('[Quidgest UI] Could not find defaults instance')\n\n\treturn defaults\n}\n","import { ColorScheme } from '@/utils/color'\n\nexport const defaultLightColorScheme: ColorScheme = {\n\tprimary: '#00a1f8',\n\tprimaryLight: '#e5f6ff',\n\tprimaryDark: '#0079ba',\n\tsecondary: '#11294d',\n\tsecondaryLight: '#707f94',\n\tsecondaryDark: '#040a13',\n\thighlight: '#DF640A',\n\tbackground: '#fff',\n\tcontainer: '#fff',\n\tinfo: '#17a2b8',\n\tinfoLight: '#bceff7',\n\tinfoDark: '#11798a',\n\tsuccess: '#28a745',\n\tsuccessLight: '#c2f0cd',\n\tsuccessDark: '#1e7d34',\n\twarning: '#ffa900',\n\twarningLight: '#ffeabf',\n\twarningDark: '#bf7f00',\n\tdanger: '#b71c1c',\n\tdangerLight: '#f5bebe',\n\tdangerDark: '#891515',\n\tonBackground: '#1e2436',\n\tonPrimary: '#fff',\n\tonSecondary: '#fff',\n\tonHighlight: '#fff',\n\tonSuccess: '#fff',\n\tonWarning: '#fff',\n\tonDanger: '#fff',\n\tonInfo: '#fff'\n}\n\nexport const defaultDarkColorScheme: ColorScheme = {\n\tprimary: '#018BD2',\n\tprimaryLight: '#cce7f6',\n\tprimaryDark: '#006fac',\n\tsecondary: '#11294d',\n\tsecondaryLight: '#707f94',\n\tsecondaryDark: '#040a13',\n\thighlight: '#FFAD54',\n\tbackground: '#1e2436',\n\tcontainer: '#21323d',\n\tinfo: '#3DB6D1',\n\tinfoLight: '#5aa2bc',\n\tinfoDark: '#0c616a',\n\tsuccess: '#00C781',\n\tsuccessLight: '#6bae78',\n\tsuccessDark: '#0f3b16',\n\twarning: '#FFD860',\n\twarningLight: '#ffd07a',\n\twarningDark: '#cc8000',\n\tdanger: '#FC4B6C',\n\tdangerLight: '#FF7A88',\n\tdangerDark: '#B21929',\n\tonBackground: '#fff',\n\tonPrimary: '#fff',\n\tonSecondary: '#fff',\n\tonHighlight: '#fff',\n\tonSuccess: '#fff',\n\tonWarning: '#fff',\n\tonDanger: '#fff',\n\tonInfo: '#fff'\n}\n","export type ColorScheme = {\n\t// Brand\n\tprimary: string\n\tprimaryLight: string\n\tprimaryDark: string\n\tonPrimary: string\n\n\tsecondary: string\n\tsecondaryLight: string\n\tsecondaryDark: string\n\tonSecondary: string\n\n\thighlight: string\n\tonHighlight: string\n\n\t// Surface\n\tbackground: string\n\tonBackground: string\n\n\tcontainer: string\n\n\t// Semantic\n\tinfo: string\n\tinfoLight: string\n\tinfoDark: string\n\tonInfo: string\n\n\tsuccess: string\n\tsuccessLight: string\n\tsuccessDark: string\n\tonSuccess: string\n\n\twarning: string\n\twarningLight: string\n\twarningDark: string\n\tonWarning: string\n\n\tdanger: string\n\tdangerLight: string\n\tdangerDark: string\n\tonDanger: string\n}\n\n/**\n * Represents a color in RGB space.\n */\nexport type RGB = {\n\tr: number\n\tg: number\n\tb: number\n}\n\n/**\n * Represents a color in HSL space.\n */\nexport type HSL = {\n\th: number\n\ts: number\n\tl: number\n}\n\n/**\n * Parses a color from a hex string.\n * @param color A hex string representing the color, e.g., \"#aabbcc\".\n * @returns A `RGB` object representing the parsed color.\n */\nexport function parseColor(color: string): RGB {\n\tif (!/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/.test(color)) {\n\t\tthrow new Error('Invalid color format')\n\t}\n\n\t// Support short format (e.g., #abc)\n\tif (color.length === 4) {\n\t\tcolor = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]\n\t}\n\n\tconst r = parseInt(color.slice(1, 3), 16)\n\tconst g = parseInt(color.slice(3, 5), 16)\n\tconst b = parseInt(color.slice(5, 7), 16)\n\n\treturn { r, g, b }\n}\n\n/**\n * Lightens a color by a specified amount.\n * @param rgb The color to lighten.\n * @param amount The amount to lighten the color by, in the range [0, 100].\n * @returns The lightened color.\n */\nexport function lighten(rgb: RGB, amount: number): RGB {\n\t// Check if the amount is within the required range\n\tif (amount < 0 || amount > 100) {\n\t\tthrow new Error('Amount must be in the range [0, 100]')\n\t} else if (amount === 0) {\n\t\treturn rgb\n\t}\n\n\tconst hsl = rgbToHsl(rgb)\n\tconst factor = amount / 100\n\thsl.l = hsl.l + factor * (100 - hsl.l)\n\treturn hslToRgb(hsl)\n}\n\n/**\n * Darkens a color by a specified amount.\n * @param rgb The color to darken.\n * @param amount The amount to darken the color by, in the range [0, 100].\n * @returns The darkened color.\n */\nexport function darken(rgb: RGB, amount: number): RGB {\n\t// Check if the amount is within the required range\n\tif (amount < 0 || amount > 100) {\n\t\tthrow new Error('Amount must be in the range [0, 100]')\n\t} else if (amount === 0) {\n\t\treturn rgb\n\t}\n\n\tconst hsl = rgbToHsl(rgb)\n\tconst factor = amount / 100\n\thsl.l = hsl.l - factor * hsl.l\n\treturn hslToRgb(hsl)\n}\n\n/**\n * Converts a `Color` object to a hex string.\n * @param rgb The color to convert.\n * @returns A hex string representing the color.\n */\nexport function colorToHex(rgb: RGB): string {\n\tconst r = rgb.r.toString(16).padStart(2, '0')\n\tconst g = rgb.g.toString(16).padStart(2, '0')\n\tconst b = rgb.b.toString(16).padStart(2, '0')\n\n\treturn `#${r}${g}${b}`\n}\n\n/**\n * Converts a color from RGB to HSL space.\n * @param color The color to convert.\n * @returns An object representing the color in HSL space.\n */\nfunction rgbToHsl(rgb: RGB): HSL {\n\tconst r = rgb.r / 255\n\tconst g = rgb.g / 255\n\tconst b = rgb.b / 255\n\n\tconst max = Math.max(r, g, b)\n\tconst min = Math.min(r, g, b)\n\tlet h = 0,\n\t\ts\n\tconst l = (max + min) / 2\n\n\tif (max === min) {\n\t\th = s = 0 // achromatic\n\t} else {\n\t\tconst d = max - min\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\n\t\tswitch (max) {\n\t\t\tcase r:\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0)\n\t\t\t\tbreak\n\t\t\tcase g:\n\t\t\t\th = (b - r) / d + 2\n\t\t\t\tbreak\n\t\t\tcase b:\n\t\t\t\th = (r - g) / d + 4\n\t\t\t\tbreak\n\t\t}\n\n\t\th /= 6\n\t}\n\n\treturn {\n\t\th: Math.round(h * 360),\n\t\ts: Math.round(s * 100),\n\t\tl: Math.round(l * 100)\n\t}\n}\n\n/**\n * Converts a color from HSL to RGB space.\n * @param h The hue component of the color, in the range [0, 1].\n * @param s The saturation component of the color, in the range [0, 1].\n * @param l The lightness component of the color, in the range [0, 1].\n * @returns A `RGB` object representing the color in RGB space.\n */\nfunction hslToRgb(hsl: HSL): RGB {\n\tconst h = hsl.h / 360\n\tconst s = hsl.s / 100\n\tconst l = hsl.l / 100\n\n\tlet r, g, b\n\n\tif (s === 0) {\n\t\tr = g = b = l // achromatic\n\t} else {\n\t\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s\n\t\tconst p = 2 * l - q\n\n\t\tr = hueToRgb(p, q, h + 1 / 3)\n\t\tg = hueToRgb(p, q, h)\n\t\tb = hueToRgb(p, q, h - 1 / 3)\n\t}\n\n\treturn {\n\t\tr: Math.round(r * 255),\n\t\tg: Math.round(g * 255),\n\t\tb: Math.round(b * 255)\n\t}\n}\n\n/**\n * Helper function to convert a hue value to a corresponding RGB value.\n * @param p The first RGB component.\n * @param q The second RGB component.\n * @param t The hue value.\n * @returns The corresponding RGB value.\n */\nfunction hueToRgb(p: number, q: number, t: number): number {\n\tif (t < 0) t += 1\n\tif (t > 1) t -= 1\n\tif (t < 1 / 6) return p + (q - p) * 6 * t\n\tif (t < 1 / 2) return q\n\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\n\treturn p\n}\n","// Templates\nimport { defaultDarkColorScheme, defaultLightColorScheme } from '@/templates/theme'\n\n// Types\nimport type { ColorScheme, RGB } from '@/utils/color'\nimport type { App, Ref } from 'vue'\n\n// Utils\nimport { colorToHex, darken, lighten, parseColor } from '@/utils/color'\nimport { inject, ref, watch } from 'vue'\n\nexport const THEME_SYMBOL = 'q-theme'\n\nexport type ThemeMode = 'light' | 'dark'\n\nexport type AppThemes = {\n\tdefaultTheme: string\n\tthemes: Array<{\n\t\tname: string\n\t\tmode: ThemeMode\n\t\tcolors?: Partial<ColorScheme>\n\t}>\n}\n\nexport type ThemeDefinition = {\n\tname: string\n\tmode: ThemeMode\n\tcolors: ColorScheme\n}\n\nexport type ThemeConfiguration = {\n\tactiveTheme: string\n\tthemes: ThemeDefinition[]\n}\n\nexport function useTheme(): Ref<ThemeConfiguration> {\n\tconst theme: Ref<ThemeConfiguration> | undefined = inject(THEME_SYMBOL)\n\n\tif (!theme) throw new Error('[Quidgest UI] Could not find theme instance')\n\n\treturn theme\n}\n\nexport function installThemes(app: App, config?: AppThemes) {\n\tlet defaultTheme: ThemeDefinition | null = null\n\n\tif (!config) {\n\t\t// No theme definition was provided\n\t\t// Configure default light theme\n\t\tconst defaultThemeName = 'default'\n\n\t\tdefaultTheme = {\n\t\t\tname: defaultThemeName,\n\t\t\tmode: 'light',\n\t\t\tcolors: defaultLightColorScheme\n\t\t}\n\n\t\tconfig = {\n\t\t\tdefaultTheme: defaultThemeName,\n\t\t\tthemes: [defaultTheme]\n\t\t}\n\t} else {\n\t\tfor (const theme of config.themes) {\n\t\t\t// Pick the corresponding default color scheme\n\t\t\tconst defaultColorScheme =\n\t\t\t\ttheme.mode === 'light' ? defaultLightColorScheme : defaultDarkColorScheme\n\n\t\t\tif (theme.colors) {\n\t\t\t\tlet variable: keyof ColorScheme\n\n\t\t\t\tfor (variable in theme.colors) {\n\t\t\t\t\tconst hex = theme.colors[variable]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\thex &&\n\t\t\t\t\t\t!variable.startsWith('on') &&\n\t\t\t\t\t\t!variable.endsWith('Light') &&\n\t\t\t\t\t\t!variable.endsWith('Dark')\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst color: RGB = parseColor(hex)\n\t\t\t\t\t\tconst lightVariant = `${variable}Light` as keyof ColorScheme\n\t\t\t\t\t\tconst darkVariant = `${variable}Dark` as keyof ColorScheme\n\t\t\t\t\t\t// TODO: compute contrast color\n\n\t\t\t\t\t\tif (!(lightVariant in theme.colors))\n\t\t\t\t\t\t\ttheme.colors[lightVariant] = colorToHex(lighten(color, 85))\n\n\t\t\t\t\t\tif (!(darkVariant in theme.colors))\n\t\t\t\t\t\t\ttheme.colors[darkVariant] = colorToHex(darken(color, 25))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Theme color scheme is potentially partial\n\t\t\t// Merge with default appropriate color scheme\n\t\t\ttheme.colors = mergeColorSchemes(defaultColorScheme, theme.colors)\n\n\t\t\tif (theme.name === config.defaultTheme) defaultTheme = theme as ThemeDefinition\n\t\t}\n\t}\n\n\t// At this point, if the default theme is null,\n\t// there's got to be an issue with the config that was provided\n\tif (defaultTheme) {\n\t\tconst state: Ref<ThemeConfiguration> = ref({\n\t\t\tactiveTheme: defaultTheme.name,\n\t\t\tthemes: config.themes as ThemeDefinition[]\n\t\t})\n\n\t\t// Automatically regenerate root style\n\t\t// on active theme change\n\t\twatch(\n\t\t\t() => state.value.activeTheme,\n\t\t\t(name) => {\n\t\t\t\tconst activeTheme = state.value.themes.find((theme) => theme.name === name)\n\t\t\t\tif (activeTheme) generateRootStyle(activeTheme.colors)\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t)\n\n\t\t// Provide theme configuration\n\t\tapp.provide(THEME_SYMBOL, state)\n\t}\n}\n\nexport function mergeColorSchemes(\n\tdefaultColorScheme: ColorScheme,\n\tuserColorScheme: Partial<ColorScheme> = {}\n) {\n\treturn { ...defaultColorScheme, ...userColorScheme }\n}\n\nexport function generateRootStyle(colors: Partial<ColorScheme>) {\n\tlet themeNode: HTMLStyleElement | null = document.getElementById(\n\t\tTHEME_SYMBOL\n\t) as HTMLStyleElement\n\n\tif (!themeNode) {\n\t\tthemeNode = document.createElement('style')\n\t\tthemeNode.type = 'text/css'\n\t\tthemeNode.id = THEME_SYMBOL\n\t\tdocument.head.appendChild(themeNode)\n\t}\n\n\t// Generate theme dynamic CSS\n\tlet cssText = ':root {\\n'\n\tlet color: keyof ColorScheme\n\tfor (color in colors) {\n\t\tconst value = colors[color]\n\n\t\tif (value) {\n\t\t\t// Generate HEX\n\t\t\tcssText += ` ${toProperty(color)}: ${value};\\n`\n\n\t\t\t// Generate RGB, useful to combine with alpha channel\n\t\t\tconst rgb = parseColor(value)\n\t\t\tcssText += ` ${toProperty(color)}-rgb: ${rgb.r} ${rgb.g} ${rgb.b};\\n`\n\t\t}\n\t}\n\tcssText += '}'\n\n\t// Set the CSS content for the style element\n\tthemeNode.textContent = cssText\n}\n\nexport function toProperty(color: string) {\n\tif (!color) return ''\n\n\treturn `--q-theme-${color\n\t\t.replace(/([A-Z])/g, '-$1')\n\t\t.replace(/^-/, '')\n\t\t.toLowerCase()}`\n}\n","// Composables\nimport { DEFAULTS_SYMBOL, Defaults } from '@/composables/defaults'\nimport { AppThemes, installThemes } from '@/composables/theme'\n\n// Types\nimport type { App, Component, Directive, Plugin } from 'vue'\n\n// Utils\nimport { ref } from 'vue'\n\nexport type FrameworkConfig = {\n\tcomponents?: Record<string, Component>\n\tdirectives?: Record<string, Directive>\n\tthemes?: AppThemes\n\tdefaults?: Defaults\n}\n\nexport function createFramework(config: FrameworkConfig = {}): Plugin {\n\tconst install = (app: App) => {\n\t\t// Install components\n\t\tconst components = config.components || {}\n\t\tfor (const name in components) {\n\t\t\tapp.component(name, components[name])\n\t\t}\n\n\t\t// Install directives\n\t\tconst directives = config.directives || {}\n\t\tfor (const name in directives) {\n\t\t\tapp.directive(name, directives[name])\n\t\t}\n\n\t\t// Setup global defaults\n\t\tconst globalDefaults = config.defaults || {}\n\t\tapp.provide(DEFAULTS_SYMBOL, ref(globalDefaults))\n\n\t\t// Install themes\n\t\tinstallThemes(app, config.themes)\n\t}\n\n\treturn { install }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"svg\", { viewBox: \"25 25 50 50\" }, [\n /*#__PURE__*/_createElementVNode(\"circle\", {\n class: \"path\",\n cx: \"50\",\n cy: \"50\",\n r: \"20\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"5\",\n \"stroke-miterlimit\": \"10\"\n })\n], -1)\nconst _hoisted_2 = [\n _hoisted_1\n]\n\nimport { computed } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QSpinnerLoader',\n props: {\n size: { default: 48 }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tconst loaderStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== 48 ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"q-spinner-loader\",\n style: _normalizeStyle(loaderStyle.value)\n }, _hoisted_2, 4))\n}\n}\n\n})","// Composables\nimport { useDefaults } from '@/composables/defaults'\n\n// Types\nimport type { SetupContext, VNode } from 'vue'\n\n// Utils\nimport { getCurrentInstance } from 'vue'\nimport { isEmpty } from './isEmpty'\n\nexport function propIsDefined(vnode: VNode, prop: string) {\n\treturn typeof vnode.props?.[prop] !== 'undefined'\n}\n\ntype LooseRequired<T> = {\n\t[P in keyof (T & Required<T>)]: T[P]\n}\n\ntype Component<Props> = {\n\tsetup?: (\n\t\tthis: void,\n\t\tprops: LooseRequired<Readonly<Props>>,\n\t\tctx: SetupContext<unknown>\n\t) => unknown\n}\n\nexport function setupPropsProxy<Props>(component: Component<Props>): Component<Props> {\n\tconst setup = component.setup\n\n\tif (!setup) return component\n\n\tcomponent.setup = (props, ctx) => {\n\t\tconst componentDefaults = useDefaults()\n\n\t\tif (isEmpty(componentDefaults.value)) return setup(props, ctx)\n\n\t\tconst vm = getCurrentInstance()\n\n\t\tif (vm === null) return setup(props, ctx)\n\n\t\tconst _props = new Proxy(props, {\n\t\t\tget(target, prop) {\n\t\t\t\tconst propValue = Reflect.get(target, prop)\n\t\t\t\tconst defaultValue = componentDefaults.value?.[prop]\n\n\t\t\t\tif (typeof prop === 'string' && !propIsDefined(vm.vnode, prop))\n\t\t\t\t\treturn defaultValue ?? propValue\n\t\t\t\treturn propValue\n\t\t\t}\n\t\t})\n\n\t\treturn setup(_props, ctx)\n\t}\n\n\treturn component\n}\n","// Components\nimport _QSpinnerLoader from './QSpinnerLoader.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QSpinnerLoader = setupPropsProxy(_QSpinnerLoader) as typeof _QSpinnerLoader\n\n// Export components\nexport { QSpinnerLoader }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, renderSlot as _renderSlot, createElementVNode as _createElementVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"disabled\", \"onClick\"]\nconst _hoisted_2 = {\n key: 0,\n class: \"q-btn__spinner\"\n}\nconst _hoisted_3 = { class: \"q-btn__content\" }\n\nimport { QSpinnerLoader } from '@/components/QSpinnerLoader'\n\n\t// Utils\n\timport { computed } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QButton',\n props: {\n active: { type: Boolean },\n bStyle: { default: 'secondary' },\n label: { default: '' },\n disabled: { type: Boolean },\n iconOnRight: { type: Boolean },\n borderless: { type: Boolean },\n elevated: { type: Boolean },\n block: { type: Boolean },\n loading: { type: Boolean },\n size: { default: 'regular' }\n },\n emits: [\"click\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tconst isDisabled = computed(() => props.disabled || props.loading)\n\n\tfunction onClick(event: Event) {\n\t\tif (!isDisabled.value) emit('click', event)\n\t}\n\n\tconst classes = computed(() => {\n\t\tconst variant = computed(() => (props.bStyle ? `q-btn--${props.bStyle}` : undefined))\n\t\tconst size = computed(() => (props.size !== 'regular' ? `q-btn--${props.size}` : undefined))\n\n\t\treturn [\n\t\t\t'q-btn',\n\t\t\tvariant.value,\n\t\t\tsize.value,\n\t\t\t{\n\t\t\t\t'q-btn--active': props.active,\n\t\t\t\t'q-btn--borderless': props.borderless,\n\t\t\t\t'q-btn--elevated': props.elevated,\n\t\t\t\t'q-btn--block': props.block,\n\t\t\t\t'q-btn--loading': props.loading\n\t\t\t}\n\t\t]\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n type: \"button\",\n class: _normalizeClass(classes.value),\n disabled: isDisabled.value,\n onClick: _withModifiers(onClick, [\"stop\",\"prevent\"])\n }, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_unref(QSpinnerLoader), { size: 23 })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_3, [\n (_ctx.iconOnRight)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(props.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\"),\n (!_ctx.iconOnRight)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(props.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_1))\n}\n}\n\n})","// Components\nimport _QButton from './QButton.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QButton = setupPropsProxy(_QButton) as typeof _QButton\n\n// Export components\nexport { QButton }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { computed, toRef } from 'vue'\n\timport { provideDefaults } from '@/composables/defaults'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QButtonGroup',\n props: {\n bStyle: {},\n disabled: { type: Boolean },\n borderless: { type: Boolean },\n elevated: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tprovideDefaults({\n\t\tQButton: {\n\t\t\tbStyle: toRef(props, 'bStyle'),\n\t\t\tdisabled: toRef(props, 'disabled'),\n\t\t\tborderless: toRef(props, 'borderless'),\n\t\t\televated: false\n\t\t}\n\t})\n\n\tconst classes = computed(() => {\n\t\treturn [\n\t\t\t'q-btn-group',\n\t\t\t{\n\t\t\t\t'q-btn-group--elevated': props.elevated\n\t\t\t}\n\t\t]\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(classes.value)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n}\n}\n\n})","// Components\nimport _QButtonGroup from './QButtonGroup.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QButtonGroup = setupPropsProxy(_QButtonGroup) as typeof _QButtonGroup\n\n// Export components\nexport { QButtonGroup }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nimport { QButton } from '@/components/QButton'\n\timport { QButtonGroup } from '@/components/QButtonGroup'\n\n\t// Utils\n\timport { Ref, WritableComputedRef, computed, ref, watch } from 'vue'\n\n\texport type QButtonToggleOption = {\n\t\tkey: string\n\t\ttitle?: string\n\t\tlabel?: string\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QButtonToggle',\n props: {\n modelValue: {},\n options: {},\n disabled: { type: Boolean },\n borderless: { type: Boolean },\n elevated: { type: Boolean },\n mandatory: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\t// Keep a local value for active to make prop \"modelValue\" optional\n\tconst _active: Ref<string | undefined> = ref(props.modelValue)\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => (_active.value = newVal)\n\t)\n\n\tconst active: WritableComputedRef<string | undefined> = computed({\n\t\tget() {\n\t\t\treturn _active.value\n\t\t},\n\t\tset(newVal) {\n\t\t\t_active.value = newVal\n\t\t\temit('update:modelValue', newVal)\n\t\t}\n\t})\n\n\tfunction toggle(option: QButtonToggleOption) {\n\t\tif (active.value === option.key && !props.mandatory) active.value = undefined\n\t\telse active.value = option.key\n\t}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QButtonGroup), {\n \"b-style\": \"secondary\",\n disabled: props.disabled,\n borderless: props.borderless,\n elevated: props.elevated\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(props.options, (option) => {\n return (_openBlock(), _createBlock(_unref(QButton), {\n key: option.key,\n title: option.title,\n label: option.label,\n active: active.value === option.key,\n onClick: ($event: any) => (toggle(option))\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, option.key)\n ]),\n _: 2\n }, 1032, [\"title\", \"label\", \"active\", \"onClick\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"disabled\", \"borderless\", \"elevated\"]))\n}\n}\n\n})","// Components\nimport _QButtonToggle from './QButtonToggle.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QButtonToggle = setupPropsProxy(_QButtonToggle) as typeof _QButtonToggle\n\n// Export components\nexport { QButtonToggle }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { QIconFont } from '.'\n\timport { QIconImg } from '.'\n\timport { QIconSvg } from '.'\n\n\t// Utils\n\timport { computed } from 'vue'\n\n\texport type Icon = {\n\t\t/**\n\t\t * The identifier of the icon.\n\t\t */\n\t\ticon: string\n\n\t\t/**\n\t\t * The type of resource.\n\t\t */\n\t\ttype?: 'svg' | 'font' | 'img'\n\n\t\t/**\n\t\t * The size of the icon, in pixels.\n\t\t */\n\t\tsize?: number\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIcon',\n props: {\n icon: {},\n type: { default: 'svg' },\n size: { default: undefined }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\tconst component = computed(() => {\n\t\tswitch (props.type) {\n\t\t\tcase 'svg':\n\t\t\t\treturn QIconSvg\n\t\t\tcase 'font':\n\t\t\t\treturn QIconFont\n\t\t\tcase 'img':\n\t\t\t\treturn QIconImg\n\t\t\tdefault:\n\t\t\t\treturn undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (props.icon)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(component.value), {\n key: 0,\n icon: props.icon,\n size: props.size\n }, null, 8, [\"icon\", \"size\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { computed } from 'vue'\n\n\texport type QIconFontProps = {\n\t\t/**\n\t\t * The classname containing the content of the font icon.\n\t\t */\n\t\ticon: string\n\n\t\t/**\n\t\t * The name of the icon library.\n\t\t */\n\t\tlibrary?: string\n\n\t\t/**\n\t\t * The icon variant.\n\t\t */\n\t\tvariant?: string\n\n\t\t/**\n\t\t * The size of the icon, in pixels.\n\t\t */\n\t\tsize?: number\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIconFont',\n props: {\n icon: {},\n library: { default: '' },\n variant: { default: '' },\n size: { default: undefined }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tconst libraryVariant = computed(() => {\n\t\tif (props.variant) return `${props.library}-${props.variant}`\n\t\treturn props.library\n\t})\n\n\tconst iconClass = computed(() => {\n\t\tif (props.library && props.icon) return `${props.library}-${props.icon}`\n\t\treturn props.icon\n\t})\n\n\tconst iconStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== undefined ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (iconClass.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(['q-icon', 'q-icon__font', libraryVariant.value, iconClass.value]),\n style: _normalizeStyle(iconStyle.value)\n }, null, 6))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"src\"]\n\nimport { computed } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIconImg',\n props: {\n icon: {},\n size: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tconst iconStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== undefined ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (props.icon)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: props.icon,\n class: \"q-icon q-icon__img\",\n style: _normalizeStyle(iconStyle.value)\n }, null, 12, _hoisted_1))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import { h as createElement, defineComponent } from 'vue'\n\n/** @type Record<string, PromiseWithState<Element>> */\nconst cache = {}\n\nexport default defineComponent({\n\tname: 'InlineSvg',\n\n\temits: ['loaded', 'unloaded', 'error'],\n\n\tinheritAttrs: false,\n\n\trender() {\n\t\tif (!this.svgElSource) return null\n\n\t\tconst ctn = this.getSvgContent(this.svgElSource)\n\t\tif (!ctn) return createElement('div', this.$attrs)\n\n\t\tconst cprops = {}\n\t\t// source attrs\n\t\tthis.copySvgAttrs(cprops, this.svgElSource)\n\t\t// transformed attributes\n\t\tthis.copySvgAttrs(cprops, ctn)\n\t\t// component attrs and listeners\n\t\tthis.copyComponentAttrs(cprops, this.$attrs)\n\t\t// content\n\t\tcprops.innerHTML = ctn.innerHTML\n\n\t\treturn createElement('svg', cprops)\n\t},\n\n\tprops: {\n\t\tsrc: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\tsymbol: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\n\t\ttransformSource: {\n\t\t\ttype: Function,\n\t\t\tdefault: undefined\n\t\t},\n\n\t\tkeepDuringLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/** @type SVGElement */\n\t\t\tsvgElSource: null\n\t\t}\n\t},\n\n\tasync mounted() {\n\t\t// generate `svgElSource`\n\t\tawait this.getSource(this.src)\n\t},\n\n\tmethods: {\n\t\tcopySvgAttrs(target, source) {\n\t\t\tconst attrs = source.attributes\n\t\t\tif (attrs) for (const a of attrs) target[a.name] = a.value\n\t\t},\n\n\t\tcopyComponentAttrs(target, source) {\n\t\t\tfor (const [key, value] of Object.entries(source))\n\t\t\t\tif (value !== false && value !== null && value !== undefined) target[key] = value\n\t\t},\n\n\t\tgetSvgContent(svgEl) {\n\t\t\tif (this.symbol) {\n\t\t\t\tsvgEl = svgEl.getElementById(this.symbol)\n\t\t\t\tif (!svgEl) return null\n\t\t\t}\n\n\t\t\tif (this.transformSource) {\n\t\t\t\tsvgEl = svgEl.cloneNode(true)\n\t\t\t\tsvgEl = this.transformSource(svgEl)\n\t\t\t}\n\n\t\t\tif (this.title) {\n\t\t\t\tif (!this.transformSource) svgEl = svgEl.cloneNode(true)\n\t\t\t\tsetTitle(svgEl, this.title)\n\t\t\t}\n\n\t\t\treturn svgEl\n\t\t},\n\n\t\t/**\n\t\t * Get svgElSource\n\t\t * @param {string} src\n\t\t */\n\t\tasync getSource(src) {\n\t\t\ttry {\n\t\t\t\t// Fill cache by src with promise\n\t\t\t\tif (!cache[src]) {\n\t\t\t\t\t// Download\n\t\t\t\t\tcache[src] = makePromiseState(this.download(src))\n\t\t\t\t}\n\n\t\t\t\t// Notify svg is unloaded\n\t\t\t\tif (this.svgElSource && cache[src].getIsPending() && !this.keepDuringLoading) {\n\t\t\t\t\tthis.svgElSource = null\n\t\t\t\t\tthis.$emit('unloaded')\n\t\t\t\t}\n\n\t\t\t\t// Inline svg when cached promise resolves\n\t\t\t\tconst svg = await cache[src]\n\t\t\t\tthis.svgElSource = svg\n\t\t\t\t// Wait to render\n\t\t\t\tawait this.$nextTick()\n\t\t\t\t// Notify\n\t\t\t\tthis.$emit('loaded', this.$el)\n\t\t\t} catch (err) {\n\t\t\t\t// Notify svg is unloaded\n\t\t\t\tif (this.svgElSource) {\n\t\t\t\t\tthis.svgElSource = null\n\t\t\t\t\tthis.$emit('unloaded')\n\t\t\t\t}\n\n\t\t\t\t// Remove cached rejected promise so next image can try load again\n\t\t\t\tdelete cache[src]\n\t\t\t\tthis.$emit('error', err)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the contents of the SVG\n\t\t * @param {string} url\n\t\t * @returns {PromiseWithState<Element>}\n\t\t */\n\t\tasync download(url) {\n\t\t\tconst response = await fetch(url)\n\t\t\tif (!response.ok) throw new Error('Error loading SVG')\n\n\t\t\tconst text = await response.text()\n\t\t\tconst parser = new DOMParser()\n\t\t\tconst result = parser.parseFromString(text, 'text/xml')\n\t\t\tconst svgEl = result.getElementsByTagName('svg')[0]\n\n\t\t\tif (!svgEl) throw new Error('Loaded file is not a valid SVG')\n\n\t\t\t// Uncomment the following line if you want to apply any transformation to the SVG element\n\t\t\t// svgEl = this.transformSource(svgEl)\n\t\t\treturn svgEl\n\t\t}\n\t},\n\n\twatch: {\n\t\tsrc(newValue) {\n\t\t\t// re-generate cached svg (`svgElSource`)\n\t\t\tthis.getSource(newValue)\n\t\t}\n\t}\n})\n\n/**\n * Create or edit the <title> element of a SVG\n * @param {SVGElement} svg\n * @param {string} title\n */\nfunction setTitle(svg, title) {\n\tconst titleTags = svg.getElementsByTagName('title')\n\tif (titleTags.length) {\n\t\t// overwrite existing title\n\t\ttitleTags[0].textContent = title\n\t} else {\n\t\t// create a title element if one doesn't already exist\n\t\tconst titleEl = document.createElementNS('http://www.w3.org/2000/svg', 'title')\n\t\ttitleEl.textContent = title\n\t\t// svg.prepend(titleEl);\n\t\tsvg.insertBefore(titleEl, svg.firstChild)\n\t}\n}\n\n/**\n * This function allow you to modify a JS Promise by adding some status properties.\n * @template {any} T\n * @param {Promise<T>|PromiseWithState<T>} promise\n * @return {PromiseWithState<T>}\n */\nfunction makePromiseState(promise) {\n\t// Don't modify any promise that has been already modified.\n\tif (promise.getIsPending) return promise\n\n\t// Set initial state\n\tlet isPending = true\n\n\t// Observe the promise, saving the fulfillment in a closure scope.\n\tconst result = promise.then(\n\t\t(v) => {\n\t\t\tisPending = false\n\t\t\treturn v\n\t\t},\n\t\t(e) => {\n\t\t\tisPending = false\n\t\t\tthrow e\n\t\t}\n\t)\n\n\tresult.getIsPending = () => isPending\n\n\treturn result\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { computed } from 'vue'\n\timport InlineSvg from './InlineSvg.js'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIconSvg',\n props: {\n icon: {},\n bundle: { default: '' },\n size: { default: undefined }\n },\n emits: [\"loaded\", \"unloaded\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\t\n\n\tconst iconStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== undefined ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (props.icon)\n ? (_openBlock(), _createBlock(_unref(InlineSvg), {\n key: 0,\n class: \"q-icon q-icon__svg\",\n src: props.bundle,\n symbol: props.icon,\n style: _normalizeStyle(iconStyle.value),\n onLoaded: _cache[0] || (_cache[0] = ($event: any) => (emit('loaded', $event))),\n onUnloaded: _cache[1] || (_cache[1] = ($event: any) => (emit('unloaded', $event)))\n }, null, 8, [\"src\", \"symbol\", \"style\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","// Components\nimport _QIcon from './QIcon.vue'\nimport _QIconFont from './QIconFont.vue'\nimport _QIconImg from './QIconImg.vue'\nimport _QIconSvg from './QIconSvg.vue'\n\n// Types\nimport type { Icon } from './QIcon.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QIcon = setupPropsProxy(_QIcon) as typeof _QIcon\nconst QIconFont = setupPropsProxy(_QIconFont) as typeof _QIconFont\nconst QIconImg = setupPropsProxy(_QIconImg) as typeof _QIconImg\nconst QIconSvg = setupPropsProxy(_QIconSvg) as typeof _QIconSvg\n\n// Export components\nexport { QIcon, QIconFont, QIconImg, QIconSvg }\n\n// Export types\nexport type { Icon }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-input__prepend\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"q-input__append\"\n}\n\nexport type QInputSize =\n\t\t| 'mini'\n\t\t| 'small'\n\t\t| 'medium'\n\t\t| 'large'\n\t\t| 'x-large'\n\t\t| 'xx-large'\n\t\t| 'block'\n\n\texport type QInputProps = {\n\t\t/**\n\t\t * The size category of the input.\n\t\t */\n\t\tsize?: QInputSize\n\n\t\t/**\n\t\t * Whether the input is readonly.\n\t\t */\n\t\treadonly?: boolean\n\n\t\t/**\n\t\t * Whether the input is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QInput',\n props: {\n size: { default: 'medium' },\n readonly: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\n\t\t\t'q-input',\n\t\t\t`q-input--${props.size}`,\n\t\t\t{ 'q-input--readonly': props.readonly, 'q-input--disabled': props.disabled }\n\t\t])\n }, [\n (_ctx.$slots.prepend)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"prepend\")\n ]))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\"),\n (_ctx.$slots.append)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"append\")\n ]))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","// Components\nimport _QInput from './QInput.vue'\n\n// Types\nimport type { QInputProps, QInputSize } from './QInput.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QInput = setupPropsProxy(_QInput) as typeof _QInput\n\n// Export components\nexport { QInput }\n\n// Export types\nexport type { QInputProps, QInputSize }\n","// Components\nimport _QLineLoader from './QLineLoader.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QLineLoader = setupPropsProxy(_QLineLoader) as typeof _QLineLoader\n\n// Export components\nexport { QLineLoader }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createBlock as _createBlock, withCtx as _withCtx, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass } from \"vue\"\n\nimport { QListItem } from '.'\n\timport { QListItemGroup } from '.'\n\n\t// Types\n\timport type { QListItemProps, QListItemGroupProps } from '.'\n\timport type { Primitive } from '@/types/primitive'\n\n\t// Utils\n\timport { computed, ref, watch } from 'vue'\n\n\texport type QListProps = {\n\t\t/**\n\t\t * The value of the currently selected item.\n\t\t */\n\t\tmodelValue?: Primitive\n\n\t\t/**\n\t\t * The list of available items for selection.\n\t\t */\n\t\titems: (Omit<QListItemProps, 'value' | 'label'> & {\n\t\t\t// allow custom properties\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t[key: string]: any\n\t\t})[]\n\n\t\t/**\n\t\t * The item groups used for organizing the available items.\n\t\t */\n\t\tgroups?: (QListItemGroupProps & {\n\t\t\tid: string\n\t\t})[]\n\n\t\t/**\n\t\t * The property of each item object that holds its value.\n\t\t */\n\t\titemValue?: string\n\n\t\t/**\n\t\t * The property of each item object that holds its title.\n\t\t */\n\t\titemLabel?: string\n\n\t\t/**\n\t\t * Indicates whether the list is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QList',\n props: {\n modelValue: { type: [String, Number, Boolean, Symbol], default: undefined },\n items: {},\n groups: { default: () => [] },\n itemValue: { default: 'key' },\n itemLabel: { default: 'label' },\n disabled: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tconst value = ref(props.modelValue)\n\n\tconst listTag = computed(() => (groups.value.length > 1 ? 'div' : 'ul'))\n\tconst groups = computed<QListItemGroupProps[]>(() => {\n\t\tif (props.groups.length) return props.groups\n\n\t\t// Generate a default group without title\n\t\treturn [{ title: '' }]\n\t})\n\n\t// Template refs\n\tconst listRef = ref<HTMLElement | null>(null)\n\n\tfunction onItemSelect(newVal: Primitive) {\n\t\tvalue.value = newVal\n\t\temit('update:modelValue', newVal)\n\t}\n\n\tfunction onFocus() {\n\t\tlet targetIdx = 0\n\n\t\tif (value.value) {\n\t\t\ttargetIdx = props.items.findIndex((item) => item[props.itemValue] === value.value)\n\t\t}\n\n\t\tfocusItem(targetIdx)\n\t}\n\n\tfunction onKeyDown(e: KeyboardEvent) {\n\t\tif (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\tfocus('next')\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\tfocus('prev')\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\tfocus('first')\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\tfocus('last')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction focus(direction?: 'next' | 'prev' | 'first' | 'last') {\n\t\tswitch (direction) {\n\t\t\tcase 'next':\n\t\t\tcase 'prev':\n\t\t\t\tfocusItem(getAdjacentItemIdx(direction))\n\t\t\t\tbreak\n\t\t\tcase 'first':\n\t\t\t\tfocusItem(0)\n\t\t\t\tbreak\n\t\t\tcase 'last':\n\t\t\t\tfocusItem(-1)\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction focusItem(itemIdx: number) {\n\t\tconst children = getFocusableChildren()\n\t\tchildren.at(itemIdx)?.focus()\n\t}\n\n\tfunction getFocusableChildren() {\n\t\tconst nodes = listRef.value?.querySelectorAll('li')\n\t\tif (!nodes) return []\n\n\t\tconst items = Array.from(nodes) as HTMLElement[]\n\t\treturn items.filter((item) => item.tabIndex !== -1)\n\t}\n\n\tfunction getActiveItemIndex(items: HTMLElement[]) {\n\t\treturn items.indexOf(document.activeElement as HTMLElement)\n\t}\n\n\tfunction getAdjacentItemIdx(direction: 'next' | 'prev') {\n\t\tconst items = getFocusableChildren()\n\t\tconst idx = getActiveItemIndex(items)\n\n\t\tif (direction === 'next') return idx === items.length - 1 ? idx : idx + 1\n\t\treturn idx === 0 ? 0 : idx - 1\n\t}\n\n\tfunction getGroupItems(group?: string) {\n\t\tif (!group) return props.items\n\t\treturn props.items.filter((item) => item.group === group)\n\t}\n\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => {\n\t\t\tvalue.value = newVal\n\t\t}\n\t)\n\n\t__expose({ focusItem })\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(listTag.value), {\n ref_key: \"listRef\",\n ref: listRef,\n class: _normalizeClass(['q-list', { 'q-list--disabled': props.disabled }]),\n role: \"listbox\",\n tabindex: props.disabled ? -1 : 0,\n onFocus: onFocus,\n onKeydown: onKeyDown\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(groups.value, (group) => {\n return (_openBlock(), _createBlock(_unref(QListItemGroup), {\n key: group.id,\n title: group.title,\n disabled: group.disabled\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getGroupItems(group.id), (item) => {\n return (_openBlock(), _createBlock(_unref(QListItem), {\n key: item[props.itemValue],\n value: item[props.itemValue],\n label: item[props.itemLabel],\n icon: item.icon,\n disabled: props.disabled || item.disabled,\n selected: value.value === item[props.itemValue],\n onSelect: onItemSelect\n }, null, 8, [\"value\", \"label\", \"icon\", \"disabled\", \"selected\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"title\", \"disabled\"]))\n }), 128))\n ]),\n _: 1\n }, 40, [\"class\", \"tabindex\"]))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, openBlock as _openBlock, createBlock as _createBlock, mergeProps as _mergeProps, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"tabindex\", \"aria-label\", \"aria-selected\", \"onClick\"]\nconst _hoisted_2 = { class: \"q-list-item__check-container\" }\n\nimport { QIcon } from '@/components/QIcon'\n\n\t// Types\n\timport type { Icon } from '@/components/QIcon'\n\timport type { Primitive } from '@/types/primitive'\n\n\t\n\t// The default icons of the component.\n\tconst DEFAULT_ICONS: Record<string, Icon> = {\n\t\tcheck: {\n\t\t\ticon: 'check'\n\t\t}\n\t}\n\nexport type ListItem = {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t[key: string]: any\n\t\ticon?: Icon\n\t\tselected?: boolean\n\t\tgroup?: string\n\t\tdisabled?: boolean\n\t}\n\n\texport type Icons = typeof DEFAULT_ICONS\n\n\texport type QListItemProps = {\n\t\t/**\n\t\t * The value of the item.\n\t\t */\n\t\tvalue: Primitive\n\n\t\t/**\n\t\t * The label of the item.\n\t\t */\n\t\tlabel: string\n\n\t\t/**\n\t\t * The icon of the item.\n\t\t */\n\t\ticon?: Icon\n\n\t\t/**\n\t\t * Whether this item is selected.\n\t\t */\n\t\tselected?: boolean\n\n\t\t/**\n\t\t * Whether this item is highlighted.\n\t\t */\n\t\thighlighted?: boolean\n\n\t\t/**\n\t\t * The icons of the component.\n\t\t */\n\t\ticons?: Icons\n\n\t\t/**\n\t\t * Whether the item is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QListItem',\n props: {\n value: { type: [String, Number, Boolean, Symbol] },\n label: {},\n icon: { default: undefined },\n selected: { type: Boolean, default: false },\n highlighted: { type: Boolean, default: false },\n icons: { default: () => DEFAULT_ICONS },\n disabled: { type: Boolean, default: false }\n },\n emits: [\"select\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tfunction onSelect() {\n\t\tif (!props.disabled) emit('select', props.value)\n\t}\n\n\tfunction onKeyDown(e: KeyboardEvent) {\n\t\tif (e.key === 'Tab') onSelect()\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t\tonSelect()\n\t\t}\n\t}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n role: \"option\",\n tabindex: props.disabled ? undefined : -2,\n class: _normalizeClass([\n\t\t\t'q-list-item',\n\t\t\t{\n\t\t\t\t'q-list-item--disabled': props.disabled,\n\t\t\t\t'q-list-item--selected': props.selected,\n\t\t\t\t'q-list-item--highlighted': props.highlighted\n\t\t\t}\n\t\t]),\n \"aria-label\": props.label,\n \"aria-selected\": props.disabled ? undefined : props.selected,\n onKeydown: onKeyDown,\n onClick: _withModifiers(onSelect, [\"stop\",\"prevent\"])\n }, [\n (props.icon)\n ? (_openBlock(), _createBlock(_unref(QIcon), _normalizeProps(_mergeProps({ key: 0 }, props.icon)), null, 16))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(props.label) + \" \", 1),\n _createElementVNode(\"div\", _hoisted_2, [\n (props.selected)\n ? (_openBlock(), _createBlock(_unref(QIcon), _mergeProps({ key: 0 }, props.icons.check, { class: \"q-list-item__check\" }), null, 16))\n : _createCommentVNode(\"\", true)\n ])\n ], 42, _hoisted_1))\n}\n}\n\n})","// Counter to keep track of the number of generated IDs\nlet counter = 0\n\n// Custom hook to generate unique IDs\nexport function useUid() {\n\treturn `uid-${++counter}`\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createCommentVNode as _createCommentVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"aria-labelledby\"]\nconst _hoisted_2 = [\"id\"]\n\nimport { useUid } from '@/composables/uid'\n\n\texport type QListItemGroupProps = {\n\t\t/**\n\t\t * The title of the group.\n\t\t */\n\t\ttitle?: string\n\n\t\t/**\n\t\t * Whether the entire list group is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QListItemGroup',\n props: {\n title: { default: '' },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\tconst id = useUid()\n\nreturn (_ctx: any,_cache: any) => {\n return (!props.title)\n ? _renderSlot(_ctx.$slots, \"default\", { key: 0 })\n : (_openBlock(), _createElementBlock(\"ul\", {\n key: 1,\n class: \"q-list-item-group\",\n role: \"group\",\n \"aria-labelledby\": _unref(id)\n }, [\n (props.title)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 0,\n id: _unref(id),\n class: \"q-list-item-group__title\",\n role: \"presentation\"\n }, _toDisplayString(props.title), 9, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\")\n ], 8, _hoisted_1))\n}\n}\n\n})","// Components\nimport _QList from './QList.vue'\nimport _QListItem from './QListItem.vue'\nimport _QListItemGroup from './QListItemGroup.vue'\n\n// Types\nimport type { QListProps } from './QList.vue'\nimport type { QListItemProps } from './QListItem.vue'\nimport type { QListItemGroupProps } from './QListItemGroup.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QList = setupPropsProxy(_QList) as typeof _QList\nconst QListItem = setupPropsProxy(_QListItem) as typeof _QListItem\nconst QListItemGroup = setupPropsProxy(_QListItemGroup) as typeof _QListItemGroup\n\n// Export components\nexport { QList, QListItem, QListItemGroup }\n\n// Export types\nexport type { QListProps, QListItemProps, QListItemGroupProps }\n","export type Appearance = 'regular' | 'inverted'\nexport type Placement = 'top' | 'bottom' | 'left' | 'right'\nexport type Trigger = 'hover' | 'click' | 'manual'\n\nexport type Position = {\n\tx: number\n\ty: number\n\tplacement: Placement\n\twidth?: number\n}\n\n/**\n * Reposition the overlay based on its size and the position of its anchor.\n */\nexport function computePosition(\n\tanchor: Element,\n\toverlay: Element | null,\n\ttentativePlacement: Placement = 'right',\n\twidth?: 'auto' | 'anchor'\n): Position {\n\t// Get absolute position of anchor\n\tconst anchorPosition = anchor.getBoundingClientRect()\n\tconst left = anchorPosition.x + window.scrollX\n\tconst top = anchorPosition.y + window.scrollY\n\n\t// Get absolute position of overlay\n\tconst overlayPosition = overlay?.getBoundingClientRect()\n\tconst overlayWidth = overlayPosition?.width ?? 0\n\tconst overlayHeight = overlayPosition?.height ?? 0\n\n\tlet placement = tentativePlacement\n\n\t// Attempt to prevent out of bounds\n\tif (overlayPosition) {\n\t\tconst oob = !canReposition(anchorPosition, overlayPosition, placement)\n\t\tif (oob) placement = getOptimalFallbackPosition(anchorPosition, overlayPosition, placement)\n\t}\n\n\tconst position: Position = { x: 0, y: 0, placement: placement }\n\n\tswitch (placement) {\n\t\tcase 'top':\n\t\t\tif (width === 'anchor') position.x = left\n\t\t\telse position.x = left + (anchorPosition.width - overlayWidth) / 2\n\t\t\tposition.y = top - overlayHeight\n\t\t\tbreak\n\t\tcase 'bottom':\n\t\t\tif (width === 'anchor') position.x = left\n\t\t\telse position.x = left + (anchorPosition.width - overlayWidth) / 2\n\t\t\tposition.y = top + anchorPosition.height\n\t\t\tbreak\n\t\tcase 'left':\n\t\t\tposition.x = left - overlayWidth\n\t\t\tposition.y = top + anchorPosition.height / 2 - overlayHeight / 2\n\t\t\tbreak\n\t\tcase 'right':\n\t\t\tposition.x = left + anchorPosition.width\n\t\t\tposition.y = top + anchorPosition.height / 2 - overlayHeight / 2\n\t\t\tbreak\n\t\tdefault:\n\t\t\tbreak\n\t}\n\n\tif (width === 'anchor' && anchorPosition.width >= overlayWidth)\n\t\tposition.width = anchorPosition.width\n\n\treturn position\n}\n\n/**\n * Determines if the overlay can reposition to the provided placement\n * without going out of bounds.\n */\nfunction canReposition(anchorPosition: DOMRect, overlayPosition: DOMRect, to: Placement) {\n\tlet xOK = false,\n\t\tyOK = false\n\n\tswitch (to) {\n\t\tcase 'top':\n\t\t\txOK = isHorizontalPositionValid(anchorPosition, overlayPosition)\n\t\t\tyOK = anchorPosition.top > overlayPosition.height\n\t\t\tbreak\n\t\tcase 'bottom':\n\t\t\txOK = isHorizontalPositionValid(anchorPosition, overlayPosition)\n\t\t\tyOK =\n\t\t\t\twindow.innerHeight - anchorPosition.top - anchorPosition.height >\n\t\t\t\toverlayPosition.height\n\t\t\tbreak\n\t\tcase 'left':\n\t\t\txOK = anchorPosition.left > overlayPosition.width\n\t\t\tyOK = isVerticalPositionValid(anchorPosition, overlayPosition)\n\t\t\tbreak\n\t\tcase 'right':\n\t\t\txOK =\n\t\t\t\twindow.innerWidth - anchorPosition.left - anchorPosition.width >\n\t\t\t\toverlayPosition.width\n\t\t\tyOK = isVerticalPositionValid(anchorPosition, overlayPosition)\n\t\t\tbreak\n\t\tdefault:\n\t\t\tbreak\n\t}\n\n\treturn xOK && yOK\n}\n\n/**\n * Determines if the overlay can be positioned within the viewport vertically.\n */\nfunction isVerticalPositionValid(anchorPosition: DOMRect, overlayPosition: DOMRect) {\n\treturn (\n\t\twindow.innerHeight - anchorPosition.top - anchorPosition.height / 2 >\n\t\t\toverlayPosition.height / 2 &&\n\t\tanchorPosition.top + anchorPosition.height / 2 > overlayPosition.height / 2\n\t)\n}\n\n/**\n * Determines if the overlay can be positioned within the viewport horizontally.\n */\nfunction isHorizontalPositionValid(anchorPosition: DOMRect, overlayPosition: DOMRect) {\n\treturn (\n\t\twindow.innerWidth - anchorPosition.left - anchorPosition.width / 2 >\n\t\t\toverlayPosition.width / 2 &&\n\t\tanchorPosition.left + anchorPosition.width / 2 > overlayPosition.width / 2\n\t)\n}\n\n/**\n * Determines the optional fallback position assuming the current is not available.\n */\nfunction getOptimalFallbackPosition(\n\tanchorPosition: DOMRect,\n\toverlayPosition: DOMRect,\n\tcurrent: Placement\n) {\n\t// Fallback positions ordered by optimal preference.\n\tconst fallbackOrder: Record<string, Placement[]> = {\n\t\ttop: ['bottom', 'left', 'right'],\n\t\tbottom: ['top', 'left', 'right'],\n\t\tleft: ['right', 'top', 'bottom'],\n\t\tright: ['left', 'top', 'bottom']\n\t}\n\n\tfor (const position of fallbackOrder[current])\n\t\tif (canReposition(anchorPosition, overlayPosition, position)) return position\n\n\t// If none of the fallback positions are within bounds,\n\t// return the current position\n\t// TODO: return the position that is \"less out of bounds\"\n\t// when none of the fallback positions are optimal\n\treturn current\n}\n","import { ComponentPublicInstance } from 'vue'\n\nexport type Selector = string | Element | ComponentPublicInstance\n\n/**\n * Gets a DOM element based on the provided selector.\n */\nexport function getElement(selector: Selector): Element | null {\n\tif (typeof selector === 'string')\n\t\t// Selector\n\t\treturn document.querySelector(selector)\n\telse if (selector && '$el' in selector)\n\t\t// Component (ref)\n\t\treturn selector.$el\n\n\t// HTMLElement | Element\n\treturn selector\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, Teleport as _Teleport, createBlock as _createBlock, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-overlay__arrow\"\n}\n\nimport { Appearance, Placement, Trigger, computePosition } from '@/composables/overlay'\n\n\t// Utils\n\timport { Selector, getElement } from '@/utils/getElement'\n\timport { Ref, computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QOverlay',\n props: {\n modelValue: { type: Boolean },\n anchor: {},\n appearance: { default: 'regular' },\n arrow: { type: Boolean, default: false },\n attach: { default: 'body' },\n contentClasses: { default: () => [] },\n delay: { default: 500 },\n disabled: { type: Boolean },\n offset: { default: 8 },\n placement: { default: 'right' },\n spy: { type: Boolean, default: false },\n transition: { default: 'fade' },\n trigger: { default: 'click' },\n width: { default: 'auto' }\n },\n emits: [\"enter\", \"leave\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\t\n\n\t\n\n\tconst classes = computed(() => {\n\t\treturn [\n\t\t\t'q-overlay',\n\t\t\t`q-overlay--${state.placement}`,\n\t\t\t{ 'q-overlay--inverted': props.appearance === 'inverted' },\n\t\t\t...props.contentClasses\n\t\t]\n\t})\n\n\tconst state = reactive({\n\t\tvisible: props.modelValue,\n\t\tanimating: false,\n\t\ttop: 0,\n\t\tleft: 0,\n\t\twidth: 0 as number | undefined,\n\t\tplacement: props.placement\n\t})\n\n\tconst visible = computed(() => state.visible && !props.disabled)\n\twatch(\n\t\t() => props.modelValue,\n\t\t() => (state.visible = props.modelValue)\n\t)\n\twatch(\n\t\t() => state.visible,\n\t\t() => (state.animating = true)\n\t)\n\n\tconst overlayProps = computed(() => {\n\t\tlet xOffset = 0,\n\t\t\tyOffset = 0\n\n\t\tswitch (state.placement) {\n\t\t\tcase 'top':\n\t\t\t\tyOffset = -(props.offset || 0)\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tyOffset = props.offset || 0\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\txOffset = -(props.offset || 0)\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\txOffset = props.offset || 0\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst _props: { top: string; left: string; width?: string } = {\n\t\t\ttop: `${state.top + yOffset}px`,\n\t\t\tleft: `${state.left + xOffset}px`\n\t\t}\n\n\t\tif (state.width !== undefined && ['top', 'bottom'].includes(state.placement))\n\t\t\t_props.width = `${state.width}px`\n\n\t\treturn _props\n\t})\n\n\t// Overlay template ref\n\tconst overlay: Ref<HTMLElement | null> = ref(null)\n\n\t/**\n\t * Reposition the overlay based on its size and the position of its target.\n\t */\n\tfunction reposition() {\n\t\tconst target: Element | null = getElement(props.anchor)\n\n\t\t// Both target and overlay must be visible in order to reposition\n\t\tif (target) {\n\t\t\tconst position = computePosition(target, overlay.value, props.placement, props.width)\n\n\t\t\tstate.left = position.x\n\t\t\tstate.top = position.y\n\t\t\tstate.width = position.width\n\t\t\tstate.placement = position.placement\n\t\t}\n\t}\n\n\t// Setup reaction to changes in the position of the target element\n\twatch([() => visible.value, () => props.placement], reposition)\n\n\t// Handle show/hide with the specified delay\n\tlet timeoutId: number | undefined = undefined\n\n\tfunction show() {\n\t\tconst _delay = props.trigger === 'hover' ? props.delay : 0\n\t\tif (!timeoutId) timeoutId = window.setTimeout(() => (state.visible = true), _delay)\n\t}\n\n\tfunction hide() {\n\t\tclearTimeout(timeoutId)\n\t\ttimeoutId = undefined\n\n\t\tstate.visible = false\n\t}\n\n\tfunction toggle() {\n\t\tvisible.value ? hide() : show()\n\t}\n\n\tlet animationTimeoutId: number | undefined = undefined\n\n\tfunction onLeave() {\n\t\twindow.clearTimeout(animationTimeoutId)\n\t\tanimationTimeoutId = window.setTimeout(() => (state.animating = false), 200)\n\n\t\temit('leave')\n\t}\n\n\tlet observer: MutationObserver | undefined = undefined\n\n\tfunction addTargetListeners() {\n\t\tnextTick(() => {\n\t\t\tconst target = getElement(props.anchor)\n\t\t\tif (!target) return\n\n\t\t\tswitch (props.trigger) {\n\t\t\t\tcase 'click':\n\t\t\t\t\ttarget.addEventListener('click', toggle)\n\t\t\t\t\tbreak\n\t\t\t\tcase 'hover':\n\t\t\t\t\ttarget.addEventListener('mouseenter', show)\n\t\t\t\t\ttarget.addEventListener('mouseleave', hide)\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t})\n\t}\n\n\tfunction addRepositionListeners() {\n\t\tnextTick(() => {\n\t\t\tconst target = getElement(props.anchor)\n\t\t\tif (!target) return\n\n\t\t\t// Handler to reposition overlay on window resize\n\t\t\twindow.addEventListener('scroll', reposition)\n\t\t\twindow.addEventListener('resize', reposition)\n\n\t\t\t// Observer to detect changes in the overlay target and reposition accordingly\n\t\t\tobserver = new MutationObserver(reposition)\n\t\t\tobserver.observe(target, {\n\t\t\t\tattributes: false,\n\t\t\t\tchildList: true,\n\t\t\t\tcharacterData: true,\n\t\t\t\tsubtree: true\n\t\t\t})\n\n\t\t\treposition()\n\t\t})\n\t}\n\n\tfunction removeRepositionListeners() {\n\t\twindow.removeEventListener('scroll', reposition)\n\t\twindow.removeEventListener('resize', reposition)\n\n\t\tobserver?.disconnect()\n\t}\n\n\tlet autoUpdateTimeoutId: number | undefined = undefined\n\n\tfunction autoUpdate() {\n\t\t// Spy\n\t\tconst target: Element | null = getElement(props.anchor)\n\n\t\tif (target) {\n\t\t\treposition()\n\n\t\t\t// Schedule next spy\n\t\t\tautoUpdateTimeoutId = window.setTimeout(autoUpdate, 100)\n\t\t} else {\n\t\t\t// Target was destroyed,\n\t\t\t// hide and destroy overlay as well\n\t\t\thide()\n\t\t}\n\t}\n\n\tfunction init() {\n\t\taddRepositionListeners()\n\n\t\tif (props.spy) autoUpdate()\n\t}\n\n\tfunction destroy() {\n\t\tremoveRepositionListeners()\n\n\t\tif (props.spy) {\n\t\t\tclearTimeout(autoUpdateTimeoutId)\n\t\t\tautoUpdateTimeoutId = undefined\n\t\t}\n\t}\n\n\tonBeforeUnmount(destroy)\n\n\tonMounted(reposition)\n\n\twatch(\n\t\t() => props.disabled,\n\t\t(isDisabled) => {\n\t\t\tif (!isDisabled) addTargetListeners()\n\t\t},\n\t\t{ immediate: true }\n\t)\n\n\twatch(\n\t\t() => visible.value,\n\t\t(isVisible) => {\n\t\t\tisVisible ? init() : destroy()\n\t\t},\n\t\t{ immediate: true }\n\t)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _renderSlot(_ctx.$slots, \"trigger\", { open: visible.value }),\n (visible.value || state.animating)\n ? (_openBlock(), _createBlock(_Teleport, {\n key: 0,\n disabled: !props.attach,\n to: props.attach\n }, [\n _createVNode(_Transition, {\n name: props.transition,\n appear: \"\",\n onEnter: _cache[0] || (_cache[0] = ($event: any) => (emit('enter'))),\n onLeave: onLeave\n }, {\n default: _withCtx(() => [\n (visible.value)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(classes.value),\n style: _normalizeStyle(overlayProps.value)\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['q-overlay__content']),\n ref_key: \"overlay\",\n ref: overlay\n }, [\n (props.arrow)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\")\n ], 512)\n ], 6))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"name\"])\n ], 8, [\"disabled\", \"to\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","// Components\nimport _QOverlay from './QOverlay.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QOverlay = setupPropsProxy(_QOverlay) as typeof _QOverlay\n\n// Export components\nexport { QOverlay }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, renderSlot as _renderSlot, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-popover__header\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"q-popover__body\"\n}\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = { key: 1 }\n\nimport { Placement } from '@/composables/overlay'\n\n\t// Components\n\timport { QOverlay } from '@/components/QOverlay'\n\n\t// Utils\n\timport { Selector } from '@/utils/getElement'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QPopover',\n props: {\n modelValue: { type: Boolean },\n anchor: {},\n arrow: { type: Boolean, default: true },\n attach: { default: 'body' },\n disabled: { type: Boolean },\n html: { type: Boolean, default: true },\n placement: { default: 'right' },\n spy: { type: Boolean, default: true },\n text: {},\n title: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\t\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QOverlay), {\n \"model-value\": props.modelValue,\n trigger: \"click\",\n anchor: props.anchor,\n arrow: props.arrow,\n attach: props.attach,\n \"content-classes\": ['q-popover'],\n disabled: props.disabled,\n placement: props.placement,\n spy: props.spy\n }, {\n default: _withCtx(() => [\n (props.title || _ctx.$slots.header)\n ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_1, [\n _createTextVNode(_toDisplayString(props.title) + \" \", 1),\n _renderSlot(_ctx.$slots, \"header\")\n ]))\n : _createCommentVNode(\"\", true),\n (props.text || _ctx.$slots.body)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (props.html)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n innerHTML: props.text\n }, null, 8, _hoisted_3))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(props.text), 1)),\n _renderSlot(_ctx.$slots, \"body\")\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"model-value\", \"anchor\", \"arrow\", \"attach\", \"disabled\", \"placement\", \"spy\"]))\n}\n}\n\n})","// Components\nimport _QPopover from './QPopover.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QPopover = setupPropsProxy(_QPopover) as typeof _QPopover\n\n// Export components\nexport { QPopover }\n","import { useAttrs as _useAttrs } from 'vue'\n\nexport type Attrs = {\n\tclass?: string[]\n}\n\nexport function useAttrs(): Attrs {\n\tconst _attrs = _useAttrs()\n\n\tconst attrs: Attrs = {}\n\n\tif (typeof _attrs.class === 'string') {\n\t\tattrs.class = _attrs.class.split(' ')\n\t} else if (Array.isArray(_attrs.class)) {\n\t\tattrs.class = _attrs.class\n\t} else {\n\t\tattrs.class = []\n\t}\n\n\treturn attrs\n}\n","import { DirectiveBinding, ObjectDirective } from 'vue'\n\ninterface HTMLElementWithClickOutsideEvent extends HTMLElement {\n\tclickOutsideEvent: (event: Event) => void\n}\n\nexport const clickOutside: ObjectDirective<HTMLElementWithClickOutsideEvent> = {\n\tmounted(el: HTMLElementWithClickOutsideEvent, binding: DirectiveBinding) {\n\t\tel.clickOutsideEvent = function (event: Event) {\n\t\t\tconst target = event.target as Element\n\n\t\t\tif (!binding.arg) {\n\t\t\t\tif (!(el === target || el.contains(target))) {\n\t\t\t\t\tbinding.value(event, el)\n\t\t\t\t}\n\t\t\t} else if (!(el === target || el.contains(target) || target.closest(binding.arg))) {\n\t\t\t\tbinding.value(event, el)\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener('click', el.clickOutsideEvent)\n\t},\n\tunmounted(el) {\n\t\tdocument.removeEventListener('click', el.clickOutsideEvent)\n\t}\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, createVNode as _createVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, mergeProps as _mergeProps, createBlock as _createBlock, normalizeClass as _normalizeClass, withCtx as _withCtx, createSlots as _createSlots, renderSlot as _renderSlot, withDirectives as _withDirectives, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-select__value\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"q-select__placeholder\"\n}\n\nimport { QIcon } from '@/components/QIcon'\n\timport { QInput } from '@/components/QInput'\n\timport { QList } from '@/components/QList'\n\timport { QOverlay } from '@/components/QOverlay'\n\timport { QSpinnerLoader } from '@/components/QSpinnerLoader'\n\n\t// Composables\n\timport { useAttrs } from '@/composables/attrs'\n\n\t// Directives\n\timport { clickOutside as vClickOutside } from '@/directives'\n\n\t// Types\n\timport type { Icon } from '@/components/QIcon'\n\timport type { QInputSize } from '@/components/QInput'\n\timport type { QListItemProps, QListItemGroupProps } from '@/components/QList'\n\timport type { Primitive } from '@/types/primitive'\n\n\t// Utils\n\timport { computed, ref, watch } from 'vue'\n\n\t\n\t// The default texts of the component.\n\tconst DEFAULT_TEXTS: Record<string, string> = {\n\t\tplaceholder: 'Choose...'\n\t}\n\n\t// The default icons of the component.\n\tconst DEFAULT_ICONS: Record<string, Icon> = {\n\t\tchevron: {\n\t\t\ticon: 'chevron-down'\n\t\t},\n\t\tclear: {\n\t\t\ticon: 'close'\n\t\t}\n\t}\n\ntype Texts = typeof DEFAULT_TEXTS\n\ttype Icons = typeof DEFAULT_ICONS\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QSelect',\n props: {\n modelValue: { type: [String, Number, Boolean, Symbol], default: undefined },\n clearable: { type: Boolean, default: false },\n readonly: { type: Boolean },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n icons: { default: () => DEFAULT_ICONS },\n items: {},\n groups: { default: () => [] },\n itemValue: { default: 'key' },\n itemLabel: { default: 'label' },\n size: { default: 'medium' },\n texts: { default: () => DEFAULT_TEXTS }\n },\n emits: [\"update:modelValue\", \"before-show\", \"before-hide\", \"show\", \"hide\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\t\n\n\tconst attrs = useAttrs()\n\n\tconst value = ref(props.modelValue)\n\tconst open = ref(false)\n\tconst typed = ref('')\n\n\t// Template refs\n\tconst inputRef = ref<InstanceType<typeof QInput> | null>(null)\n\tconst listRef = ref<InstanceType<typeof QList> | null>(null)\n\tconst contentRef = ref<HTMLElement | null>(null)\n\n\tconst selectedItem = computed(\n\t\t() => props.items?.find((item) => item[props.itemValue] === value.value)\n\t)\n\n\tconst displayValue = computed<string>(() =>\n\t\tselectedItem.value ? selectedItem.value[props.itemLabel] : ''\n\t)\n\n\tconst canClear = computed<boolean>(\n\t\t() => props.clearable && !props.readonly && !props.disabled && !props.loading\n\t)\n\n\tfunction onSelect(newVal: Primitive | undefined) {\n\t\tvalue.value = newVal\n\t\temit('update:modelValue', newVal)\n\t\thide()\n\t}\n\n\tfunction clear() {\n\t\tif (!canClear.value) return\n\n\t\tonSelect(undefined)\n\t}\n\n\tfunction onClick() {\n\t\tif (props.readonly || props.disabled) return\n\n\t\tif (open.value) hide()\n\t\telse show()\n\t}\n\n\tfunction onClickOutside(e: MouseEvent) {\n\t\t// Clicking on the main input should not trigger\n\t\t// v-click-outside action\n\t\tif (!inputRef.value?.$el.contains(e.target)) hide()\n\t}\n\n\tfunction show() {\n\t\tif (open.value) return\n\t\temit('before-show')\n\t\topen.value = true\n\t}\n\n\tfunction hide() {\n\t\tif (!open.value) return\n\t\temit('before-hide')\n\t\topen.value = false\n\t}\n\n\tlet timeoutId: number | undefined = undefined\n\n\tfunction onKeydown(e: KeyboardEvent) {\n\t\tif (!e.key || props.readonly || props.disabled) return\n\n\t\t// Clear any existing timeout\n\t\twindow.clearTimeout(timeoutId)\n\n\t\tif (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tif (['Enter', ' '].includes(e.key)) {\n\t\t\topen.value = true\n\t\t}\n\n\t\tif (['Escape', 'Tab'].includes(e.key)) {\n\t\t\tif (open.value) open.value = false\n\t\t\telse if (props.clearable && e.key === 'Escape') clear()\n\t\t}\n\n\t\tif (e.key === 'Delete' && props.clearable) {\n\t\t\tclear()\n\t\t}\n\n\t\tif (/^[a-z]$/i.test(e.key)) {\n\t\t\ttyped.value += e.key.toLowerCase()\n\n\t\t\t// Find the option that starts with the typed string\n\t\t\tfor (let i = 0; i < props.items.length; i++) {\n\t\t\t\tconst item = props.items[i]\n\t\t\t\tif (item[props.itemLabel].toLowerCase().startsWith(typed.value)) {\n\t\t\t\t\t// Select the matching option\n\t\t\t\t\tfocusItem(i)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Clear the typed string after a short delay\n\t\ttimeoutId = window.setTimeout(function () {\n\t\t\ttyped.value = ''\n\t\t}, 500)\n\t}\n\n\tfunction onOverlayEnter() {\n\t\tlistRef.value?.$el.focus()\n\t\temit('show')\n\t}\n\n\tfunction onOverlayLeave() {\n\t\tfocusMainInput()\n\t\temit('hide')\n\t}\n\n\tfunction focusMainInput() {\n\t\tinputRef.value?.$el.focus()\n\t}\n\n\tfunction focusItem(idx: number) {\n\t\tlistRef.value?.focusItem(idx)\n\t}\n\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => {\n\t\t\tvalue.value = newVal\n\t\t}\n\t)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_unref(QInput), {\n ref_key: \"inputRef\",\n ref: inputRef,\n role: \"combobox\",\n tabindex: \"0\",\n class: _normalizeClass([\n\t\t\t'q-select',\n\t\t\t{\n\t\t\t\t'q-select--readonly': props.readonly,\n\t\t\t\t'q-select--disabled': props.disabled,\n\t\t\t\t'q-select--expanded': open.value\n\t\t\t},\n\t\t\t..._unref(attrs).class\n\t\t]),\n readonly: \"\",\n disabled: props.disabled,\n \"aria-expanded\": open.value,\n \"aria-haspopup\": \"listbox\",\n size: props.size,\n onClick: onClick,\n onKeydown: _withModifiers(onKeydown, [\"stop\"])\n }, _createSlots({\n append: _withCtx(() => [\n (canClear.value && value.value)\n ? (_openBlock(), _createBlock(_unref(QIcon), _mergeProps({ key: 0 }, props.icons.clear, {\n class: \"q-select__clear\",\n onClick: _withModifiers(clear, [\"stop\",\"prevent\"])\n }), null, 16, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (!props.readonly && !props.disabled)\n ? (_openBlock(), _createBlock(_unref(QIcon), _mergeProps({ key: 1 }, props.icons.chevron, { class: \"q-select__chevron\" }), null, 16))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n (value.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(displayValue.value), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.texts.placeholder), 1))\n ]),\n _: 2\n }, [\n (selectedItem.value?.icon)\n ? {\n name: \"prepend\",\n fn: _withCtx(() => [\n _createVNode(_unref(QIcon), _normalizeProps(_guardReactiveProps(selectedItem.value?.icon)), null, 16)\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"class\", \"disabled\", \"aria-expanded\", \"size\", \"onKeydown\"]),\n _createVNode(_unref(QOverlay), {\n \"model-value\": open.value,\n spy: \"\",\n trigger: \"manual\",\n placement: \"bottom\",\n width: \"anchor\",\n offset: 2,\n anchor: inputRef.value?.$el,\n onEnter: onOverlayEnter,\n onLeave: onOverlayLeave\n }, {\n default: _withCtx(() => [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n ref_key: \"contentRef\",\n ref: contentRef,\n class: \"q-select__body\"\n }, [\n _renderSlot(_ctx.$slots, \"body.prepend\"),\n (props.loading)\n ? (_openBlock(), _createBlock(_unref(QSpinnerLoader), {\n key: 0,\n class: \"q-select__loader\",\n size: 24\n }))\n : (_openBlock(), _createBlock(_unref(QList), {\n key: 1,\n ref_key: \"listRef\",\n ref: listRef,\n class: \"q-select__items\",\n modelValue: value.value,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n onSelect\n ],\n items: props.items,\n groups: _ctx.groups,\n \"item-label\": props.itemLabel,\n \"item-value\": props.itemValue,\n onKeydown: _withModifiers(onKeydown, [\"stop\"])\n }, null, 8, [\"modelValue\", \"items\", \"groups\", \"item-label\", \"item-value\", \"onKeydown\"])),\n _renderSlot(_ctx.$slots, \"body.append\")\n ])), [\n [_unref(vClickOutside), onClickOutside]\n ])\n ]),\n _: 3\n }, 8, [\"model-value\", \"anchor\"])\n ], 64))\n}\n}\n\n})","// Components\nimport _QSelect from './QSelect.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QSelect = setupPropsProxy(_QSelect) as typeof _QSelect\n\n// Export components\nexport { QSelect }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\nconst _hoisted_2 = { key: 1 }\n\nimport { QOverlay } from '@/components/QOverlay'\n\n\t// Composables\n\timport { Appearance, Placement, Trigger } from '@/composables/overlay'\n\timport { Selector } from '@/utils/getElement'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QTooltip',\n props: {\n modelValue: { type: Boolean },\n anchor: {},\n appearance: { default: 'inverted' },\n arrow: { type: Boolean, default: true },\n attach: { default: 'body' },\n delay: { default: 500 },\n disabled: { type: Boolean },\n html: { type: Boolean, default: true },\n placement: { default: 'right' },\n text: {},\n trigger: { default: 'hover' }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QOverlay), {\n \"model-value\": props.modelValue,\n anchor: props.anchor,\n appearance: props.appearance,\n arrow: props.arrow,\n attach: props.attach,\n \"content-classes\": ['q-tooltip'],\n delay: props.delay,\n disabled: props.disabled,\n placement: props.placement,\n trigger: props.trigger\n }, {\n default: _withCtx(() => [\n (props.html)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n innerHTML: props.text\n }, null, 8, _hoisted_1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(props.text), 1))\n ]),\n _: 1\n }, 8, [\"model-value\", \"anchor\", \"appearance\", \"arrow\", \"attach\", \"delay\", \"disabled\", \"placement\", \"trigger\"]))\n}\n}\n\n})","// Components\nimport _QTooltip from './QTooltip.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QTooltip = setupPropsProxy(_QTooltip) as typeof _QTooltip\n\n// Export components\nexport { QTooltip }\n"],"names":["isEmpty","object","isObject","obj","merge","source","target","out","key","sourceProperty","targetProperty","DEFAULTS_SYMBOL","useDefaults","vm","getCurrentInstance","component","defaults","injectDefaults","computed","_a","provideDefaults","currentDefaults","providedDefaults","ref","newDefaults","provide","inject","defaultLightColorScheme","defaultDarkColorScheme","parseColor","color","r","g","b","lighten","rgb","amount","hsl","rgbToHsl","factor","hslToRgb","darken","colorToHex","max","min","h","s","l","d","q","p","hueToRgb","t","THEME_SYMBOL","useTheme","theme","installThemes","app","config","defaultTheme","defaultColorScheme","variable","hex","lightVariant","darkVariant","mergeColorSchemes","defaultThemeName","state","watch","name","activeTheme","generateRootStyle","userColorScheme","colors","themeNode","cssText","value","toProperty","createFramework","components","directives","globalDefaults","_hoisted_1","_createElementVNode","_hoisted_2","_sfc_main$g","_defineComponent","__props","props","loaderStyle","_ctx","_cache","_openBlock","_createElementBlock","_normalizeStyle","propIsDefined","vnode","prop","setupPropsProxy","setup","ctx","componentDefaults","_props","propValue","defaultValue","QSpinnerLoader","_QSpinnerLoader","_hoisted_3","_sfc_main$f","emit","isDisabled","onClick","event","classes","variant","size","_normalizeClass","_withModifiers","_createVNode","_unref","_createCommentVNode","_Fragment","_createTextVNode","_toDisplayString","_renderSlot","QButton","_QButton","_sfc_main$e","toRef","QButtonGroup","_QButtonGroup","_sfc_main$d","_active","newVal","active","toggle","option","_createBlock","_withCtx","_renderList","$event","QButtonToggle","_QButtonToggle","_sfc_main$c","QIconSvg","QIconFont","QIconImg","_resolveDynamicComponent","_sfc_main$b","libraryVariant","iconClass","iconStyle","_sfc_main$a","cache","InlineSvg","defineComponent","ctn","createElement","cprops","attrs","a","svgEl","setTitle","src","makePromiseState","svg","err","url","response","text","newValue","title","titleTags","titleEl","promise","isPending","result","v","e","_sfc_main$9","QIcon","_QIcon","_QIconFont","_QIconImg","_QIconSvg","_sfc_main$8","QInput","_QInput","QLineLoader","_QLineLoader","_sfc_main$6","__expose","listTag","groups","listRef","onItemSelect","onFocus","targetIdx","item","focusItem","onKeyDown","focus","direction","getAdjacentItemIdx","itemIdx","getFocusableChildren","nodes","getActiveItemIndex","items","idx","getGroupItems","group","QListItemGroup","QListItem","DEFAULT_ICONS","_sfc_main$5","onSelect","_normalizeProps","_mergeProps","counter","useUid","_sfc_main$4","id","QList","_QList","_QListItem","_QListItemGroup","computePosition","anchor","overlay","tentativePlacement","width","anchorPosition","left","top","overlayPosition","overlayWidth","overlayHeight","placement","canReposition","getOptimalFallbackPosition","position","to","xOK","yOK","isHorizontalPositionValid","isVerticalPositionValid","current","fallbackOrder","getElement","selector","_sfc_main$3","reactive","visible","overlayProps","xOffset","yOffset","reposition","timeoutId","show","_delay","hide","animationTimeoutId","onLeave","observer","addTargetListeners","nextTick","addRepositionListeners","removeRepositionListeners","autoUpdateTimeoutId","autoUpdate","init","destroy","onBeforeUnmount","onMounted","isVisible","_Teleport","_Transition","QOverlay","_QOverlay","_hoisted_4","_sfc_main$2","QPopover","_QPopover","useAttrs","_attrs","_useAttrs","clickOutside","el","binding","DEFAULT_TEXTS","_sfc_main$1","open","typed","inputRef","contentRef","selectedItem","displayValue","canClear","clear","onClickOutside","onKeydown","i","onOverlayEnter","onOverlayLeave","focusMainInput","_createSlots","_guardReactiveProps","_b","_withDirectives","vClickOutside","QSelect","_QSelect","_sfc_main","QTooltip","_QTooltip"],"mappings":"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"}
1
+ {"version":3,"file":"ui.esm.js","sources":["../src/utils/isEmpty.ts","../src/utils/isObject.ts","../src/utils/merge.ts","../src/composables/defaults.ts","../src/templates/theme.ts","../src/utils/color.ts","../src/composables/theme.ts","../src/framework.ts","../src/components/QSpinnerLoader/QSpinnerLoader.vue?vue&type=script&setup=true&lang.ts","../src/utils/setupPropsProxy.ts","../src/components/QSpinnerLoader/index.ts","../src/components/QButton/QButton.vue?vue&type=script&setup=true&lang.ts","../src/components/QButton/index.ts","../src/components/QButtonGroup/QButtonGroup.vue?vue&type=script&setup=true&lang.ts","../src/components/QButtonGroup/index.ts","../src/components/QButtonToggle/QButtonToggle.vue?vue&type=script&setup=true&lang.ts","../src/components/QButtonToggle/index.ts","../src/composables/uid.ts","../src/components/QField/QField.vue?vue&type=script&setup=true&lang.ts","../src/components/QField/index.ts","../src/components/QIcon/QIcon.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/QIconFont.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/QIconImg.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/InlineSvg.js","../src/components/QIcon/QIconSvg.vue?vue&type=script&setup=true&lang.ts","../src/components/QIcon/index.ts","../src/components/QLineLoader/index.ts","../src/components/QList/QList.vue?vue&type=script&setup=true&lang.ts","../src/components/QList/QListItem.vue?vue&type=script&setup=true&lang.ts","../src/components/QList/QListItemGroup.vue?vue&type=script&setup=true&lang.ts","../src/components/QList/index.ts","../src/composables/overlay.ts","../src/utils/getElement.ts","../src/components/QOverlay/QOverlay.vue?vue&type=script&setup=true&lang.ts","../src/components/QOverlay/index.ts","../src/components/QPopover/QPopover.vue?vue&type=script&setup=true&lang.ts","../src/components/QPopover/index.ts","../src/composables/attrs.ts","../src/directives/click-outside/index.ts","../src/components/QSelect/QSelect.vue?vue&type=script&setup=true&lang.ts","../src/components/QSelect/index.ts","../src/components/QTextField/QTextField.vue?vue&type=script&setup=true&lang.ts","../src/components/QTextField/index.ts","../src/components/QTooltip/QTooltip.vue?vue&type=script&setup=true&lang.ts","../src/components/QTooltip/index.ts"],"sourcesContent":["export function isEmpty(object: unknown): boolean {\n\t// Check if the object is null or undefined\n\tif (object === null || object === undefined) {\n\t\treturn true\n\t}\n\n\t// Check if the object is a string or an array and if it is empty\n\tif (typeof object === 'string' || Array.isArray(object)) {\n\t\treturn object.length === 0\n\t}\n\n\t// Check if the object is an object and if it has no own properties\n\tif (typeof object === 'object') {\n\t\treturn Object.keys(object as Record<string, unknown>).length === 0\n\t}\n\n\t// If the object is not null, a string, an array, or an object, it's not empty\n\treturn false\n}\n","export function isObject(obj: unknown): obj is object {\n\treturn obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n","import { isObject } from './isObject'\n\nexport function merge(source: Record<string, unknown> = {}, target: Record<string, unknown> = {}) {\n\tconst out: Record<string, unknown> = {}\n\n\tfor (const key in source) {\n\t\tout[key] = source[key]\n\t}\n\n\tfor (const key in target) {\n\t\tconst sourceProperty = source[key]\n\t\tconst targetProperty = target[key]\n\n\t\t// Only continue deep merging if\n\t\t// both properties are objects\n\t\tif (isObject(sourceProperty) && isObject(targetProperty)) {\n\t\t\tout[key] = merge(\n\t\t\t\tsourceProperty as Record<string, unknown>,\n\t\t\t\ttargetProperty as Record<string, unknown>\n\t\t\t)\n\n\t\t\tcontinue\n\t\t}\n\n\t\tout[key] = targetProperty\n\t}\n\n\treturn out\n}\n","// Utils\nimport { isEmpty } from '@/utils/isEmpty'\nimport { merge } from '@/utils/merge'\nimport { ComputedRef, computed, getCurrentInstance, inject, provide, ref } from 'vue'\n\nexport const DEFAULTS_SYMBOL = 'q-defaults'\n\nexport type Defaults = Record<string | symbol, ComponentDefaults>\n\nexport type ComponentDefaults = Record<string | symbol, unknown>\n\nexport function useDefaults(): ComputedRef<ComponentDefaults | undefined> {\n\tconst vm = getCurrentInstance()\n\n\tif (!vm)\n\t\tthrow new Error('[Quidgest UI] useDefaults must be called from inside a setup function')\n\n\tconst component = vm.type.name ?? vm.type.__name\n\n\tif (!component) throw new Error('[Quidgest UI] Could not determine component name')\n\n\tconst defaults = injectDefaults()\n\treturn computed(() => defaults.value?.[component])\n}\n\n/**\n * Function to provide or update default values using the Vue.js `provide` function.\n * It takes a set of default values, merges them with the existing defaults (if any),\n * and then provides the merged defaults using the specified symbol.\n *\n * @param {Defaults} defaults - The default values to be provided or updated.\n */\nexport function provideDefaults(defaults: Defaults): void {\n\tif (isEmpty(defaults)) return\n\n\tconst currentDefaults = injectDefaults()\n\tconst providedDefaults = ref(defaults)\n\n\tconst newDefaults = computed(() => {\n\t\tif (isEmpty(providedDefaults.value)) return currentDefaults.value\n\t\treturn merge(currentDefaults.value, providedDefaults.value)\n\t})\n\n\tprovide(DEFAULTS_SYMBOL, newDefaults)\n}\n\n/**\n * Function to inject default values using the Vue.js `inject` function.\n * It retrieves the default values from the specified symbol and ensures\n * that the returned value is of type `ComputedRef<Defaults>`.\n *\n * @throws {Error} Throws an error if the defaults instance is not found.\n *\n * @returns {ComputedRef<Defaults>} A computed reference to the default values.\n */\nexport function injectDefaults(): ComputedRef<Defaults> {\n\tconst defaults = inject(DEFAULTS_SYMBOL, undefined) as ComputedRef<Defaults> | undefined\n\n\tif (!defaults) throw new Error('[Quidgest UI] Could not find defaults instance')\n\n\treturn defaults\n}\n","import { ColorScheme } from '@/utils/color'\n\nexport const defaultLightColorScheme: ColorScheme = {\n\tprimary: '#00a1f8',\n\tprimaryLight: '#e5f6ff',\n\tprimaryDark: '#0079ba',\n\tsecondary: '#11294d',\n\tsecondaryLight: '#707f94',\n\tsecondaryDark: '#040a13',\n\thighlight: '#DF640A',\n\tbackground: '#fff',\n\tcontainer: '#fff',\n\tinfo: '#17a2b8',\n\tinfoLight: '#bceff7',\n\tinfoDark: '#11798a',\n\tsuccess: '#28a745',\n\tsuccessLight: '#c2f0cd',\n\tsuccessDark: '#1e7d34',\n\twarning: '#ffa900',\n\twarningLight: '#ffeabf',\n\twarningDark: '#bf7f00',\n\tdanger: '#b71c1c',\n\tdangerLight: '#f5bebe',\n\tdangerDark: '#891515',\n\tonBackground: '#1e2436',\n\tonPrimary: '#fff',\n\tonSecondary: '#fff',\n\tonHighlight: '#fff',\n\tonSuccess: '#fff',\n\tonWarning: '#fff',\n\tonDanger: '#fff',\n\tonInfo: '#fff'\n}\n\nexport const defaultDarkColorScheme: ColorScheme = {\n\tprimary: '#018BD2',\n\tprimaryLight: '#cce7f6',\n\tprimaryDark: '#006fac',\n\tsecondary: '#11294d',\n\tsecondaryLight: '#707f94',\n\tsecondaryDark: '#040a13',\n\thighlight: '#FFAD54',\n\tbackground: '#1e2436',\n\tcontainer: '#21323d',\n\tinfo: '#3DB6D1',\n\tinfoLight: '#5aa2bc',\n\tinfoDark: '#0c616a',\n\tsuccess: '#00C781',\n\tsuccessLight: '#6bae78',\n\tsuccessDark: '#0f3b16',\n\twarning: '#FFD860',\n\twarningLight: '#ffd07a',\n\twarningDark: '#cc8000',\n\tdanger: '#FC4B6C',\n\tdangerLight: '#FF7A88',\n\tdangerDark: '#B21929',\n\tonBackground: '#fff',\n\tonPrimary: '#fff',\n\tonSecondary: '#fff',\n\tonHighlight: '#fff',\n\tonSuccess: '#fff',\n\tonWarning: '#fff',\n\tonDanger: '#fff',\n\tonInfo: '#fff'\n}\n","export type ColorScheme = {\n\t// Brand\n\tprimary: string\n\tprimaryLight: string\n\tprimaryDark: string\n\tonPrimary: string\n\n\tsecondary: string\n\tsecondaryLight: string\n\tsecondaryDark: string\n\tonSecondary: string\n\n\thighlight: string\n\tonHighlight: string\n\n\t// Surface\n\tbackground: string\n\tonBackground: string\n\n\tcontainer: string\n\n\t// Semantic\n\tinfo: string\n\tinfoLight: string\n\tinfoDark: string\n\tonInfo: string\n\n\tsuccess: string\n\tsuccessLight: string\n\tsuccessDark: string\n\tonSuccess: string\n\n\twarning: string\n\twarningLight: string\n\twarningDark: string\n\tonWarning: string\n\n\tdanger: string\n\tdangerLight: string\n\tdangerDark: string\n\tonDanger: string\n}\n\n/**\n * Represents a color in RGB space.\n */\nexport type RGB = {\n\tr: number\n\tg: number\n\tb: number\n}\n\n/**\n * Represents a color in HSL space.\n */\nexport type HSL = {\n\th: number\n\ts: number\n\tl: number\n}\n\n/**\n * Parses a color from a hex string.\n * @param color A hex string representing the color, e.g., \"#aabbcc\".\n * @returns A `RGB` object representing the parsed color.\n */\nexport function parseColor(color: string): RGB {\n\tif (!/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/.test(color)) {\n\t\tthrow new Error('Invalid color format')\n\t}\n\n\t// Support short format (e.g., #abc)\n\tif (color.length === 4) {\n\t\tcolor = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]\n\t}\n\n\tconst r = parseInt(color.slice(1, 3), 16)\n\tconst g = parseInt(color.slice(3, 5), 16)\n\tconst b = parseInt(color.slice(5, 7), 16)\n\n\treturn { r, g, b }\n}\n\n/**\n * Lightens a color by a specified amount.\n * @param rgb The color to lighten.\n * @param amount The amount to lighten the color by, in the range [0, 100].\n * @returns The lightened color.\n */\nexport function lighten(rgb: RGB, amount: number): RGB {\n\t// Check if the amount is within the required range\n\tif (amount < 0 || amount > 100) {\n\t\tthrow new Error('Amount must be in the range [0, 100]')\n\t} else if (amount === 0) {\n\t\treturn rgb\n\t}\n\n\tconst hsl = rgbToHsl(rgb)\n\tconst factor = amount / 100\n\thsl.l = hsl.l + factor * (100 - hsl.l)\n\treturn hslToRgb(hsl)\n}\n\n/**\n * Darkens a color by a specified amount.\n * @param rgb The color to darken.\n * @param amount The amount to darken the color by, in the range [0, 100].\n * @returns The darkened color.\n */\nexport function darken(rgb: RGB, amount: number): RGB {\n\t// Check if the amount is within the required range\n\tif (amount < 0 || amount > 100) {\n\t\tthrow new Error('Amount must be in the range [0, 100]')\n\t} else if (amount === 0) {\n\t\treturn rgb\n\t}\n\n\tconst hsl = rgbToHsl(rgb)\n\tconst factor = amount / 100\n\thsl.l = hsl.l - factor * hsl.l\n\treturn hslToRgb(hsl)\n}\n\n/**\n * Converts a `Color` object to a hex string.\n * @param rgb The color to convert.\n * @returns A hex string representing the color.\n */\nexport function colorToHex(rgb: RGB): string {\n\tconst r = rgb.r.toString(16).padStart(2, '0')\n\tconst g = rgb.g.toString(16).padStart(2, '0')\n\tconst b = rgb.b.toString(16).padStart(2, '0')\n\n\treturn `#${r}${g}${b}`\n}\n\n/**\n * Converts a color from RGB to HSL space.\n * @param color The color to convert.\n * @returns An object representing the color in HSL space.\n */\nfunction rgbToHsl(rgb: RGB): HSL {\n\tconst r = rgb.r / 255\n\tconst g = rgb.g / 255\n\tconst b = rgb.b / 255\n\n\tconst max = Math.max(r, g, b)\n\tconst min = Math.min(r, g, b)\n\tlet h = 0,\n\t\ts\n\tconst l = (max + min) / 2\n\n\tif (max === min) {\n\t\th = s = 0 // achromatic\n\t} else {\n\t\tconst d = max - min\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\n\t\tswitch (max) {\n\t\t\tcase r:\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0)\n\t\t\t\tbreak\n\t\t\tcase g:\n\t\t\t\th = (b - r) / d + 2\n\t\t\t\tbreak\n\t\t\tcase b:\n\t\t\t\th = (r - g) / d + 4\n\t\t\t\tbreak\n\t\t}\n\n\t\th /= 6\n\t}\n\n\treturn {\n\t\th: Math.round(h * 360),\n\t\ts: Math.round(s * 100),\n\t\tl: Math.round(l * 100)\n\t}\n}\n\n/**\n * Converts a color from HSL to RGB space.\n * @param h The hue component of the color, in the range [0, 1].\n * @param s The saturation component of the color, in the range [0, 1].\n * @param l The lightness component of the color, in the range [0, 1].\n * @returns A `RGB` object representing the color in RGB space.\n */\nfunction hslToRgb(hsl: HSL): RGB {\n\tconst h = hsl.h / 360\n\tconst s = hsl.s / 100\n\tconst l = hsl.l / 100\n\n\tlet r, g, b\n\n\tif (s === 0) {\n\t\tr = g = b = l // achromatic\n\t} else {\n\t\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s\n\t\tconst p = 2 * l - q\n\n\t\tr = hueToRgb(p, q, h + 1 / 3)\n\t\tg = hueToRgb(p, q, h)\n\t\tb = hueToRgb(p, q, h - 1 / 3)\n\t}\n\n\treturn {\n\t\tr: Math.round(r * 255),\n\t\tg: Math.round(g * 255),\n\t\tb: Math.round(b * 255)\n\t}\n}\n\n/**\n * Helper function to convert a hue value to a corresponding RGB value.\n * @param p The first RGB component.\n * @param q The second RGB component.\n * @param t The hue value.\n * @returns The corresponding RGB value.\n */\nfunction hueToRgb(p: number, q: number, t: number): number {\n\tif (t < 0) t += 1\n\tif (t > 1) t -= 1\n\tif (t < 1 / 6) return p + (q - p) * 6 * t\n\tif (t < 1 / 2) return q\n\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\n\treturn p\n}\n","// Templates\nimport { defaultDarkColorScheme, defaultLightColorScheme } from '@/templates/theme'\n\n// Types\nimport type { ColorScheme, RGB } from '@/utils/color'\nimport type { App, Ref } from 'vue'\n\n// Utils\nimport { colorToHex, darken, lighten, parseColor } from '@/utils/color'\nimport { inject, ref, watch } from 'vue'\n\nexport const THEME_SYMBOL = 'q-theme'\n\nexport type ThemeMode = 'light' | 'dark'\n\nexport type AppThemes = {\n\tdefaultTheme: string\n\tthemes: Array<{\n\t\tname: string\n\t\tmode: ThemeMode\n\t\tcolors?: Partial<ColorScheme>\n\t}>\n}\n\nexport type ThemeDefinition = {\n\tname: string\n\tmode: ThemeMode\n\tcolors: ColorScheme\n}\n\nexport type ThemeConfiguration = {\n\tactiveTheme: string\n\tthemes: ThemeDefinition[]\n}\n\nexport function useTheme(): Ref<ThemeConfiguration> {\n\tconst theme: Ref<ThemeConfiguration> | undefined = inject(THEME_SYMBOL)\n\n\tif (!theme) throw new Error('[Quidgest UI] Could not find theme instance')\n\n\treturn theme\n}\n\nexport function installThemes(app: App, config?: AppThemes) {\n\tlet defaultTheme: ThemeDefinition | null = null\n\n\tif (!config) {\n\t\t// No theme definition was provided\n\t\t// Configure default light theme\n\t\tconst defaultThemeName = 'default'\n\n\t\tdefaultTheme = {\n\t\t\tname: defaultThemeName,\n\t\t\tmode: 'light',\n\t\t\tcolors: defaultLightColorScheme\n\t\t}\n\n\t\tconfig = {\n\t\t\tdefaultTheme: defaultThemeName,\n\t\t\tthemes: [defaultTheme]\n\t\t}\n\t} else {\n\t\tfor (const theme of config.themes) {\n\t\t\t// Pick the corresponding default color scheme\n\t\t\tconst defaultColorScheme =\n\t\t\t\ttheme.mode === 'light' ? defaultLightColorScheme : defaultDarkColorScheme\n\n\t\t\tif (theme.colors) {\n\t\t\t\tlet variable: keyof ColorScheme\n\n\t\t\t\tfor (variable in theme.colors) {\n\t\t\t\t\tconst hex = theme.colors[variable]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\thex &&\n\t\t\t\t\t\t!variable.startsWith('on') &&\n\t\t\t\t\t\t!variable.endsWith('Light') &&\n\t\t\t\t\t\t!variable.endsWith('Dark')\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst color: RGB = parseColor(hex)\n\t\t\t\t\t\tconst lightVariant = `${variable}Light` as keyof ColorScheme\n\t\t\t\t\t\tconst darkVariant = `${variable}Dark` as keyof ColorScheme\n\t\t\t\t\t\t// TODO: compute contrast color\n\n\t\t\t\t\t\tif (!(lightVariant in theme.colors))\n\t\t\t\t\t\t\ttheme.colors[lightVariant] = colorToHex(lighten(color, 85))\n\n\t\t\t\t\t\tif (!(darkVariant in theme.colors))\n\t\t\t\t\t\t\ttheme.colors[darkVariant] = colorToHex(darken(color, 25))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Theme color scheme is potentially partial\n\t\t\t// Merge with default appropriate color scheme\n\t\t\ttheme.colors = mergeColorSchemes(defaultColorScheme, theme.colors)\n\n\t\t\tif (theme.name === config.defaultTheme) defaultTheme = theme as ThemeDefinition\n\t\t}\n\t}\n\n\t// At this point, if the default theme is null,\n\t// there's got to be an issue with the config that was provided\n\tif (defaultTheme) {\n\t\tconst state: Ref<ThemeConfiguration> = ref({\n\t\t\tactiveTheme: defaultTheme.name,\n\t\t\tthemes: config.themes as ThemeDefinition[]\n\t\t})\n\n\t\t// Automatically regenerate root style\n\t\t// on active theme change\n\t\twatch(\n\t\t\t() => state.value.activeTheme,\n\t\t\t(name) => {\n\t\t\t\tconst activeTheme = state.value.themes.find((theme) => theme.name === name)\n\t\t\t\tif (activeTheme) generateRootStyle(activeTheme.colors)\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t)\n\n\t\t// Provide theme configuration\n\t\tapp.provide(THEME_SYMBOL, state)\n\t}\n}\n\nexport function mergeColorSchemes(\n\tdefaultColorScheme: ColorScheme,\n\tuserColorScheme: Partial<ColorScheme> = {}\n) {\n\treturn { ...defaultColorScheme, ...userColorScheme }\n}\n\nexport function generateRootStyle(colors: Partial<ColorScheme>) {\n\tlet themeNode: HTMLStyleElement | null = document.getElementById(\n\t\tTHEME_SYMBOL\n\t) as HTMLStyleElement\n\n\tif (!themeNode) {\n\t\tthemeNode = document.createElement('style')\n\t\tthemeNode.type = 'text/css'\n\t\tthemeNode.id = THEME_SYMBOL\n\t\tdocument.head.appendChild(themeNode)\n\t}\n\n\t// Generate theme dynamic CSS\n\tlet cssText = ':root {\\n'\n\tlet color: keyof ColorScheme\n\tfor (color in colors) {\n\t\tconst value = colors[color]\n\n\t\tif (value) {\n\t\t\t// Generate HEX\n\t\t\tcssText += ` ${toProperty(color)}: ${value};\\n`\n\n\t\t\t// Generate RGB, useful to combine with alpha channel\n\t\t\tconst rgb = parseColor(value)\n\t\t\tcssText += ` ${toProperty(color)}-rgb: ${rgb.r} ${rgb.g} ${rgb.b};\\n`\n\t\t}\n\t}\n\tcssText += '}'\n\n\t// Set the CSS content for the style element\n\tthemeNode.textContent = cssText\n}\n\nexport function toProperty(color: string) {\n\tif (!color) return ''\n\n\treturn `--q-theme-${color\n\t\t.replace(/([A-Z])/g, '-$1')\n\t\t.replace(/^-/, '')\n\t\t.toLowerCase()}`\n}\n","// Composables\nimport { DEFAULTS_SYMBOL, Defaults } from '@/composables/defaults'\nimport { AppThemes, installThemes } from '@/composables/theme'\n\n// Types\nimport type { App, Component, Directive, Plugin } from 'vue'\n\n// Utils\nimport { ref } from 'vue'\n\nexport type FrameworkConfig = {\n\tcomponents?: Record<string, Component>\n\tdirectives?: Record<string, Directive>\n\tthemes?: AppThemes\n\tdefaults?: Defaults\n}\n\nexport function createFramework(config: FrameworkConfig = {}): Plugin {\n\tconst install = (app: App) => {\n\t\t// Install components\n\t\tconst components = config.components || {}\n\t\tfor (const name in components) {\n\t\t\tapp.component(name, components[name])\n\t\t}\n\n\t\t// Install directives\n\t\tconst directives = config.directives || {}\n\t\tfor (const name in directives) {\n\t\t\tapp.directive(name, directives[name])\n\t\t}\n\n\t\t// Setup global defaults\n\t\tconst globalDefaults = config.defaults || {}\n\t\tapp.provide(DEFAULTS_SYMBOL, ref(globalDefaults))\n\n\t\t// Install themes\n\t\tinstallThemes(app, config.themes)\n\t}\n\n\treturn { install }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"svg\", { viewBox: \"25 25 50 50\" }, [\n /*#__PURE__*/_createElementVNode(\"circle\", {\n class: \"path\",\n cx: \"50\",\n cy: \"50\",\n r: \"20\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"5\",\n \"stroke-miterlimit\": \"10\"\n })\n], -1)\nconst _hoisted_2 = [\n _hoisted_1\n]\n\nimport { computed } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QSpinnerLoader',\n props: {\n size: { default: 48 }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tconst loaderStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== 48 ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"q-spinner-loader\",\n style: _normalizeStyle(loaderStyle.value)\n }, _hoisted_2, 4))\n}\n}\n\n})","// Composables\nimport { useDefaults } from '@/composables/defaults'\n\n// Types\nimport type { SetupContext, VNode } from 'vue'\n\n// Utils\nimport { getCurrentInstance } from 'vue'\nimport { isEmpty } from './isEmpty'\n\nexport function propIsDefined(vnode: VNode, prop: string) {\n\treturn typeof vnode.props?.[prop] !== 'undefined'\n}\n\ntype LooseRequired<T> = {\n\t[P in keyof (T & Required<T>)]: T[P]\n}\n\ntype Component<Props> = {\n\tsetup?: (\n\t\tthis: void,\n\t\tprops: LooseRequired<Readonly<Props>>,\n\t\tctx: SetupContext<unknown>\n\t) => unknown\n}\n\nexport function setupPropsProxy<Props>(component: Component<Props>): Component<Props> {\n\tconst setup = component.setup\n\n\tif (!setup) return component\n\n\tcomponent.setup = (props, ctx) => {\n\t\tconst componentDefaults = useDefaults()\n\n\t\tif (isEmpty(componentDefaults.value)) return setup(props, ctx)\n\n\t\tconst vm = getCurrentInstance()\n\n\t\tif (vm === null) return setup(props, ctx)\n\n\t\tconst _props = new Proxy(props, {\n\t\t\tget(target, prop) {\n\t\t\t\tconst propValue = Reflect.get(target, prop)\n\t\t\t\tconst defaultValue = componentDefaults.value?.[prop]\n\n\t\t\t\tif (typeof prop === 'string' && !propIsDefined(vm.vnode, prop))\n\t\t\t\t\treturn defaultValue ?? propValue\n\t\t\t\treturn propValue\n\t\t\t}\n\t\t})\n\n\t\treturn setup(_props, ctx)\n\t}\n\n\treturn component\n}\n","// Components\nimport _QSpinnerLoader from './QSpinnerLoader.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QSpinnerLoader = setupPropsProxy(_QSpinnerLoader) as typeof _QSpinnerLoader\n\n// Export components\nexport { QSpinnerLoader }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, renderSlot as _renderSlot, createElementVNode as _createElementVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"disabled\", \"onClick\"]\nconst _hoisted_2 = {\n key: 0,\n class: \"q-btn__spinner\"\n}\nconst _hoisted_3 = { class: \"q-btn__content\" }\n\nimport { QSpinnerLoader } from '@/components/QSpinnerLoader'\n\n\t// Utils\n\timport { computed } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QButton',\n props: {\n active: { type: Boolean },\n bStyle: { default: 'secondary' },\n label: { default: '' },\n disabled: { type: Boolean },\n iconOnRight: { type: Boolean },\n borderless: { type: Boolean },\n elevated: { type: Boolean },\n block: { type: Boolean },\n loading: { type: Boolean },\n size: { default: 'regular' }\n },\n emits: [\"click\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tconst isDisabled = computed(() => props.disabled || props.loading)\n\n\tfunction onClick(event: Event) {\n\t\tif (!isDisabled.value) emit('click', event)\n\t}\n\n\tconst classes = computed(() => {\n\t\tconst variant = computed(() => (props.bStyle ? `q-btn--${props.bStyle}` : undefined))\n\t\tconst size = computed(() => (props.size !== 'regular' ? `q-btn--${props.size}` : undefined))\n\n\t\treturn [\n\t\t\t'q-btn',\n\t\t\tvariant.value,\n\t\t\tsize.value,\n\t\t\t{\n\t\t\t\t'q-btn--active': props.active,\n\t\t\t\t'q-btn--borderless': props.borderless,\n\t\t\t\t'q-btn--elevated': props.elevated,\n\t\t\t\t'q-btn--block': props.block,\n\t\t\t\t'q-btn--loading': props.loading\n\t\t\t}\n\t\t]\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n type: \"button\",\n class: _normalizeClass(classes.value),\n disabled: isDisabled.value,\n onClick: _withModifiers(onClick, [\"stop\",\"prevent\"])\n }, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_unref(QSpinnerLoader), { size: 23 })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_3, [\n (_ctx.iconOnRight)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(props.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\"),\n (!_ctx.iconOnRight)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(props.label), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_1))\n}\n}\n\n})","// Components\nimport _QButton from './QButton.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QButton = setupPropsProxy(_QButton) as typeof _QButton\n\n// Export components\nexport { QButton }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { computed, toRef } from 'vue'\n\timport { provideDefaults } from '@/composables/defaults'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QButtonGroup',\n props: {\n bStyle: {},\n disabled: { type: Boolean },\n borderless: { type: Boolean },\n elevated: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tprovideDefaults({\n\t\tQButton: {\n\t\t\tbStyle: toRef(props, 'bStyle'),\n\t\t\tdisabled: toRef(props, 'disabled'),\n\t\t\tborderless: toRef(props, 'borderless'),\n\t\t\televated: false\n\t\t}\n\t})\n\n\tconst classes = computed(() => {\n\t\treturn [\n\t\t\t'q-btn-group',\n\t\t\t{\n\t\t\t\t'q-btn-group--elevated': props.elevated\n\t\t\t}\n\t\t]\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(classes.value)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n}\n}\n\n})","// Components\nimport _QButtonGroup from './QButtonGroup.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QButtonGroup = setupPropsProxy(_QButtonGroup) as typeof _QButtonGroup\n\n// Export components\nexport { QButtonGroup }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nimport { QButton } from '@/components/QButton'\n\timport { QButtonGroup } from '@/components/QButtonGroup'\n\n\t// Utils\n\timport { Ref, WritableComputedRef, computed, ref, watch } from 'vue'\n\n\texport type QButtonToggleOption = {\n\t\tkey: string\n\t\ttitle?: string\n\t\tlabel?: string\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QButtonToggle',\n props: {\n modelValue: {},\n options: {},\n disabled: { type: Boolean },\n borderless: { type: Boolean },\n elevated: { type: Boolean },\n mandatory: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\t// Keep a local value for active to make prop \"modelValue\" optional\n\tconst _active: Ref<string | undefined> = ref(props.modelValue)\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => (_active.value = newVal)\n\t)\n\n\tconst active: WritableComputedRef<string | undefined> = computed({\n\t\tget() {\n\t\t\treturn _active.value\n\t\t},\n\t\tset(newVal) {\n\t\t\t_active.value = newVal\n\t\t\temit('update:modelValue', newVal)\n\t\t}\n\t})\n\n\tfunction toggle(option: QButtonToggleOption) {\n\t\tif (active.value === option.key && !props.mandatory) active.value = undefined\n\t\telse active.value = option.key\n\t}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QButtonGroup), {\n \"b-style\": \"secondary\",\n disabled: props.disabled,\n borderless: props.borderless,\n elevated: props.elevated\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(props.options, (option) => {\n return (_openBlock(), _createBlock(_unref(QButton), {\n key: option.key,\n title: option.title,\n label: option.label,\n active: active.value === option.key,\n onClick: ($event: any) => (toggle(option))\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, option.key)\n ]),\n _: 2\n }, 1032, [\"title\", \"label\", \"active\", \"onClick\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"disabled\", \"borderless\", \"elevated\"]))\n}\n}\n\n})","// Components\nimport _QButtonToggle from './QButtonToggle.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QButtonToggle = setupPropsProxy(_QButtonToggle) as typeof _QButtonToggle\n\n// Export components\nexport { QButtonToggle }\n","// Counter to keep track of the number of generated IDs\nlet counter = 0\n\n// Custom hook to generate unique IDs\nexport function useUid() {\n\treturn `uid-${++counter}`\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = [\"for\", \"data-val-required\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = { class: \"q-field__control\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"q-field__prepend\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"q-field__append\"\n}\nconst _hoisted_6 = {\n key: 0,\n class: \"q-field__extras\"\n}\n\nimport { useUid } from '@/composables/uid'\n\n\t// Utils\n\timport { computed, ref } from 'vue'\n\n\texport type QFieldSize =\n\t\t| 'mini'\n\t\t| 'small'\n\t\t| 'medium'\n\t\t| 'large'\n\t\t| 'x-large'\n\t\t| 'xx-large'\n\t\t| 'block'\n\n\texport type QFieldProps = {\n\t\t/**\n\t\t * The field unique identifier.\n\t\t */\n\t\tid?: string\n\n\t\t/**\n\t\t * The label of the input.\n\t\t */\n\t\tlabel?: string\n\n\t\t/**\n\t\t * The size category of the input.\n\t\t */\n\t\tsize?: QFieldSize\n\n\t\t/**\n\t\t * Whether the input is readonly.\n\t\t */\n\t\treadonly?: boolean\n\n\t\t/**\n\t\t * Whether the input is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\n\t\t/**\n\t\t * If set to true, an asterisk (*) is displayed\n\t\t * to indicate that the field is required.\n\t\t */\n\t\trequired?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QField',\n props: {\n id: { default: () => useUid() },\n label: { default: '' },\n size: { default: 'medium' },\n readonly: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n required: { type: Boolean, default: false }\n },\n setup(__props: any, { expose: __expose }) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\t// Template refs\n\tconst fieldRef = ref<HTMLElement | null>(null)\n\n\tconst isRequired = computed<boolean>(() => props.required && !props.readonly && !props.disabled)\n\n\t__expose({\n\t\tfieldRef\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _renderSlot(_ctx.$slots, \"label.prepend\"),\n _createElementVNode(\"label\", {\n class: \"q-field__label\",\n for: props.id,\n \"data-val-required\": isRequired.value\n }, _toDisplayString(props.label), 9, _hoisted_1),\n _renderSlot(_ctx.$slots, \"label.append\"),\n _createElementVNode(\"div\", _mergeProps({\n ref_key: \"fieldRef\",\n ref: fieldRef,\n id: props.id,\n class: [\n\t\t\t'q-field',\n\t\t\t`q-field--${props.size}`,\n\t\t\t{ 'q-field--readonly': props.readonly, 'q-field--disabled': props.disabled }\n\t\t]\n }, _ctx.$attrs), [\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.$slots.prepend)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"prepend\")\n ]))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\"),\n (_ctx.$slots.append)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _renderSlot(_ctx.$slots, \"append\")\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.$slots.extras)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _renderSlot(_ctx.$slots, \"extras\")\n ]))\n : _createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 64))\n}\n}\n\n})","// Components\nimport _QField from './QField.vue'\n\n// Types\nimport type { QFieldProps, QFieldSize } from './QField.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QField = setupPropsProxy(_QField) as typeof _QField\n\n// Export components\nexport { QField }\n\n// Export types\nexport type { QFieldProps, QFieldSize }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { QIconFont } from '.'\n\timport { QIconImg } from '.'\n\timport { QIconSvg } from '.'\n\n\t// Utils\n\timport { computed } from 'vue'\n\n\texport type Icon = {\n\t\t/**\n\t\t * The identifier of the icon.\n\t\t */\n\t\ticon: string\n\n\t\t/**\n\t\t * The type of resource.\n\t\t */\n\t\ttype?: 'svg' | 'font' | 'img'\n\n\t\t/**\n\t\t * The size of the icon, in pixels.\n\t\t */\n\t\tsize?: number\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIcon',\n props: {\n icon: {},\n type: { default: 'svg' },\n size: { default: undefined }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\tconst component = computed(() => {\n\t\tswitch (props.type) {\n\t\t\tcase 'svg':\n\t\t\t\treturn QIconSvg\n\t\t\tcase 'font':\n\t\t\t\treturn QIconFont\n\t\t\tcase 'img':\n\t\t\t\treturn QIconImg\n\t\t\tdefault:\n\t\t\t\treturn undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (props.icon)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(component.value), {\n key: 0,\n icon: props.icon,\n size: props.size\n }, null, 8, [\"icon\", \"size\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { computed } from 'vue'\n\n\texport type QIconFontProps = {\n\t\t/**\n\t\t * The classname containing the content of the font icon.\n\t\t */\n\t\ticon: string\n\n\t\t/**\n\t\t * The name of the icon library.\n\t\t */\n\t\tlibrary?: string\n\n\t\t/**\n\t\t * The icon variant.\n\t\t */\n\t\tvariant?: string\n\n\t\t/**\n\t\t * The size of the icon, in pixels.\n\t\t */\n\t\tsize?: number\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIconFont',\n props: {\n icon: {},\n library: { default: '' },\n variant: { default: '' },\n size: { default: undefined }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tconst libraryVariant = computed(() => {\n\t\tif (props.variant) return `${props.library}-${props.variant}`\n\t\treturn props.library\n\t})\n\n\tconst iconClass = computed(() => {\n\t\tif (props.library && props.icon) return `${props.library}-${props.icon}`\n\t\treturn props.icon\n\t})\n\n\tconst iconStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== undefined ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (iconClass.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(['q-icon', 'q-icon__font', libraryVariant.value, iconClass.value]),\n style: _normalizeStyle(iconStyle.value)\n }, null, 6))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"src\"]\n\nimport { computed } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIconImg',\n props: {\n icon: {},\n size: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\tconst iconStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== undefined ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (props.icon)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: props.icon,\n class: \"q-icon q-icon__img\",\n style: _normalizeStyle(iconStyle.value)\n }, null, 12, _hoisted_1))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import { h as createElement, defineComponent } from 'vue'\n\n/** @type Record<string, PromiseWithState<Element>> */\nconst cache = {}\n\nexport default defineComponent({\n\tname: 'InlineSvg',\n\n\temits: ['loaded', 'unloaded', 'error'],\n\n\tinheritAttrs: false,\n\n\trender() {\n\t\tif (!this.svgElSource) return null\n\n\t\tconst ctn = this.getSvgContent(this.svgElSource)\n\t\tif (!ctn) return createElement('div', this.$attrs)\n\n\t\tconst cprops = {}\n\t\t// source attrs\n\t\tthis.copySvgAttrs(cprops, this.svgElSource)\n\t\t// transformed attributes\n\t\tthis.copySvgAttrs(cprops, ctn)\n\t\t// component attrs and listeners\n\t\tthis.copyComponentAttrs(cprops, this.$attrs)\n\t\t// content\n\t\tcprops.innerHTML = ctn.innerHTML\n\n\t\treturn createElement('svg', cprops)\n\t},\n\n\tprops: {\n\t\tsrc: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\n\t\tsymbol: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\n\t\ttransformSource: {\n\t\t\ttype: Function,\n\t\t\tdefault: undefined\n\t\t},\n\n\t\tkeepDuringLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/** @type SVGElement */\n\t\t\tsvgElSource: null\n\t\t}\n\t},\n\n\tasync mounted() {\n\t\t// generate `svgElSource`\n\t\tawait this.getSource(this.src)\n\t},\n\n\tmethods: {\n\t\tcopySvgAttrs(target, source) {\n\t\t\tconst attrs = source.attributes\n\t\t\tif (attrs) for (const a of attrs) target[a.name] = a.value\n\t\t},\n\n\t\tcopyComponentAttrs(target, source) {\n\t\t\tfor (const [key, value] of Object.entries(source))\n\t\t\t\tif (value !== false && value !== null && value !== undefined) target[key] = value\n\t\t},\n\n\t\tgetSvgContent(svgEl) {\n\t\t\tif (this.symbol) {\n\t\t\t\tsvgEl = svgEl.getElementById(this.symbol)\n\t\t\t\tif (!svgEl) return null\n\t\t\t}\n\n\t\t\tif (this.transformSource) {\n\t\t\t\tsvgEl = svgEl.cloneNode(true)\n\t\t\t\tsvgEl = this.transformSource(svgEl)\n\t\t\t}\n\n\t\t\tif (this.title) {\n\t\t\t\tif (!this.transformSource) svgEl = svgEl.cloneNode(true)\n\t\t\t\tsetTitle(svgEl, this.title)\n\t\t\t}\n\n\t\t\treturn svgEl\n\t\t},\n\n\t\t/**\n\t\t * Get svgElSource\n\t\t * @param {string} src\n\t\t */\n\t\tasync getSource(src) {\n\t\t\ttry {\n\t\t\t\t// Fill cache by src with promise\n\t\t\t\tif (!cache[src]) {\n\t\t\t\t\t// Download\n\t\t\t\t\tcache[src] = makePromiseState(this.download(src))\n\t\t\t\t}\n\n\t\t\t\t// Notify svg is unloaded\n\t\t\t\tif (this.svgElSource && cache[src].getIsPending() && !this.keepDuringLoading) {\n\t\t\t\t\tthis.svgElSource = null\n\t\t\t\t\tthis.$emit('unloaded')\n\t\t\t\t}\n\n\t\t\t\t// Inline svg when cached promise resolves\n\t\t\t\tconst svg = await cache[src]\n\t\t\t\tthis.svgElSource = svg\n\t\t\t\t// Wait to render\n\t\t\t\tawait this.$nextTick()\n\t\t\t\t// Notify\n\t\t\t\tthis.$emit('loaded', this.$el)\n\t\t\t} catch (err) {\n\t\t\t\t// Notify svg is unloaded\n\t\t\t\tif (this.svgElSource) {\n\t\t\t\t\tthis.svgElSource = null\n\t\t\t\t\tthis.$emit('unloaded')\n\t\t\t\t}\n\n\t\t\t\t// Remove cached rejected promise so next image can try load again\n\t\t\t\tdelete cache[src]\n\t\t\t\tthis.$emit('error', err)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the contents of the SVG\n\t\t * @param {string} url\n\t\t * @returns {PromiseWithState<Element>}\n\t\t */\n\t\tasync download(url) {\n\t\t\tconst response = await fetch(url)\n\t\t\tif (!response.ok) throw new Error('Error loading SVG')\n\n\t\t\tconst text = await response.text()\n\t\t\tconst parser = new DOMParser()\n\t\t\tconst result = parser.parseFromString(text, 'text/xml')\n\t\t\tconst svgEl = result.getElementsByTagName('svg')[0]\n\n\t\t\tif (!svgEl) throw new Error('Loaded file is not a valid SVG')\n\n\t\t\t// Uncomment the following line if you want to apply any transformation to the SVG element\n\t\t\t// svgEl = this.transformSource(svgEl)\n\t\t\treturn svgEl\n\t\t}\n\t},\n\n\twatch: {\n\t\tsrc(newValue) {\n\t\t\t// re-generate cached svg (`svgElSource`)\n\t\t\tthis.getSource(newValue)\n\t\t}\n\t}\n})\n\n/**\n * Create or edit the <title> element of a SVG\n * @param {SVGElement} svg\n * @param {string} title\n */\nfunction setTitle(svg, title) {\n\tconst titleTags = svg.getElementsByTagName('title')\n\tif (titleTags.length) {\n\t\t// overwrite existing title\n\t\ttitleTags[0].textContent = title\n\t} else {\n\t\t// create a title element if one doesn't already exist\n\t\tconst titleEl = document.createElementNS('http://www.w3.org/2000/svg', 'title')\n\t\ttitleEl.textContent = title\n\t\t// svg.prepend(titleEl);\n\t\tsvg.insertBefore(titleEl, svg.firstChild)\n\t}\n}\n\n/**\n * This function allow you to modify a JS Promise by adding some status properties.\n * @template {any} T\n * @param {Promise<T>|PromiseWithState<T>} promise\n * @return {PromiseWithState<T>}\n */\nfunction makePromiseState(promise) {\n\t// Don't modify any promise that has been already modified.\n\tif (promise.getIsPending) return promise\n\n\t// Set initial state\n\tlet isPending = true\n\n\t// Observe the promise, saving the fulfillment in a closure scope.\n\tconst result = promise.then(\n\t\t(v) => {\n\t\t\tisPending = false\n\t\t\treturn v\n\t\t},\n\t\t(e) => {\n\t\t\tisPending = false\n\t\t\tthrow e\n\t\t}\n\t)\n\n\tresult.getIsPending = () => isPending\n\n\treturn result\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { computed } from 'vue'\n\timport InlineSvg from './InlineSvg.js'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QIconSvg',\n props: {\n icon: {},\n bundle: { default: '' },\n size: { default: undefined }\n },\n emits: [\"loaded\", \"unloaded\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Utils\n\t\n\n\t\n\n\tconst iconStyle = computed(() => {\n\t\treturn {\n\t\t\t'font-size': props.size !== undefined ? `${props.size}px` : undefined\n\t\t}\n\t})\n\nreturn (_ctx: any,_cache: any) => {\n return (props.icon)\n ? (_openBlock(), _createBlock(_unref(InlineSvg), {\n key: 0,\n class: \"q-icon q-icon__svg\",\n src: props.bundle,\n symbol: props.icon,\n style: _normalizeStyle(iconStyle.value),\n onLoaded: _cache[0] || (_cache[0] = ($event: any) => (emit('loaded', $event))),\n onUnloaded: _cache[1] || (_cache[1] = ($event: any) => (emit('unloaded', $event)))\n }, null, 8, [\"src\", \"symbol\", \"style\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","// Components\nimport _QIcon from './QIcon.vue'\nimport _QIconFont from './QIconFont.vue'\nimport _QIconImg from './QIconImg.vue'\nimport _QIconSvg from './QIconSvg.vue'\n\n// Types\nimport type { Icon } from './QIcon.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QIcon = setupPropsProxy(_QIcon) as typeof _QIcon\nconst QIconFont = setupPropsProxy(_QIconFont) as typeof _QIconFont\nconst QIconImg = setupPropsProxy(_QIconImg) as typeof _QIconImg\nconst QIconSvg = setupPropsProxy(_QIconSvg) as typeof _QIconSvg\n\n// Export components\nexport { QIcon, QIconFont, QIconImg, QIconSvg }\n\n// Export types\nexport type { Icon }\n","// Components\nimport _QLineLoader from './QLineLoader.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QLineLoader = setupPropsProxy(_QLineLoader) as typeof _QLineLoader\n\n// Export components\nexport { QLineLoader }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createBlock as _createBlock, withCtx as _withCtx, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass } from \"vue\"\n\nimport { QListItem } from '.'\n\timport { QListItemGroup } from '.'\n\n\t// Types\n\timport type { QListItemProps, QListItemGroupProps } from '.'\n\timport type { Primitive } from '@/types/primitive'\n\n\t// Utils\n\timport { computed, ref, watch } from 'vue'\n\n\texport type QListProps = {\n\t\t/**\n\t\t * The value of the currently selected item.\n\t\t */\n\t\tmodelValue?: Primitive\n\n\t\t/**\n\t\t * The list of available items for selection.\n\t\t */\n\t\titems: (Omit<QListItemProps, 'value' | 'label'> & {\n\t\t\t// allow custom properties\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t[key: string]: any\n\t\t})[]\n\n\t\t/**\n\t\t * The item groups used for organizing the available items.\n\t\t */\n\t\tgroups?: (QListItemGroupProps & {\n\t\t\tid: string\n\t\t})[]\n\n\t\t/**\n\t\t * The property of each item object that holds its value.\n\t\t */\n\t\titemValue?: string\n\n\t\t/**\n\t\t * The property of each item object that holds its title.\n\t\t */\n\t\titemLabel?: string\n\n\t\t/**\n\t\t * Indicates whether the list is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QList',\n props: {\n modelValue: { type: [String, Number, Boolean, Symbol], default: undefined },\n items: {},\n groups: { default: () => [] },\n itemValue: { default: 'key' },\n itemLabel: { default: 'label' },\n disabled: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tconst value = ref(props.modelValue)\n\n\tconst listTag = computed(() => (groups.value.length > 1 ? 'div' : 'ul'))\n\tconst groups = computed<QListItemGroupProps[]>(() => {\n\t\tif (props.groups.length) return props.groups\n\n\t\t// Generate a default group without title\n\t\treturn [{ title: '' }]\n\t})\n\n\t// Template refs\n\tconst listRef = ref<HTMLElement | null>(null)\n\n\tfunction onItemSelect(newVal: Primitive) {\n\t\tvalue.value = newVal\n\t\temit('update:modelValue', newVal)\n\t}\n\n\tfunction onFocus() {\n\t\tlet targetIdx = 0\n\n\t\tif (value.value) {\n\t\t\ttargetIdx = props.items.findIndex((item) => item[props.itemValue] === value.value)\n\t\t}\n\n\t\tfocusItem(targetIdx)\n\t}\n\n\tfunction onKeyDown(e: KeyboardEvent) {\n\t\tif (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\tfocus('next')\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\tfocus('prev')\n\t\t\t\tbreak\n\t\t\tcase 'Home':\n\t\t\t\tfocus('first')\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\tfocus('last')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction focus(direction?: 'next' | 'prev' | 'first' | 'last') {\n\t\tswitch (direction) {\n\t\t\tcase 'next':\n\t\t\tcase 'prev':\n\t\t\t\tfocusItem(getAdjacentItemIdx(direction))\n\t\t\t\tbreak\n\t\t\tcase 'first':\n\t\t\t\tfocusItem(0)\n\t\t\t\tbreak\n\t\t\tcase 'last':\n\t\t\t\tfocusItem(-1)\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction focusItem(itemIdx: number) {\n\t\tconst children = getFocusableChildren()\n\t\tchildren.at(itemIdx)?.focus()\n\t}\n\n\tfunction getFocusableChildren() {\n\t\tconst nodes = listRef.value?.querySelectorAll('li')\n\t\tif (!nodes) return []\n\n\t\tconst items = Array.from(nodes) as HTMLElement[]\n\t\treturn items.filter((item) => item.tabIndex !== -1)\n\t}\n\n\tfunction getActiveItemIndex(items: HTMLElement[]) {\n\t\treturn items.indexOf(document.activeElement as HTMLElement)\n\t}\n\n\tfunction getAdjacentItemIdx(direction: 'next' | 'prev') {\n\t\tconst items = getFocusableChildren()\n\t\tconst idx = getActiveItemIndex(items)\n\n\t\tif (direction === 'next') return idx === items.length - 1 ? idx : idx + 1\n\t\treturn idx === 0 ? 0 : idx - 1\n\t}\n\n\tfunction getGroupItems(group?: string) {\n\t\tif (!group) return props.items\n\t\treturn props.items.filter((item) => item.group === group)\n\t}\n\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => {\n\t\t\tvalue.value = newVal\n\t\t}\n\t)\n\n\t__expose({ focusItem })\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(listTag.value), {\n ref_key: \"listRef\",\n ref: listRef,\n class: _normalizeClass(['q-list', { 'q-list--disabled': props.disabled }]),\n role: \"listbox\",\n tabindex: props.disabled ? -1 : 0,\n onFocus: onFocus,\n onKeydown: onKeyDown\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(groups.value, (group) => {\n return (_openBlock(), _createBlock(_unref(QListItemGroup), {\n key: group.id,\n title: group.title,\n disabled: group.disabled\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getGroupItems(group.id), (item) => {\n return (_openBlock(), _createBlock(_unref(QListItem), {\n key: item[props.itemValue],\n value: item[props.itemValue],\n label: item[props.itemLabel],\n icon: item.icon,\n disabled: props.disabled || item.disabled,\n selected: value.value === item[props.itemValue],\n onSelect: onItemSelect\n }, null, 8, [\"value\", \"label\", \"icon\", \"disabled\", \"selected\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"title\", \"disabled\"]))\n }), 128))\n ]),\n _: 1\n }, 40, [\"class\", \"tabindex\"]))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, openBlock as _openBlock, createBlock as _createBlock, mergeProps as _mergeProps, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"tabindex\", \"aria-label\", \"aria-selected\", \"onClick\"]\nconst _hoisted_2 = { class: \"q-list-item__check-container\" }\n\nimport { QIcon } from '@/components/QIcon'\n\n\t// Types\n\timport type { Icon } from '@/components/QIcon'\n\timport type { Primitive } from '@/types/primitive'\n\n\t\n\t// The default icons of the component.\n\tconst DEFAULT_ICONS: Record<string, Icon> = {\n\t\tcheck: {\n\t\t\ticon: 'check'\n\t\t}\n\t}\n\nexport type ListItem = {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t[key: string]: any\n\t\ticon?: Icon\n\t\tselected?: boolean\n\t\tgroup?: string\n\t\tdisabled?: boolean\n\t}\n\n\texport type Icons = typeof DEFAULT_ICONS\n\n\texport type QListItemProps = {\n\t\t/**\n\t\t * The value of the item.\n\t\t */\n\t\tvalue: Primitive\n\n\t\t/**\n\t\t * The label of the item.\n\t\t */\n\t\tlabel: string\n\n\t\t/**\n\t\t * The icon of the item.\n\t\t */\n\t\ticon?: Icon\n\n\t\t/**\n\t\t * Whether this item is selected.\n\t\t */\n\t\tselected?: boolean\n\n\t\t/**\n\t\t * Whether this item is highlighted.\n\t\t */\n\t\thighlighted?: boolean\n\n\t\t/**\n\t\t * The icons of the component.\n\t\t */\n\t\ticons?: Icons\n\n\t\t/**\n\t\t * Whether the item is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QListItem',\n props: {\n value: { type: [String, Number, Boolean, Symbol] },\n label: {},\n icon: { default: undefined },\n selected: { type: Boolean, default: false },\n highlighted: { type: Boolean, default: false },\n icons: { default: () => DEFAULT_ICONS },\n disabled: { type: Boolean, default: false }\n },\n emits: [\"select\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tfunction onSelect() {\n\t\tif (!props.disabled) emit('select', props.value)\n\t}\n\n\tfunction onKeyDown(e: KeyboardEvent) {\n\t\tif (e.key === 'Tab') onSelect()\n\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t\tonSelect()\n\t\t}\n\t}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n role: \"option\",\n tabindex: props.disabled ? undefined : -2,\n class: _normalizeClass([\n\t\t\t'q-list-item',\n\t\t\t{\n\t\t\t\t'q-list-item--disabled': props.disabled,\n\t\t\t\t'q-list-item--selected': props.selected,\n\t\t\t\t'q-list-item--highlighted': props.highlighted\n\t\t\t}\n\t\t]),\n \"aria-label\": props.label,\n \"aria-selected\": props.disabled ? undefined : props.selected,\n onKeydown: onKeyDown,\n onClick: _withModifiers(onSelect, [\"stop\",\"prevent\"])\n }, [\n (props.icon)\n ? (_openBlock(), _createBlock(_unref(QIcon), _normalizeProps(_mergeProps({ key: 0 }, props.icon)), null, 16))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(props.label) + \" \", 1),\n _createElementVNode(\"div\", _hoisted_2, [\n (props.selected)\n ? (_openBlock(), _createBlock(_unref(QIcon), _mergeProps({ key: 0 }, props.icons.check, { class: \"q-list-item__check\" }), null, 16))\n : _createCommentVNode(\"\", true)\n ])\n ], 42, _hoisted_1))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createCommentVNode as _createCommentVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"aria-labelledby\"]\nconst _hoisted_2 = [\"id\"]\n\nimport { useUid } from '@/composables/uid'\n\n\texport type QListItemGroupProps = {\n\t\t/**\n\t\t * The title of the group.\n\t\t */\n\t\ttitle?: string\n\n\t\t/**\n\t\t * Whether the entire list group is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QListItemGroup',\n props: {\n title: { default: '' },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\tconst id = useUid()\n\nreturn (_ctx: any,_cache: any) => {\n return (!props.title)\n ? _renderSlot(_ctx.$slots, \"default\", { key: 0 })\n : (_openBlock(), _createElementBlock(\"ul\", {\n key: 1,\n class: \"q-list-item-group\",\n role: \"group\",\n \"aria-labelledby\": _unref(id)\n }, [\n (props.title)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 0,\n id: _unref(id),\n class: \"q-list-item-group__title\",\n role: \"presentation\"\n }, _toDisplayString(props.title), 9, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\")\n ], 8, _hoisted_1))\n}\n}\n\n})","// Components\nimport _QList from './QList.vue'\nimport _QListItem from './QListItem.vue'\nimport _QListItemGroup from './QListItemGroup.vue'\n\n// Types\nimport type { QListProps } from './QList.vue'\nimport type { QListItemProps } from './QListItem.vue'\nimport type { QListItemGroupProps } from './QListItemGroup.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QList = setupPropsProxy(_QList) as typeof _QList\nconst QListItem = setupPropsProxy(_QListItem) as typeof _QListItem\nconst QListItemGroup = setupPropsProxy(_QListItemGroup) as typeof _QListItemGroup\n\n// Export components\nexport { QList, QListItem, QListItemGroup }\n\n// Export types\nexport type { QListProps, QListItemProps, QListItemGroupProps }\n","export type Appearance = 'regular' | 'inverted'\nexport type Placement = 'top' | 'bottom' | 'left' | 'right'\nexport type Trigger = 'hover' | 'click' | 'manual'\n\nexport type Position = {\n\tx: number\n\ty: number\n\tplacement: Placement\n\twidth?: number\n}\n\n/**\n * Reposition the overlay based on its size and the position of its anchor.\n */\nexport function computePosition(\n\tanchor: Element,\n\toverlay: Element | null,\n\ttentativePlacement: Placement = 'right',\n\twidth?: 'auto' | 'anchor'\n): Position {\n\t// Get absolute position of anchor\n\tconst anchorPosition = anchor.getBoundingClientRect()\n\tconst left = anchorPosition.x + window.scrollX\n\tconst top = anchorPosition.y + window.scrollY\n\n\t// Get absolute position of overlay\n\tconst overlayPosition = overlay?.getBoundingClientRect()\n\tconst overlayWidth = overlayPosition?.width ?? 0\n\tconst overlayHeight = overlayPosition?.height ?? 0\n\n\tlet placement = tentativePlacement\n\n\t// Attempt to prevent out of bounds\n\tif (overlayPosition) {\n\t\tconst oob = !canReposition(anchorPosition, overlayPosition, placement)\n\t\tif (oob) placement = getOptimalFallbackPosition(anchorPosition, overlayPosition, placement)\n\t}\n\n\tconst position: Position = { x: 0, y: 0, placement: placement }\n\n\tswitch (placement) {\n\t\tcase 'top':\n\t\t\tif (width === 'anchor') position.x = left\n\t\t\telse position.x = left + (anchorPosition.width - overlayWidth) / 2\n\t\t\tposition.y = top - overlayHeight\n\t\t\tbreak\n\t\tcase 'bottom':\n\t\t\tif (width === 'anchor') position.x = left\n\t\t\telse position.x = left + (anchorPosition.width - overlayWidth) / 2\n\t\t\tposition.y = top + anchorPosition.height\n\t\t\tbreak\n\t\tcase 'left':\n\t\t\tposition.x = left - overlayWidth\n\t\t\tposition.y = top + anchorPosition.height / 2 - overlayHeight / 2\n\t\t\tbreak\n\t\tcase 'right':\n\t\t\tposition.x = left + anchorPosition.width\n\t\t\tposition.y = top + anchorPosition.height / 2 - overlayHeight / 2\n\t\t\tbreak\n\t\tdefault:\n\t\t\tbreak\n\t}\n\n\tif (width === 'anchor' && anchorPosition.width >= overlayWidth)\n\t\tposition.width = anchorPosition.width\n\n\treturn position\n}\n\n/**\n * Determines if the overlay can reposition to the provided placement\n * without going out of bounds.\n */\nfunction canReposition(anchorPosition: DOMRect, overlayPosition: DOMRect, to: Placement) {\n\tlet xOK = false,\n\t\tyOK = false\n\n\tswitch (to) {\n\t\tcase 'top':\n\t\t\txOK = isHorizontalPositionValid(anchorPosition, overlayPosition)\n\t\t\tyOK = anchorPosition.top > overlayPosition.height\n\t\t\tbreak\n\t\tcase 'bottom':\n\t\t\txOK = isHorizontalPositionValid(anchorPosition, overlayPosition)\n\t\t\tyOK =\n\t\t\t\twindow.innerHeight - anchorPosition.top - anchorPosition.height >\n\t\t\t\toverlayPosition.height\n\t\t\tbreak\n\t\tcase 'left':\n\t\t\txOK = anchorPosition.left > overlayPosition.width\n\t\t\tyOK = isVerticalPositionValid(anchorPosition, overlayPosition)\n\t\t\tbreak\n\t\tcase 'right':\n\t\t\txOK =\n\t\t\t\twindow.innerWidth - anchorPosition.left - anchorPosition.width >\n\t\t\t\toverlayPosition.width\n\t\t\tyOK = isVerticalPositionValid(anchorPosition, overlayPosition)\n\t\t\tbreak\n\t\tdefault:\n\t\t\tbreak\n\t}\n\n\treturn xOK && yOK\n}\n\n/**\n * Determines if the overlay can be positioned within the viewport vertically.\n */\nfunction isVerticalPositionValid(anchorPosition: DOMRect, overlayPosition: DOMRect) {\n\treturn (\n\t\twindow.innerHeight - anchorPosition.top - anchorPosition.height / 2 >\n\t\t\toverlayPosition.height / 2 &&\n\t\tanchorPosition.top + anchorPosition.height / 2 > overlayPosition.height / 2\n\t)\n}\n\n/**\n * Determines if the overlay can be positioned within the viewport horizontally.\n */\nfunction isHorizontalPositionValid(anchorPosition: DOMRect, overlayPosition: DOMRect) {\n\treturn (\n\t\twindow.innerWidth - anchorPosition.left - anchorPosition.width / 2 >\n\t\t\toverlayPosition.width / 2 &&\n\t\tanchorPosition.left + anchorPosition.width / 2 > overlayPosition.width / 2\n\t)\n}\n\n/**\n * Determines the optional fallback position assuming the current is not available.\n */\nfunction getOptimalFallbackPosition(\n\tanchorPosition: DOMRect,\n\toverlayPosition: DOMRect,\n\tcurrent: Placement\n) {\n\t// Fallback positions ordered by optimal preference.\n\tconst fallbackOrder: Record<string, Placement[]> = {\n\t\ttop: ['bottom', 'left', 'right'],\n\t\tbottom: ['top', 'left', 'right'],\n\t\tleft: ['right', 'top', 'bottom'],\n\t\tright: ['left', 'top', 'bottom']\n\t}\n\n\tfor (const position of fallbackOrder[current])\n\t\tif (canReposition(anchorPosition, overlayPosition, position)) return position\n\n\t// If none of the fallback positions are within bounds,\n\t// return the current position\n\t// TODO: return the position that is \"less out of bounds\"\n\t// when none of the fallback positions are optimal\n\treturn current\n}\n","import { ComponentPublicInstance } from 'vue'\n\nexport type Selector = string | HTMLElement | ComponentPublicInstance\n\n/**\n * Gets a DOM element based on the provided selector.\n */\nexport function getElement(selector: Selector): Element | null {\n\tif (typeof selector === 'string')\n\t\t// Selector\n\t\treturn document.querySelector(selector)\n\telse if (selector && '$el' in selector)\n\t\t// Component (ref)\n\t\treturn selector.$el\n\n\t// HTMLElement | Element\n\treturn selector\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, Teleport as _Teleport, createBlock as _createBlock, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-overlay__arrow\"\n}\n\nimport { Appearance, Placement, Trigger, computePosition } from '@/composables/overlay'\n\n\t// Utils\n\timport { Selector, getElement } from '@/utils/getElement'\n\timport { Ref, computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QOverlay',\n props: {\n modelValue: { type: Boolean },\n anchor: {},\n appearance: { default: 'regular' },\n arrow: { type: Boolean, default: false },\n attach: { default: 'body' },\n contentClasses: { default: () => [] },\n delay: { default: 500 },\n disabled: { type: Boolean },\n offset: { default: 8 },\n placement: { default: 'right' },\n spy: { type: Boolean, default: false },\n transition: { default: 'fade' },\n trigger: { default: 'click' },\n width: { default: 'auto' }\n },\n emits: [\"enter\", \"leave\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\t\n\n\t\n\n\tconst classes = computed(() => {\n\t\treturn [\n\t\t\t'q-overlay',\n\t\t\t`q-overlay--${state.placement}`,\n\t\t\t{ 'q-overlay--inverted': props.appearance === 'inverted' },\n\t\t\t...props.contentClasses\n\t\t]\n\t})\n\n\tconst state = reactive({\n\t\tvisible: props.modelValue,\n\t\tanimating: false,\n\t\ttop: 0,\n\t\tleft: 0,\n\t\twidth: 0 as number | undefined,\n\t\tplacement: props.placement\n\t})\n\n\tconst visible = computed(() => state.visible && !props.disabled)\n\twatch(\n\t\t() => props.modelValue,\n\t\t() => (state.visible = props.modelValue)\n\t)\n\twatch(\n\t\t() => state.visible,\n\t\t() => (state.animating = true)\n\t)\n\n\tconst overlayProps = computed(() => {\n\t\tlet xOffset = 0,\n\t\t\tyOffset = 0\n\n\t\tswitch (state.placement) {\n\t\t\tcase 'top':\n\t\t\t\tyOffset = -(props.offset || 0)\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tyOffset = props.offset || 0\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\txOffset = -(props.offset || 0)\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\txOffset = props.offset || 0\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst _props: { top: string; left: string; width?: string } = {\n\t\t\ttop: `${state.top + yOffset}px`,\n\t\t\tleft: `${state.left + xOffset}px`\n\t\t}\n\n\t\tif (state.width !== undefined && ['top', 'bottom'].includes(state.placement))\n\t\t\t_props.width = `${state.width}px`\n\n\t\treturn _props\n\t})\n\n\t// Overlay template ref\n\tconst overlay: Ref<HTMLElement | null> = ref(null)\n\n\t/**\n\t * Reposition the overlay based on its size and the position of its target.\n\t */\n\tfunction reposition() {\n\t\tconst target: Element | null = getElement(props.anchor)\n\n\t\t// Both target and overlay must be visible in order to reposition\n\t\tif (target) {\n\t\t\tconst position = computePosition(target, overlay.value, props.placement, props.width)\n\n\t\t\tstate.left = position.x\n\t\t\tstate.top = position.y\n\t\t\tstate.width = position.width\n\t\t\tstate.placement = position.placement\n\t\t}\n\t}\n\n\t// Setup reaction to changes in the position of the target element\n\twatch([() => visible.value, () => props.placement], reposition)\n\n\t// Handle show/hide with the specified delay\n\tlet timeoutId: number | undefined = undefined\n\n\tfunction show() {\n\t\tconst _delay = props.trigger === 'hover' ? props.delay : 0\n\t\tif (!timeoutId) timeoutId = window.setTimeout(() => (state.visible = true), _delay)\n\t}\n\n\tfunction hide() {\n\t\tclearTimeout(timeoutId)\n\t\ttimeoutId = undefined\n\n\t\tstate.visible = false\n\t}\n\n\tfunction toggle() {\n\t\tvisible.value ? hide() : show()\n\t}\n\n\tlet animationTimeoutId: number | undefined = undefined\n\n\tfunction onLeave() {\n\t\twindow.clearTimeout(animationTimeoutId)\n\t\tanimationTimeoutId = window.setTimeout(() => (state.animating = false), 200)\n\n\t\temit('leave')\n\t}\n\n\tlet observer: MutationObserver | undefined = undefined\n\n\tfunction addTargetListeners() {\n\t\tnextTick(() => {\n\t\t\tconst target = getElement(props.anchor)\n\t\t\tif (!target) return\n\n\t\t\tswitch (props.trigger) {\n\t\t\t\tcase 'click':\n\t\t\t\t\ttarget.addEventListener('click', toggle)\n\t\t\t\t\tbreak\n\t\t\t\tcase 'hover':\n\t\t\t\t\ttarget.addEventListener('mouseenter', show)\n\t\t\t\t\ttarget.addEventListener('mouseleave', hide)\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t})\n\t}\n\n\tfunction addRepositionListeners() {\n\t\tnextTick(() => {\n\t\t\tconst target = getElement(props.anchor)\n\t\t\tif (!target) return\n\n\t\t\t// Handler to reposition overlay on window resize\n\t\t\twindow.addEventListener('scroll', reposition)\n\t\t\twindow.addEventListener('resize', reposition)\n\n\t\t\t// Observer to detect changes in the overlay target and reposition accordingly\n\t\t\tobserver = new MutationObserver(reposition)\n\t\t\tobserver.observe(target, {\n\t\t\t\tattributes: false,\n\t\t\t\tchildList: true,\n\t\t\t\tcharacterData: true,\n\t\t\t\tsubtree: true\n\t\t\t})\n\n\t\t\treposition()\n\t\t})\n\t}\n\n\tfunction removeRepositionListeners() {\n\t\twindow.removeEventListener('scroll', reposition)\n\t\twindow.removeEventListener('resize', reposition)\n\n\t\tobserver?.disconnect()\n\t}\n\n\tlet autoUpdateTimeoutId: number | undefined = undefined\n\n\tfunction autoUpdate() {\n\t\t// Spy\n\t\tconst target: Element | null = getElement(props.anchor)\n\n\t\tif (target) {\n\t\t\treposition()\n\n\t\t\t// Schedule next spy\n\t\t\tautoUpdateTimeoutId = window.setTimeout(autoUpdate, 100)\n\t\t} else {\n\t\t\t// Target was destroyed,\n\t\t\t// hide and destroy overlay as well\n\t\t\thide()\n\t\t}\n\t}\n\n\tfunction init() {\n\t\taddRepositionListeners()\n\n\t\tif (props.spy) autoUpdate()\n\t}\n\n\tfunction destroy() {\n\t\tremoveRepositionListeners()\n\n\t\tif (props.spy) {\n\t\t\tclearTimeout(autoUpdateTimeoutId)\n\t\t\tautoUpdateTimeoutId = undefined\n\t\t}\n\t}\n\n\tonBeforeUnmount(destroy)\n\n\tonMounted(reposition)\n\n\twatch(\n\t\t() => props.disabled,\n\t\t(isDisabled) => {\n\t\t\tif (!isDisabled) addTargetListeners()\n\t\t},\n\t\t{ immediate: true }\n\t)\n\n\twatch(\n\t\t() => visible.value,\n\t\t(isVisible) => {\n\t\t\tisVisible ? init() : destroy()\n\t\t},\n\t\t{ immediate: true }\n\t)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _renderSlot(_ctx.$slots, \"trigger\", { open: visible.value }),\n (visible.value || state.animating)\n ? (_openBlock(), _createBlock(_Teleport, {\n key: 0,\n disabled: !props.attach,\n to: props.attach\n }, [\n _createVNode(_Transition, {\n name: props.transition,\n appear: \"\",\n onEnter: _cache[0] || (_cache[0] = ($event: any) => (emit('enter'))),\n onLeave: onLeave\n }, {\n default: _withCtx(() => [\n (visible.value)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(classes.value),\n style: _normalizeStyle(overlayProps.value)\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['q-overlay__content']),\n ref_key: \"overlay\",\n ref: overlay\n }, [\n (props.arrow)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\")\n ], 512)\n ], 6))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"name\"])\n ], 8, [\"disabled\", \"to\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","// Components\nimport _QOverlay from './QOverlay.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QOverlay = setupPropsProxy(_QOverlay) as typeof _QOverlay\n\n// Export components\nexport { QOverlay }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, renderSlot as _renderSlot, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-popover__header\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"q-popover__body\"\n}\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = { key: 1 }\n\nimport { Placement } from '@/composables/overlay'\n\n\t// Components\n\timport { QOverlay } from '@/components/QOverlay'\n\n\t// Utils\n\timport { Selector } from '@/utils/getElement'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QPopover',\n props: {\n modelValue: { type: Boolean },\n anchor: {},\n arrow: { type: Boolean, default: true },\n attach: { default: 'body' },\n disabled: { type: Boolean },\n html: { type: Boolean, default: true },\n placement: { default: 'right' },\n spy: { type: Boolean, default: true },\n text: {},\n title: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Composables\n\t\n\n\t\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QOverlay), {\n \"model-value\": props.modelValue,\n trigger: \"click\",\n anchor: props.anchor,\n arrow: props.arrow,\n attach: props.attach,\n \"content-classes\": ['q-popover'],\n disabled: props.disabled,\n placement: props.placement,\n spy: props.spy\n }, {\n default: _withCtx(() => [\n (props.title || _ctx.$slots.header)\n ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_1, [\n _createTextVNode(_toDisplayString(props.title) + \" \", 1),\n _renderSlot(_ctx.$slots, \"header\")\n ]))\n : _createCommentVNode(\"\", true),\n (props.text || _ctx.$slots.body)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (props.html)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n innerHTML: props.text\n }, null, 8, _hoisted_3))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(props.text), 1)),\n _renderSlot(_ctx.$slots, \"body\")\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"model-value\", \"anchor\", \"arrow\", \"attach\", \"disabled\", \"placement\", \"spy\"]))\n}\n}\n\n})","// Components\nimport _QPopover from './QPopover.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QPopover = setupPropsProxy(_QPopover) as typeof _QPopover\n\n// Export components\nexport { QPopover }\n","import { useAttrs as _useAttrs } from 'vue'\n\nexport type Attrs = {\n\tclass?: string[]\n}\n\nexport function useAttrs(): Attrs {\n\tconst _attrs = _useAttrs()\n\n\tconst attrs: Attrs = {}\n\n\tif (typeof _attrs.class === 'string') {\n\t\tattrs.class = _attrs.class.split(' ')\n\t} else if (Array.isArray(_attrs.class)) {\n\t\tattrs.class = _attrs.class\n\t} else {\n\t\tattrs.class = []\n\t}\n\n\treturn attrs\n}\n","import { DirectiveBinding, ObjectDirective } from 'vue'\n\ninterface HTMLElementWithClickOutsideEvent extends HTMLElement {\n\tclickOutsideEvent: (event: Event) => void\n}\n\nexport const clickOutside: ObjectDirective<HTMLElementWithClickOutsideEvent> = {\n\tmounted(el: HTMLElementWithClickOutsideEvent, binding: DirectiveBinding) {\n\t\tel.clickOutsideEvent = function (event: Event) {\n\t\t\tconst target = event.target as Element\n\n\t\t\tif (!binding.arg) {\n\t\t\t\tif (!(el === target || el.contains(target))) {\n\t\t\t\t\tbinding.value(event, el)\n\t\t\t\t}\n\t\t\t} else if (!(el === target || el.contains(target) || target.closest(binding.arg))) {\n\t\t\t\tbinding.value(event, el)\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener('click', el.clickOutsideEvent)\n\t},\n\tunmounted(el) {\n\t\tdocument.removeEventListener('click', el.clickOutsideEvent)\n\t}\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, createVNode as _createVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, mergeProps as _mergeProps, createBlock as _createBlock, normalizeClass as _normalizeClass, withCtx as _withCtx, createSlots as _createSlots, renderSlot as _renderSlot, withDirectives as _withDirectives, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"q-select__value\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"q-select__placeholder\"\n}\n\nimport { QIcon } from '@/components/QIcon'\n\timport { QField } from '@/components/QField'\n\timport { QList } from '@/components/QList'\n\timport { QOverlay } from '@/components/QOverlay'\n\timport { QSpinnerLoader } from '@/components/QSpinnerLoader'\n\n\t// Composables\n\timport { useAttrs } from '@/composables/attrs'\n\n\t// Directives\n\timport { clickOutside as vClickOutside } from '@/directives'\n\n\t// Types\n\timport type { Icon } from '@/components/QIcon'\n\timport type { QFieldSize } from '@/components/QField'\n\timport type { QListItemProps, QListItemGroupProps } from '@/components/QList'\n\timport type { Primitive } from '@/types/primitive'\n\n\t// Utils\n\timport { computed, ref, watch } from 'vue'\n\timport { useUid } from '@/composables/uid'\n\n\t\n\t// The default texts of the component.\n\tconst DEFAULT_TEXTS: Record<string, string> = {\n\t\tplaceholder: 'Choose...'\n\t}\n\n\t// The default icons of the component.\n\tconst DEFAULT_ICONS: Record<string, Icon> = {\n\t\tchevron: {\n\t\t\ticon: 'chevron-down'\n\t\t},\n\t\tclear: {\n\t\t\ticon: 'close'\n\t\t}\n\t}\n\ntype Texts = typeof DEFAULT_TEXTS\n\ttype Icons = typeof DEFAULT_ICONS\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QSelect',\n props: {\n modelValue: { type: [String, Number, Boolean, Symbol], default: undefined },\n id: { default: () => useUid() },\n label: { default: '' },\n clearable: { type: Boolean, default: false },\n readonly: { type: Boolean },\n disabled: { type: Boolean, default: false },\n required: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n icons: { default: () => DEFAULT_ICONS },\n items: {},\n groups: { default: () => [] },\n itemValue: { default: 'key' },\n itemLabel: { default: 'label' },\n size: { default: 'medium' },\n texts: { default: () => DEFAULT_TEXTS }\n },\n emits: [\"update:modelValue\", \"before-show\", \"before-hide\", \"show\", \"hide\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\t\n\n\tconst attrs = useAttrs()\n\n\tconst value = ref(props.modelValue)\n\tconst open = ref(false)\n\tconst typed = ref('')\n\n\t// Template refs\n\tconst triggerEl = ref<InstanceType<typeof QField> | null>(null)\n\tconst listRef = ref<InstanceType<typeof QList> | null>(null)\n\tconst contentRef = ref<HTMLElement | null>(null)\n\n\tconst selectedItem = computed(\n\t\t() => props.items?.find((item) => item[props.itemValue] === value.value)\n\t)\n\n\tconst displayValue = computed<string>(() =>\n\t\tselectedItem.value ? selectedItem.value[props.itemLabel] : ''\n\t)\n\n\tconst canClear = computed<boolean>(\n\t\t() => props.clearable && !props.readonly && !props.disabled && !props.loading\n\t)\n\n\tfunction onSelect(newVal: Primitive | undefined) {\n\t\tvalue.value = newVal\n\t\temit('update:modelValue', newVal)\n\t\thide()\n\t}\n\n\tfunction clear() {\n\t\tif (!canClear.value) return\n\n\t\tonSelect(undefined)\n\t}\n\n\tfunction onClick() {\n\t\tif (props.readonly || props.disabled) return\n\n\t\tif (open.value) hide()\n\t\telse show()\n\t}\n\n\tfunction onClickOutside(e: MouseEvent) {\n\t\t// Clicking on the main input should not trigger\n\t\t// v-click-outside action\n\t\tif (!triggerEl.value?.fieldRef?.contains(e.target as Node)) hide()\n\t}\n\n\tfunction show() {\n\t\tif (open.value) return\n\t\temit('before-show')\n\t\topen.value = true\n\t}\n\n\tfunction hide() {\n\t\tif (!open.value) return\n\t\temit('before-hide')\n\t\topen.value = false\n\t}\n\n\tlet timeoutId: number | undefined = undefined\n\n\tfunction onKeydown(e: KeyboardEvent) {\n\t\tif (!e.key || props.readonly || props.disabled) return\n\n\t\t// Clear any existing timeout\n\t\twindow.clearTimeout(timeoutId)\n\n\t\tif (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tif (['Enter', ' '].includes(e.key)) {\n\t\t\topen.value = true\n\t\t}\n\n\t\tif (['Escape', 'Tab'].includes(e.key)) {\n\t\t\tif (open.value) open.value = false\n\t\t\telse if (props.clearable && e.key === 'Escape') clear()\n\t\t}\n\n\t\tif (e.key === 'Delete' && props.clearable) {\n\t\t\tclear()\n\t\t}\n\n\t\tif (/^[a-z]$/i.test(e.key)) {\n\t\t\ttyped.value += e.key.toLowerCase()\n\n\t\t\t// Find the option that starts with the typed string\n\t\t\tfor (let i = 0; i < props.items.length; i++) {\n\t\t\t\tconst item = props.items[i]\n\t\t\t\tif (item[props.itemLabel].toLowerCase().startsWith(typed.value)) {\n\t\t\t\t\t// Select the matching option\n\t\t\t\t\tfocusItem(i)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Clear the typed string after a short delay\n\t\ttimeoutId = window.setTimeout(function () {\n\t\t\ttyped.value = ''\n\t\t}, 500)\n\t}\n\n\tfunction onOverlayEnter() {\n\t\tlistRef.value?.$el.focus()\n\t\temit('show')\n\t}\n\n\tfunction onOverlayLeave() {\n\t\tfocusMainInput()\n\t\temit('hide')\n\t}\n\n\tfunction focusMainInput() {\n\t\ttriggerEl.value?.fieldRef?.focus()\n\t}\n\n\tfunction focusItem(idx: number) {\n\t\tlistRef.value?.focusItem(idx)\n\t}\n\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => {\n\t\t\tvalue.value = newVal\n\t\t}\n\t)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_unref(QField), {\n id: props.id,\n label: props.label,\n required: props.required,\n ref_key: \"triggerEl\",\n ref: triggerEl,\n role: \"combobox\",\n tabindex: \"0\",\n class: _normalizeClass([\n\t\t\t'q-select',\n\t\t\t{\n\t\t\t\t'q-select--readonly': props.readonly,\n\t\t\t\t'q-select--disabled': props.disabled,\n\t\t\t\t'q-select--expanded': open.value\n\t\t\t},\n\t\t\t..._unref(attrs).class\n\t\t]),\n readonly: props.readonly,\n disabled: props.disabled,\n \"aria-expanded\": open.value,\n \"aria-haspopup\": \"listbox\",\n size: props.size,\n onClick: onClick,\n onKeydown: _withModifiers(onKeydown, [\"stop\"])\n }, _createSlots({\n append: _withCtx(() => [\n (canClear.value && value.value)\n ? (_openBlock(), _createBlock(_unref(QIcon), _mergeProps({ key: 0 }, props.icons.clear, {\n class: \"q-select__clear\",\n onClick: _withModifiers(clear, [\"stop\",\"prevent\"])\n }), null, 16, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n (!props.readonly && !props.disabled)\n ? (_openBlock(), _createBlock(_unref(QIcon), _mergeProps({ key: 1 }, props.icons.chevron, { class: \"q-select__chevron\" }), null, 16))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n (value.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(displayValue.value), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.texts.placeholder), 1))\n ]),\n _: 2\n }, [\n (selectedItem.value?.icon)\n ? {\n name: \"prepend\",\n fn: _withCtx(() => [\n _createVNode(_unref(QIcon), _normalizeProps(_guardReactiveProps(selectedItem.value?.icon)), null, 16)\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1032, [\"id\", \"label\", \"required\", \"class\", \"readonly\", \"disabled\", \"aria-expanded\", \"size\", \"onKeydown\"]),\n (triggerEl.value?.fieldRef)\n ? (_openBlock(), _createBlock(_unref(QOverlay), {\n key: 0,\n \"model-value\": open.value,\n spy: \"\",\n trigger: \"manual\",\n placement: \"bottom\",\n width: \"anchor\",\n offset: 2,\n anchor: triggerEl.value?.fieldRef,\n onEnter: onOverlayEnter,\n onLeave: onOverlayLeave\n }, {\n default: _withCtx(() => [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n ref_key: \"contentRef\",\n ref: contentRef,\n class: \"q-select__body\"\n }, [\n _renderSlot(_ctx.$slots, \"body.prepend\"),\n (props.loading)\n ? (_openBlock(), _createBlock(_unref(QSpinnerLoader), {\n key: 0,\n class: \"q-select__loader\",\n size: 24\n }))\n : (_openBlock(), _createBlock(_unref(QList), {\n key: 1,\n ref_key: \"listRef\",\n ref: listRef,\n class: \"q-select__items\",\n modelValue: value.value,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n onSelect\n ],\n items: props.items,\n groups: _ctx.groups,\n \"item-label\": props.itemLabel,\n \"item-value\": props.itemValue,\n onKeydown: _withModifiers(onKeydown, [\"stop\"])\n }, null, 8, [\"modelValue\", \"items\", \"groups\", \"item-label\", \"item-value\", \"onKeydown\"])),\n _renderSlot(_ctx.$slots, \"body.append\")\n ])), [\n [_unref(vClickOutside), onClickOutside]\n ])\n ]),\n _: 3\n }, 8, [\"model-value\", \"anchor\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","// Components\nimport _QSelect from './QSelect.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QSelect = setupPropsProxy(_QSelect) as typeof _QSelect\n\n// Export components\nexport { QSelect }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, unref as _unref, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"required\", \"placeholder\", \"readonly\", \"disabled\", \"maxlength\"]\n\nimport { QField } from '@/components/QField'\n\n\t// Composables\n\timport { useUid } from '@/composables/uid'\n\n\t// Types\n\timport type { QFieldSize } from '@/components/QField'\n\n\t// Utils\n\timport { computed, ref, watch } from 'vue'\n\n\texport type QTextFieldProps = {\n\t\t/**\n\t\t * The value of the text field.\n\t\t */\n\t\tmodelValue?: string\n\n\t\t/**\n\t\t * The field unique identifier.\n\t\t */\n\t\tid?: string\n\n\t\t/**\n\t\t * The placeholder text for the text field.\n\t\t */\n\t\tplaceholder?: string\n\n\t\t/**\n\t\t * The label of the input.\n\t\t */\n\t\tlabel?: string\n\n\t\t/**\n\t\t * The size of the text field.\n\t\t */\n\t\tsize?: QFieldSize\n\n\t\t/**\n\t\t * If set, defines the maximum string length\n\t\t * that the user can enter into the text field.\n\t\t */\n\t\tmaxLength?: number\n\n\t\t/**\n\t\t * If set to true, the text field is read-only.\n\t\t */\n\t\treadonly?: boolean\n\n\t\t/**\n\t\t * If set to true, the text field is disabled.\n\t\t */\n\t\tdisabled?: boolean\n\n\t\t/**\n\t\t * If set to true, an asterisk (*) is displayed\n\t\t * to indicate that the text field is required.\n\t\t */\n\t\trequired?: boolean\n\t}\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n __name: 'QTextField',\n props: {\n modelValue: { default: '' },\n id: { default: () => useUid() },\n placeholder: { default: '' },\n label: { default: '' },\n size: { default: 'medium' },\n maxLength: { default: undefined },\n readonly: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n required: { type: Boolean, default: false }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\n\tconst _value = ref(props.modelValue)\n\n\tconst value = computed({\n\t\tget() {\n\t\t\treturn _value.value\n\t\t},\n\t\tset(newVal: string) {\n\t\t\t_value.value = newVal\n\t\t\temit('update:modelValue', newVal)\n\t\t}\n\t})\n\n\twatch(\n\t\t() => props.modelValue,\n\t\t(newVal) => (_value.value = newVal)\n\t)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QField), {\n class: \"q-text-field\",\n id: _ctx.id,\n label: props.label,\n size: props.size,\n readonly: props.readonly,\n disabled: props.disabled,\n required: props.required\n }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"input\", {\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n class: \"q-text-field__input\",\n type: \"text\",\n required: props.required,\n placeholder: props.placeholder,\n readonly: props.readonly,\n disabled: props.disabled,\n maxlength: props.maxLength\n }, null, 8, _hoisted_1), [\n [\n _vModelText,\n value.value,\n void 0,\n { lazy: true }\n ]\n ])\n ]),\n _: 1\n }, 8, [\"id\", \"label\", \"size\", \"readonly\", \"disabled\", \"required\"]))\n}\n}\n\n})","// Components\nimport _QTextField from './QTextField.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QTextField = setupPropsProxy(_QTextField) as typeof _QTextField\n\n// Export components\nexport { QTextField }\n","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\nconst _hoisted_2 = { key: 1 }\n\nimport { QOverlay } from '@/components/QOverlay'\n\n\t// Composables\n\timport { Appearance, Placement, Trigger } from '@/composables/overlay'\n\timport { Selector } from '@/utils/getElement'\n\n\t\nexport default /*#__PURE__*/_defineComponent({\n ...{\n\t\tinheritAttrs: false\n\t},\n __name: 'QTooltip',\n props: {\n modelValue: { type: Boolean },\n anchor: {},\n appearance: { default: 'inverted' },\n arrow: { type: Boolean, default: true },\n attach: { default: 'body' },\n delay: { default: 500 },\n disabled: { type: Boolean },\n html: { type: Boolean, default: true },\n placement: { default: 'right' },\n text: {},\n trigger: { default: 'hover' }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\t// Components\n\t\n\n\t\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(QOverlay), {\n \"model-value\": props.modelValue,\n anchor: props.anchor,\n appearance: props.appearance,\n arrow: props.arrow,\n attach: props.attach,\n \"content-classes\": ['q-tooltip'],\n delay: props.delay,\n disabled: props.disabled,\n placement: props.placement,\n trigger: props.trigger\n }, {\n default: _withCtx(() => [\n (props.html)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n innerHTML: props.text\n }, null, 8, _hoisted_1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(props.text), 1))\n ]),\n _: 1\n }, 8, [\"model-value\", \"anchor\", \"appearance\", \"arrow\", \"attach\", \"delay\", \"disabled\", \"placement\", \"trigger\"]))\n}\n}\n\n})","// Components\nimport _QTooltip from './QTooltip.vue'\n\n// Utils\nimport { setupPropsProxy } from '@/utils/setupPropsProxy'\n\nconst QTooltip = setupPropsProxy(_QTooltip) as typeof _QTooltip\n\n// Export components\nexport { QTooltip }\n"],"names":["isEmpty","object","isObject","obj","merge","source","target","out","key","sourceProperty","targetProperty","DEFAULTS_SYMBOL","useDefaults","vm","getCurrentInstance","component","defaults","injectDefaults","computed","_a","provideDefaults","currentDefaults","providedDefaults","ref","newDefaults","provide","inject","defaultLightColorScheme","defaultDarkColorScheme","parseColor","color","r","g","b","lighten","rgb","amount","hsl","rgbToHsl","factor","hslToRgb","darken","colorToHex","max","min","h","s","l","d","q","p","hueToRgb","t","THEME_SYMBOL","useTheme","theme","installThemes","app","config","defaultTheme","defaultColorScheme","variable","hex","lightVariant","darkVariant","mergeColorSchemes","defaultThemeName","state","watch","name","activeTheme","generateRootStyle","userColorScheme","colors","themeNode","cssText","value","toProperty","createFramework","components","directives","globalDefaults","_hoisted_1","_createElementVNode","_hoisted_2","_sfc_main$h","_defineComponent","__props","props","loaderStyle","_ctx","_cache","_openBlock","_createElementBlock","_normalizeStyle","propIsDefined","vnode","prop","setupPropsProxy","setup","ctx","componentDefaults","_props","propValue","defaultValue","QSpinnerLoader","_QSpinnerLoader","_hoisted_3","_sfc_main$g","emit","isDisabled","onClick","event","classes","variant","size","_normalizeClass","_withModifiers","_createVNode","_unref","_createCommentVNode","_Fragment","_createTextVNode","_toDisplayString","_renderSlot","QButton","_QButton","_sfc_main$f","toRef","QButtonGroup","_QButtonGroup","_sfc_main$e","_active","newVal","active","toggle","option","_createBlock","_withCtx","_renderList","$event","QButtonToggle","_QButtonToggle","counter","useUid","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_main$d","__expose","fieldRef","isRequired","_mergeProps","QField","_QField","_sfc_main$c","QIconSvg","QIconFont","QIconImg","_resolveDynamicComponent","_sfc_main$b","libraryVariant","iconClass","iconStyle","_sfc_main$a","cache","InlineSvg","defineComponent","ctn","createElement","cprops","attrs","a","svgEl","setTitle","src","makePromiseState","svg","err","url","response","text","newValue","title","titleTags","titleEl","promise","isPending","result","v","e","_sfc_main$9","QIcon","_QIcon","_QIconFont","_QIconImg","_QIconSvg","QLineLoader","_QLineLoader","_sfc_main$7","listTag","groups","listRef","onItemSelect","onFocus","targetIdx","item","focusItem","onKeyDown","focus","direction","getAdjacentItemIdx","itemIdx","getFocusableChildren","nodes","getActiveItemIndex","items","idx","getGroupItems","group","QListItemGroup","QListItem","DEFAULT_ICONS","_sfc_main$6","onSelect","_normalizeProps","_sfc_main$5","id","QList","_QList","_QListItem","_QListItemGroup","computePosition","anchor","overlay","tentativePlacement","width","anchorPosition","left","top","overlayPosition","overlayWidth","overlayHeight","placement","canReposition","getOptimalFallbackPosition","position","to","xOK","yOK","isHorizontalPositionValid","isVerticalPositionValid","current","fallbackOrder","getElement","selector","_sfc_main$4","reactive","visible","overlayProps","xOffset","yOffset","reposition","timeoutId","show","_delay","hide","animationTimeoutId","onLeave","observer","addTargetListeners","nextTick","addRepositionListeners","removeRepositionListeners","autoUpdateTimeoutId","autoUpdate","init","destroy","onBeforeUnmount","onMounted","isVisible","_Teleport","_Transition","QOverlay","_QOverlay","_sfc_main$3","QPopover","_QPopover","useAttrs","_attrs","_useAttrs","clickOutside","el","binding","DEFAULT_TEXTS","_sfc_main$2","open","typed","triggerEl","contentRef","selectedItem","displayValue","canClear","clear","onClickOutside","_b","onKeydown","i","onOverlayEnter","onOverlayLeave","focusMainInput","_createSlots","_guardReactiveProps","_c","_withDirectives","vClickOutside","QSelect","_QSelect","_sfc_main$1","_value","_vModelText","QTextField","_QTextField","_sfc_main","QTooltip","_QTooltip"],"mappings":"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"}