gitextract_0inuvllc/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report--quasar-v2.yml │ │ ├── config.yml │ │ └── docs-report--quasar-v2.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── RELEASE-TEMPLATE.md │ └── workflows/ │ ├── build-types.yml │ ├── comment-build-results.yml │ ├── process-created-issue.yml │ ├── project-creation-tests.yml │ ├── release-notes.yml │ ├── tests-on-pr-report.yml │ └── tests-on-pr.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .npmrc ├── .oxfmtrc.json ├── .oxlintrc.json ├── .sasslintrc ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── ROADMAP.md ├── SECURITY.md ├── app-vite/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── assets/ │ │ └── logo.art │ ├── bin/ │ │ └── quasar.js │ ├── exports/ │ │ ├── bex/ │ │ │ ├── background.js │ │ │ ├── content.js │ │ │ └── private/ │ │ │ └── bex-bridge.js │ │ ├── eslint/ │ │ │ ├── eslint.cjs │ │ │ └── eslint.js │ │ ├── testing/ │ │ │ └── testing.js │ │ └── wrappers.js │ ├── lib/ │ │ ├── app-builder.js │ │ ├── app-devserver.js │ │ ├── app-extension/ │ │ │ ├── AppExtensionInstance.js │ │ │ ├── api-classes/ │ │ │ │ ├── BaseAPI.js │ │ │ │ ├── IndexAPI.js │ │ │ │ ├── InstallAPI.js │ │ │ │ ├── PromptsAPI.js │ │ │ │ └── UninstallAPI.js │ │ │ └── create-app-ext.js │ │ ├── app-tool.js │ │ ├── cache/ │ │ │ ├── create-cache-proxy.js │ │ │ ├── module.animations.js │ │ │ ├── module.capCli.js │ │ │ ├── module.cssVariables.js │ │ │ ├── module.electron.js │ │ │ ├── module.hasTypescript.js │ │ │ ├── module.nodePackager.js │ │ │ ├── module.storeProvider.js │ │ │ └── module.workboxBuild.js │ │ ├── cmd/ │ │ │ ├── build.js │ │ │ ├── clean.js │ │ │ ├── describe.js │ │ │ ├── dev.js │ │ │ ├── ext.js │ │ │ ├── help.js │ │ │ ├── info.js │ │ │ ├── inspect.js │ │ │ ├── mode.js │ │ │ ├── new.js │ │ │ ├── prepare.js │ │ │ └── run.js │ │ ├── config-tools.js │ │ ├── entry-files-generator.js │ │ ├── modes/ │ │ │ ├── bex/ │ │ │ │ ├── bex-builder.js │ │ │ │ ├── bex-config.js │ │ │ │ ├── bex-devserver.js │ │ │ │ ├── bex-installation.js │ │ │ │ └── bex-utils.js │ │ │ ├── capacitor/ │ │ │ │ ├── capacitor-builder.js │ │ │ │ ├── capacitor-config.js │ │ │ │ ├── capacitor-consistency.js │ │ │ │ ├── capacitor-devserver.js │ │ │ │ ├── capacitor-installation.js │ │ │ │ └── config-file.js │ │ │ ├── cordova/ │ │ │ │ ├── android-cleartext.js │ │ │ │ ├── config-file.js │ │ │ │ ├── cordova-builder.js │ │ │ │ ├── cordova-config.js │ │ │ │ ├── cordova-consistency.js │ │ │ │ ├── cordova-devserver.js │ │ │ │ ├── cordova-installation.js │ │ │ │ └── vite-plugin.dev.cordova-platform-inject.js │ │ │ ├── electron/ │ │ │ │ ├── electron-builder.js │ │ │ │ ├── electron-config.js │ │ │ │ ├── electron-consistency.js │ │ │ │ ├── electron-devserver.js │ │ │ │ └── electron-installation.js │ │ │ ├── modes-utils.js │ │ │ ├── pwa/ │ │ │ │ ├── pwa-builder.js │ │ │ │ ├── pwa-config.js │ │ │ │ ├── pwa-devserver.js │ │ │ │ ├── pwa-installation.js │ │ │ │ ├── utils.js │ │ │ │ └── vite-plugin.pwa-resources.js │ │ │ ├── spa/ │ │ │ │ ├── spa-builder.js │ │ │ │ ├── spa-config.js │ │ │ │ ├── spa-devserver.js │ │ │ │ └── spa-installation.js │ │ │ └── ssr/ │ │ │ ├── ssr-builder.js │ │ │ ├── ssr-config.js │ │ │ ├── ssr-consistency.js │ │ │ ├── ssr-devserver.js │ │ │ └── ssr-installation.js │ │ ├── node-version-check.js │ │ ├── plugins/ │ │ │ ├── rolldown.inject-replacements.js │ │ │ ├── rolldown.vue-shim.js │ │ │ ├── vite.index-html-transform.js │ │ │ └── vite.strip-filename-hashes.js │ │ ├── quasar-config-file.js │ │ ├── types-generator.js │ │ └── utils/ │ │ ├── app-files-validations.js │ │ ├── banner.js │ │ ├── build-targets.js │ │ ├── cli-runtime.js │ │ ├── encode-for-diff.js │ │ ├── ensure-argv.js │ │ ├── env.js │ │ ├── escape-regex-string.js │ │ ├── get-api.js │ │ ├── get-app-paths.js │ │ ├── get-caller-path.js │ │ ├── get-ctx.js │ │ ├── get-external-ip.js │ │ ├── get-fixed-deps.js │ │ ├── get-package-json.js │ │ ├── get-package-major-version.js │ │ ├── get-package-path.js │ │ ├── get-package.js │ │ ├── get-pkg.js │ │ ├── html-template.js │ │ ├── is-terminal.js │ │ ├── logger.js │ │ ├── net.js │ │ ├── on-shutdown.js │ │ ├── open-browser.js │ │ ├── open-ide.js │ │ ├── print-build-summary.js │ │ ├── rate-limit.js │ │ ├── resolve-extension.js │ │ ├── signals.js │ │ ├── spawn.js │ │ └── template.js │ ├── package.json │ ├── playground-js/ │ │ ├── index.html │ │ ├── jsconfig.json │ │ ├── package.json │ │ ├── public/ │ │ │ └── .gitkeep │ │ ├── quasar.config.js │ │ └── src/ │ │ ├── App.vue │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── boot/ │ │ │ └── .gitkeep │ │ ├── components/ │ │ │ └── EssentialLink.vue │ │ ├── css/ │ │ │ ├── app.scss │ │ │ └── quasar.variables.scss │ │ ├── layouts/ │ │ │ └── MainLayout.vue │ │ ├── pages/ │ │ │ ├── ErrorNotFound.vue │ │ │ └── IndexPage.vue │ │ └── router/ │ │ ├── index.js │ │ └── routes.js │ ├── playground-ts/ │ │ ├── index.html │ │ ├── package.json │ │ ├── public/ │ │ │ └── .gitkeep │ │ ├── quasar.config.ts │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── boot/ │ │ │ │ └── .gitkeep │ │ │ ├── components/ │ │ │ │ ├── EssentialLink.vue │ │ │ │ ├── ExampleComponent.vue │ │ │ │ └── models.ts │ │ │ ├── css/ │ │ │ │ ├── app.scss │ │ │ │ └── quasar.variables.scss │ │ │ ├── env.d.ts │ │ │ ├── layouts/ │ │ │ │ └── MainLayout.vue │ │ │ ├── pages/ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ └── IndexPage.vue │ │ │ └── router/ │ │ │ ├── index.ts │ │ │ └── routes.ts │ │ └── tsconfig.json │ ├── templates/ │ │ ├── app/ │ │ │ ├── js/ │ │ │ │ ├── boot.js │ │ │ │ ├── component.vue │ │ │ │ ├── layout.vue │ │ │ │ ├── page.vue │ │ │ │ ├── ssrmiddleware.js │ │ │ │ └── store.js │ │ │ └── ts/ │ │ │ ├── boot.ts │ │ │ ├── component.vue │ │ │ ├── layout.vue │ │ │ ├── page.vue │ │ │ ├── ssrmiddleware.ts │ │ │ └── store.ts │ │ ├── bex/ │ │ │ ├── common/ │ │ │ │ └── assets/ │ │ │ │ └── content.css │ │ │ ├── js/ │ │ │ │ ├── background.js │ │ │ │ ├── manifest.json │ │ │ │ └── my-content-script.js │ │ │ └── ts/ │ │ │ ├── background.ts │ │ │ ├── bex-env.d.ts │ │ │ ├── manifest.json │ │ │ └── my-content-script.ts │ │ ├── capacitor/ │ │ │ ├── capacitor.config.json │ │ │ ├── package.json │ │ │ ├── pnpm-workspace.yaml │ │ │ └── www/ │ │ │ └── index.html │ │ ├── cordova/ │ │ │ └── www/ │ │ │ └── index.html │ │ ├── electron/ │ │ │ ├── common/ │ │ │ │ ├── icons/ │ │ │ │ │ └── icon.icns │ │ │ │ ├── package.json │ │ │ │ └── pnpm-workspace.yaml │ │ │ ├── js/ │ │ │ │ ├── electron-main.js │ │ │ │ └── electron-preload.js │ │ │ └── ts/ │ │ │ ├── electron-env.d.ts │ │ │ ├── electron-main.ts │ │ │ └── electron-preload.ts │ │ ├── entry/ │ │ │ ├── app.js │ │ │ ├── bex-app.js │ │ │ ├── client-entry.js │ │ │ ├── client-prefetch.js │ │ │ ├── quasar-user-options.js │ │ │ ├── server-entry.js │ │ │ ├── ssr-dev-webserver.js │ │ │ ├── ssr-middlewares.js │ │ │ └── ssr-prod-webserver.js │ │ ├── pwa/ │ │ │ ├── js/ │ │ │ │ ├── custom-service-worker.js │ │ │ │ ├── manifest.json │ │ │ │ └── register-service-worker.js │ │ │ └── ts/ │ │ │ ├── custom-service-worker.ts │ │ │ ├── manifest.json │ │ │ ├── pwa-env.d.ts │ │ │ ├── register-service-worker.ts │ │ │ └── tsconfig.json │ │ ├── ssr/ │ │ │ ├── express/ │ │ │ │ ├── common/ │ │ │ │ │ ├── pnpm-workspace.yaml │ │ │ │ │ └── server-assets/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── js/ │ │ │ │ │ ├── middlewares/ │ │ │ │ │ │ └── render.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── server.js │ │ │ │ └── ts/ │ │ │ │ ├── middlewares/ │ │ │ │ │ └── render.ts │ │ │ │ ├── package.json │ │ │ │ ├── server.ts │ │ │ │ └── ssr-env.d.ts │ │ │ ├── fastify/ │ │ │ │ ├── common/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── pnpm-workspace.yaml │ │ │ │ │ └── server-assets/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── js/ │ │ │ │ │ ├── middlewares/ │ │ │ │ │ │ └── render.js │ │ │ │ │ └── server.js │ │ │ │ └── ts/ │ │ │ │ ├── middlewares/ │ │ │ │ │ └── render.ts │ │ │ │ ├── server.ts │ │ │ │ └── ssr-env.d.ts │ │ │ ├── hono/ │ │ │ │ ├── common/ │ │ │ │ │ ├── package.json │ │ │ │ │ ├── pnpm-workspace.yaml │ │ │ │ │ └── server-assets/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── js/ │ │ │ │ │ ├── middlewares/ │ │ │ │ │ │ └── render.js │ │ │ │ │ └── server.js │ │ │ │ └── ts/ │ │ │ │ ├── middlewares/ │ │ │ │ │ └── render.ts │ │ │ │ ├── server.ts │ │ │ │ └── ssr-env.d.ts │ │ │ └── koa/ │ │ │ ├── common/ │ │ │ │ ├── pnpm-workspace.yaml │ │ │ │ └── server-assets/ │ │ │ │ └── .gitkeep │ │ │ ├── js/ │ │ │ │ ├── middlewares/ │ │ │ │ │ └── render.js │ │ │ │ ├── package.json │ │ │ │ └── server.js │ │ │ └── ts/ │ │ │ ├── middlewares/ │ │ │ │ └── render.ts │ │ │ ├── package.json │ │ │ ├── server.ts │ │ │ └── ssr-env.d.ts │ │ └── store/ │ │ └── pinia/ │ │ ├── js/ │ │ │ └── index.js │ │ └── ts/ │ │ └── index.ts │ └── types/ │ ├── app-extension.d.ts │ ├── app-paths.d.ts │ ├── app-wrappers.d.ts │ ├── bex/ │ │ ├── bridge.d.ts │ │ ├── entrypoints/ │ │ │ ├── background.d.ts │ │ │ ├── content.d.ts │ │ │ └── create-bridge.d.ts │ │ └── index.d.ts │ ├── boot.d.ts │ ├── client/ │ │ ├── src-bex.d.ts │ │ ├── src-electron.d.ts │ │ ├── src-pwa.d.ts │ │ ├── src-ssr.d.ts │ │ └── src.d.ts │ ├── configuration/ │ │ ├── bex.d.ts │ │ ├── boot.d.ts │ │ ├── build.d.ts │ │ ├── capacitor-conf.d.ts │ │ ├── conf.d.ts │ │ ├── context.d.ts │ │ ├── cordova-conf.d.ts │ │ ├── electron-conf.d.ts │ │ ├── framework-conf.d.ts │ │ ├── mobile-conf.d.ts │ │ ├── pwa-conf.d.ts │ │ └── ssr-conf.d.ts │ ├── configuration.d.ts │ ├── globals.d.ts │ ├── index.d.ts │ ├── prefetch.d.ts │ ├── route.d.ts │ ├── ssr/ │ │ ├── context.d.ts │ │ ├── driver.d.ts │ │ ├── index.d.ts │ │ └── ssrmiddleware.d.ts │ ├── store.d.ts │ └── tsconfig.json ├── app-webpack/ │ ├── .gitignore │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── assets/ │ │ └── logo.art │ ├── bin/ │ │ └── quasar │ ├── exports/ │ │ ├── bex/ │ │ │ ├── background.mjs │ │ │ ├── content.mjs │ │ │ └── private/ │ │ │ └── bex-bridge.mjs │ │ ├── eslint/ │ │ │ ├── eslint.js │ │ │ └── eslint.mjs │ │ ├── testing/ │ │ │ └── testing.js │ │ └── wrappers/ │ │ ├── wrappers.js │ │ └── wrappers.mjs │ ├── lib/ │ │ ├── app-builder.js │ │ ├── app-devserver.js │ │ ├── app-extension/ │ │ │ ├── AppExtensionInstance.js │ │ │ ├── api-classes/ │ │ │ │ ├── BaseAPI.js │ │ │ │ ├── IndexAPI.js │ │ │ │ ├── InstallAPI.js │ │ │ │ ├── PromptsAPI.js │ │ │ │ └── UninstallAPI.js │ │ │ ├── create-app-ext.js │ │ │ └── utils.app-extension.js │ │ ├── app-tool.js │ │ ├── cache/ │ │ │ ├── create-cache-proxy.js │ │ │ ├── module.animations.js │ │ │ ├── module.capCli.js │ │ │ ├── module.cssVariables.js │ │ │ ├── module.electron.js │ │ │ ├── module.eslint.js │ │ │ ├── module.extrasPath.js │ │ │ ├── module.hasTypescript.js │ │ │ ├── module.nodePackager.js │ │ │ ├── module.quasarMeta.js │ │ │ ├── module.storeProvider.js │ │ │ ├── module.vueRouterVersion.js │ │ │ └── module.workboxWebpackPlugin.js │ │ ├── cmd/ │ │ │ ├── build.js │ │ │ ├── clean.js │ │ │ ├── describe.js │ │ │ ├── dev.js │ │ │ ├── ext.js │ │ │ ├── help.js │ │ │ ├── info.js │ │ │ ├── inspect.js │ │ │ ├── mode.js │ │ │ ├── new.js │ │ │ ├── prepare.js │ │ │ └── run.js │ │ ├── config-tools.js │ │ ├── entry-files-generator.js │ │ ├── loaders/ │ │ │ ├── loader.js.transform-quasar-imports.js │ │ │ ├── loader.quasar-scss-variables.js │ │ │ ├── loader.vue.auto-import-quasar.js │ │ │ ├── runtime.auto-import.js │ │ │ └── runtime.inject-module-id.js │ │ ├── modes/ │ │ │ ├── bex/ │ │ │ │ ├── bex-builder.js │ │ │ │ ├── bex-config.js │ │ │ │ ├── bex-devserver.js │ │ │ │ ├── bex-installation.js │ │ │ │ └── bex-utils.js │ │ │ ├── capacitor/ │ │ │ │ ├── capacitor-builder.js │ │ │ │ ├── capacitor-config.js │ │ │ │ ├── capacitor-devserver.js │ │ │ │ ├── capacitor-installation.js │ │ │ │ ├── config-file.js │ │ │ │ └── ensure-consistency.js │ │ │ ├── cordova/ │ │ │ │ ├── android-cleartext.js │ │ │ │ ├── config-file.js │ │ │ │ ├── cordova-builder.js │ │ │ │ ├── cordova-config.js │ │ │ │ ├── cordova-devserver.js │ │ │ │ ├── cordova-installation.js │ │ │ │ └── ensure-consistency.js │ │ │ ├── electron/ │ │ │ │ ├── electron-builder.js │ │ │ │ ├── electron-config.js │ │ │ │ ├── electron-devserver.js │ │ │ │ └── electron-installation.js │ │ │ ├── modes-utils.js │ │ │ ├── pwa/ │ │ │ │ ├── plugin.webpack.pwa-manifest.js │ │ │ │ ├── plugin.webpack.workbox-warning.js │ │ │ │ ├── pwa-builder.js │ │ │ │ ├── pwa-config.js │ │ │ │ ├── pwa-devserver.js │ │ │ │ └── pwa-installation.js │ │ │ ├── spa/ │ │ │ │ ├── spa-builder.js │ │ │ │ ├── spa-config.js │ │ │ │ ├── spa-devserver.js │ │ │ │ └── spa-installation.js │ │ │ └── ssr/ │ │ │ ├── plugin.webpack.client-side.js │ │ │ ├── plugin.webpack.server-side.js │ │ │ ├── ssr-builder.js │ │ │ ├── ssr-config.js │ │ │ ├── ssr-devserver.js │ │ │ └── ssr-installation.js │ │ ├── node-version-check.js │ │ ├── plugins/ │ │ │ ├── esbuild.eslint.js │ │ │ ├── esbuild.inject-replacements.js │ │ │ ├── esbuild.vue-shim.js │ │ │ ├── webpack.boot-default-export.js │ │ │ ├── webpack.html-transform.js │ │ │ └── webpack.progress.js │ │ ├── quasar-config-file.js │ │ ├── testing.js │ │ ├── types-generator.js │ │ └── utils/ │ │ ├── app-files-validations.js │ │ ├── banner.js │ │ ├── cli-runtime.js │ │ ├── encode-for-diff.js │ │ ├── ensure-argv.js │ │ ├── env.js │ │ ├── escape-regex-string.js │ │ ├── get-api.js │ │ ├── get-app-paths.js │ │ ├── get-caller-path.js │ │ ├── get-ctx.js │ │ ├── get-external-ip.js │ │ ├── get-fixed-deps.js │ │ ├── get-package-json.js │ │ ├── get-package-major-version.js │ │ ├── get-package-path.js │ │ ├── get-package.js │ │ ├── get-pkg.js │ │ ├── html-template.js │ │ ├── inject-eslint-plugin.js │ │ ├── inject-style-rules.js │ │ ├── is-minimal-terminal.js │ │ ├── logger.js │ │ ├── net.js │ │ ├── on-shutdown.js │ │ ├── open-browser.js │ │ ├── open-ide.js │ │ ├── print-build-summary.js │ │ ├── print-webpack-issue/ │ │ │ ├── extractWebpackError.js │ │ │ ├── formatters/ │ │ │ │ ├── babelError.js │ │ │ │ ├── defaultError.js │ │ │ │ ├── eslintError.js │ │ │ │ ├── moduleNotFound.js │ │ │ │ └── stringError.js │ │ │ ├── index.js │ │ │ ├── transformErrors.js │ │ │ ├── transformers/ │ │ │ │ ├── babelSyntax.js │ │ │ │ ├── defaultTransformer.js │ │ │ │ ├── esLintError.js │ │ │ │ ├── index.js │ │ │ │ ├── moduleNotFound.js │ │ │ │ └── stringError.js │ │ │ └── utils.js │ │ ├── progress-log.js │ │ ├── resolve-extension.js │ │ ├── signals.js │ │ └── spawn.js │ ├── package.json │ ├── playground-js/ │ │ ├── babel.config.js │ │ ├── index.html │ │ ├── jsconfig.json │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public/ │ │ │ └── .gitkeep │ │ ├── quasar.config.js │ │ └── src/ │ │ ├── App.vue │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── boot/ │ │ │ └── .gitkeep │ │ ├── components/ │ │ │ └── EssentialLink.vue │ │ ├── css/ │ │ │ ├── app.scss │ │ │ └── quasar.variables.scss │ │ ├── layouts/ │ │ │ └── MainLayout.vue │ │ ├── pages/ │ │ │ ├── ErrorNotFound.vue │ │ │ └── IndexPage.vue │ │ └── router/ │ │ ├── index.js │ │ └── routes.js │ ├── playground-ts/ │ │ ├── babel.config.cjs │ │ ├── index.html │ │ ├── package.json │ │ ├── postcss.config.cjs │ │ ├── public/ │ │ │ └── .gitkeep │ │ ├── quasar.config.ts │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── boot/ │ │ │ │ └── .gitkeep │ │ │ ├── components/ │ │ │ │ ├── EssentialLink.vue │ │ │ │ ├── ExampleComponent.vue │ │ │ │ └── models.ts │ │ │ ├── css/ │ │ │ │ ├── app.scss │ │ │ │ └── quasar.variables.scss │ │ │ ├── env.d.ts │ │ │ ├── layouts/ │ │ │ │ └── MainLayout.vue │ │ │ ├── pages/ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ └── IndexPage.vue │ │ │ └── router/ │ │ │ ├── index.ts │ │ │ └── routes.ts │ │ └── tsconfig.json │ ├── templates/ │ │ ├── app/ │ │ │ ├── js/ │ │ │ │ ├── boot.js │ │ │ │ ├── component.vue │ │ │ │ ├── layout.vue │ │ │ │ ├── page.vue │ │ │ │ ├── ssrmiddleware.js │ │ │ │ └── store.js │ │ │ └── ts/ │ │ │ ├── boot.ts │ │ │ ├── component.vue │ │ │ ├── layout.vue │ │ │ ├── page.vue │ │ │ ├── ssrmiddleware.ts │ │ │ └── store.ts │ │ ├── bex/ │ │ │ ├── common/ │ │ │ │ └── assets/ │ │ │ │ └── content.css │ │ │ ├── js/ │ │ │ │ ├── background.js │ │ │ │ ├── manifest.json │ │ │ │ └── my-content-script.js │ │ │ └── ts/ │ │ │ ├── background.ts │ │ │ ├── manifest.json │ │ │ └── my-content-script.ts │ │ ├── capacitor/ │ │ │ ├── capacitor.config.json │ │ │ ├── package.json │ │ │ └── www/ │ │ │ └── index.html │ │ ├── cordova/ │ │ │ └── www/ │ │ │ └── index.html │ │ ├── electron/ │ │ │ ├── icons/ │ │ │ │ └── icon.icns │ │ │ ├── js/ │ │ │ │ ├── electron-main.js │ │ │ │ └── electron-preload.js │ │ │ └── ts/ │ │ │ ├── electron-env.d.ts │ │ │ ├── electron-main.ts │ │ │ └── electron-preload.ts │ │ ├── entry/ │ │ │ ├── app.js │ │ │ ├── bex-app.js │ │ │ ├── client-entry.js │ │ │ ├── client-prefetch.js │ │ │ ├── quasar-user-options.js │ │ │ ├── server-entry.js │ │ │ ├── ssr-dev-webserver.js │ │ │ ├── ssr-middlewares.js │ │ │ └── ssr-prod-webserver.js │ │ ├── pwa/ │ │ │ ├── js/ │ │ │ │ ├── custom-service-worker.js │ │ │ │ ├── manifest.json │ │ │ │ └── register-service-worker.js │ │ │ └── ts/ │ │ │ ├── custom-service-worker.ts │ │ │ ├── manifest.json │ │ │ ├── pwa-env.d.ts │ │ │ ├── register-service-worker.ts │ │ │ └── tsconfig.json │ │ ├── ssr/ │ │ │ ├── js/ │ │ │ │ ├── middlewares/ │ │ │ │ │ └── render.js │ │ │ │ └── server.js │ │ │ └── ts/ │ │ │ ├── middlewares/ │ │ │ │ └── render.ts │ │ │ └── server.ts │ │ └── store/ │ │ └── pinia/ │ │ ├── js/ │ │ │ └── index.js │ │ └── ts/ │ │ └── index.ts │ └── types/ │ ├── app-extension.d.ts │ ├── app-paths.d.ts │ ├── app-wrappers.d.ts │ ├── bex/ │ │ ├── bridge.d.ts │ │ ├── entrypoints/ │ │ │ ├── background.d.ts │ │ │ ├── content.d.ts │ │ │ └── create-bridge.d.ts │ │ └── index.d.ts │ ├── boot.d.ts │ ├── configuration/ │ │ ├── bex.d.ts │ │ ├── boot.d.ts │ │ ├── build.d.ts │ │ ├── capacitor-conf.d.ts │ │ ├── conf.d.ts │ │ ├── context.d.ts │ │ ├── cordova-conf.d.ts │ │ ├── electron-conf.d.ts │ │ ├── eslint.d.ts │ │ ├── framework-conf.d.ts │ │ ├── mobile-conf.d.ts │ │ ├── pwa-conf.d.ts │ │ └── ssr-conf.d.ts │ ├── configuration.d.ts │ ├── globals.d.ts │ ├── index.d.ts │ ├── prefetch.d.ts │ ├── route.d.ts │ ├── ssr/ │ │ ├── context.d.ts │ │ ├── driver.d.ts │ │ ├── index.d.ts │ │ └── ssrmiddleware.d.ts │ ├── store.d.ts │ ├── tsconfig.json │ └── ui-wrappers.d.ts ├── backers.md ├── cli/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── assets/ │ │ └── logo.art │ ├── bin/ │ │ └── quasar.js │ ├── lib/ │ │ ├── app-paths.js │ │ ├── app-pkg.js │ │ ├── cli-pkg.js │ │ ├── cmd/ │ │ │ ├── create.js │ │ │ ├── help.js │ │ │ ├── info.js │ │ │ ├── serve.js │ │ │ └── upgrade.js │ │ ├── get-package-json.js │ │ ├── get-package-path.js │ │ ├── is-terminal.js │ │ ├── logger.js │ │ ├── net.js │ │ ├── node-packager.js │ │ ├── node-version-check.js │ │ └── spawn.js │ └── package.json ├── create-quasar/ │ ├── .gitignore │ ├── README.md │ ├── assets/ │ │ └── logo.art │ ├── index.js │ ├── package.json │ ├── scripts/ │ │ ├── create-test-project.ts │ │ └── tsconfig.json │ ├── templates/ │ │ ├── __eslint.config.base.js │ │ ├── app/ │ │ │ ├── __eslint.config.js │ │ │ ├── create-quasar-script.js │ │ │ └── quasar-v2/ │ │ │ ├── create-quasar-script.js │ │ │ ├── js-vite-2/ │ │ │ │ ├── BASE/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.editorconfig │ │ │ │ │ ├── _.gitignore │ │ │ │ │ ├── _.vscode/ │ │ │ │ │ │ ├── extensions.json │ │ │ │ │ │ └── settings.json │ │ │ │ │ ├── _jsconfig.json │ │ │ │ │ ├── _package.json │ │ │ │ │ ├── _pnpm-workspace.yaml │ │ │ │ │ ├── index.html │ │ │ │ │ ├── postcss.config.js │ │ │ │ │ ├── quasar.config.js │ │ │ │ │ └── src/ │ │ │ │ │ ├── App.vue │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── _.gitkeep │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── EssentialLink.vue │ │ │ │ │ ├── layouts/ │ │ │ │ │ │ └── MainLayout.vue │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ │ │ └── IndexPage.vue │ │ │ │ │ └── router/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── routes.js │ │ │ │ ├── __.eslintrc.cjs │ │ │ │ ├── create-quasar-script.js │ │ │ │ ├── css/ │ │ │ │ │ └── src/ │ │ │ │ │ └── css/ │ │ │ │ │ └── app.css │ │ │ │ ├── eslint/ │ │ │ │ │ └── _eslint.config.js │ │ │ │ ├── i18n/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── i18n.js │ │ │ │ │ └── i18n/ │ │ │ │ │ ├── en-US/ │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ ├── pinia/ │ │ │ │ │ └── src/ │ │ │ │ │ └── stores/ │ │ │ │ │ ├── example-store.js │ │ │ │ │ └── index.js │ │ │ │ ├── prettier/ │ │ │ │ │ └── _.prettierrc.json │ │ │ │ └── sass/ │ │ │ │ └── src/ │ │ │ │ └── css/ │ │ │ │ ├── app.scss │ │ │ │ └── quasar.variables.scss │ │ │ ├── js-webpack-4/ │ │ │ │ ├── BASE/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.editorconfig │ │ │ │ │ ├── _.gitignore │ │ │ │ │ ├── _.vscode/ │ │ │ │ │ │ ├── extensions.json │ │ │ │ │ │ └── settings.json │ │ │ │ │ ├── _jsconfig.json │ │ │ │ │ ├── _package.json │ │ │ │ │ ├── _pnpm-workspace.yaml │ │ │ │ │ ├── babel.config.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── postcss.config.js │ │ │ │ │ ├── quasar.config.js │ │ │ │ │ └── src/ │ │ │ │ │ ├── App.vue │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── _.gitkeep │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── EssentialLink.vue │ │ │ │ │ ├── layouts/ │ │ │ │ │ │ └── MainLayout.vue │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ │ │ └── IndexPage.vue │ │ │ │ │ └── router/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── routes.js │ │ │ │ ├── __.eslintrc.cjs │ │ │ │ ├── create-quasar-script.js │ │ │ │ ├── css/ │ │ │ │ │ └── src/ │ │ │ │ │ └── css/ │ │ │ │ │ └── app.css │ │ │ │ ├── eslint/ │ │ │ │ │ └── _eslint.config.js │ │ │ │ ├── i18n/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── i18n.js │ │ │ │ │ └── i18n/ │ │ │ │ │ ├── en-US/ │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ ├── pinia/ │ │ │ │ │ └── src/ │ │ │ │ │ └── stores/ │ │ │ │ │ ├── example-store.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── store-flag.d.ts │ │ │ │ ├── prettier/ │ │ │ │ │ └── _.prettierrc.json │ │ │ │ └── sass/ │ │ │ │ └── src/ │ │ │ │ └── css/ │ │ │ │ ├── app.scss │ │ │ │ └── quasar.variables.scss │ │ │ ├── ts-vite-2/ │ │ │ │ ├── BASE/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.editorconfig │ │ │ │ │ ├── _.gitignore │ │ │ │ │ ├── _.vscode/ │ │ │ │ │ │ ├── extensions.json │ │ │ │ │ │ └── settings.json │ │ │ │ │ ├── _package.json │ │ │ │ │ ├── _pnpm-workspace.yaml │ │ │ │ │ ├── _tsconfig.json │ │ │ │ │ ├── index.html │ │ │ │ │ ├── postcss.config.js │ │ │ │ │ ├── quasar.config.ts │ │ │ │ │ └── src/ │ │ │ │ │ ├── App.vue │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── _.gitkeep │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── EssentialLink.vue │ │ │ │ │ │ ├── ExampleComponent.vue │ │ │ │ │ │ └── models.ts │ │ │ │ │ ├── env.d.ts │ │ │ │ │ ├── layouts/ │ │ │ │ │ │ └── MainLayout.vue │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ │ │ └── IndexPage.vue │ │ │ │ │ └── router/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── routes.ts │ │ │ │ ├── __.eslintrc.cjs │ │ │ │ ├── create-quasar-script.js │ │ │ │ ├── css/ │ │ │ │ │ └── src/ │ │ │ │ │ └── css/ │ │ │ │ │ └── app.css │ │ │ │ ├── eslint/ │ │ │ │ │ └── _eslint.config.js │ │ │ │ ├── i18n/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── i18n.ts │ │ │ │ │ └── i18n/ │ │ │ │ │ ├── en-US/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── pinia/ │ │ │ │ │ └── src/ │ │ │ │ │ └── stores/ │ │ │ │ │ ├── example-store.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── prettier/ │ │ │ │ │ └── _.prettierrc.json │ │ │ │ └── sass/ │ │ │ │ └── src/ │ │ │ │ └── css/ │ │ │ │ ├── app.scss │ │ │ │ └── quasar.variables.scss │ │ │ └── ts-webpack-4/ │ │ │ ├── BASE/ │ │ │ │ ├── README.md │ │ │ │ ├── _.editorconfig │ │ │ │ ├── _.gitignore │ │ │ │ ├── _.vscode/ │ │ │ │ │ ├── extensions.json │ │ │ │ │ └── settings.json │ │ │ │ ├── _package.json │ │ │ │ ├── _pnpm-workspace.yaml │ │ │ │ ├── _tsconfig.json │ │ │ │ ├── babel.config.cjs │ │ │ │ ├── index.html │ │ │ │ ├── postcss.config.cjs │ │ │ │ ├── quasar.config.ts │ │ │ │ └── src/ │ │ │ │ ├── App.vue │ │ │ │ ├── boot/ │ │ │ │ │ └── _.gitkeep │ │ │ │ ├── components/ │ │ │ │ │ ├── EssentialLink.vue │ │ │ │ │ ├── ExampleComponent.vue │ │ │ │ │ └── models.ts │ │ │ │ ├── env.d.ts │ │ │ │ ├── layouts/ │ │ │ │ │ └── MainLayout.vue │ │ │ │ ├── pages/ │ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ │ └── IndexPage.vue │ │ │ │ └── router/ │ │ │ │ ├── index.ts │ │ │ │ └── routes.ts │ │ │ ├── __.eslintrc.cjs │ │ │ ├── create-quasar-script.js │ │ │ ├── css/ │ │ │ │ └── src/ │ │ │ │ └── css/ │ │ │ │ └── app.css │ │ │ ├── eslint/ │ │ │ │ └── _eslint.config.js │ │ │ ├── i18n/ │ │ │ │ └── src/ │ │ │ │ ├── boot/ │ │ │ │ │ └── i18n.ts │ │ │ │ └── i18n/ │ │ │ │ ├── en-US/ │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── pinia/ │ │ │ │ └── src/ │ │ │ │ └── stores/ │ │ │ │ ├── example-store.ts │ │ │ │ └── index.ts │ │ │ ├── prettier/ │ │ │ │ └── _.prettierrc.json │ │ │ └── sass/ │ │ │ └── src/ │ │ │ └── css/ │ │ │ ├── app.scss │ │ │ └── quasar.variables.scss │ │ ├── app-extension/ │ │ │ ├── __eslint.config.js │ │ │ ├── ae-js/ │ │ │ │ ├── BASE/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.gitignore │ │ │ │ │ ├── _package.json │ │ │ │ │ └── src/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── templates/ │ │ │ │ │ └── _.gitkeep │ │ │ │ ├── create-quasar-script.js │ │ │ │ ├── install-script/ │ │ │ │ │ └── src/ │ │ │ │ │ └── install.js │ │ │ │ ├── prompts-script/ │ │ │ │ │ └── src/ │ │ │ │ │ └── prompts.js │ │ │ │ └── uninstall-script/ │ │ │ │ └── src/ │ │ │ │ └── uninstall.js │ │ │ ├── ae-ts/ │ │ │ │ ├── BASE/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.gitignore │ │ │ │ │ ├── _.vscode/ │ │ │ │ │ │ ├── extensions.json │ │ │ │ │ │ └── settings.json │ │ │ │ │ ├── _eslint.config.js │ │ │ │ │ ├── _package.json │ │ │ │ │ ├── _tsconfig.json │ │ │ │ │ ├── app-extension/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── _.npmignore │ │ │ │ │ │ ├── _package.json │ │ │ │ │ │ ├── _tsconfig.json │ │ │ │ │ │ └── src/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── quasar.d.ts │ │ │ │ │ │ └── runtime/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── boot/ │ │ │ │ │ │ │ └── register.ts │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── MyButton.vue │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── quasar.d.ts │ │ │ │ │ │ └── shims-vue.d.ts │ │ │ │ │ └── playground/ │ │ │ │ │ ├── quasar-cli-vite/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── _.gitignore │ │ │ │ │ │ ├── _package.json │ │ │ │ │ │ ├── _tsconfig.json │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── postcss.config.cjs │ │ │ │ │ │ ├── quasar.config.ts │ │ │ │ │ │ ├── quasar.extensions.json │ │ │ │ │ │ └── src/ │ │ │ │ │ │ ├── App.vue │ │ │ │ │ │ ├── boot/ │ │ │ │ │ │ │ └── _.gitkeep │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── EssentialLink.vue │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ ├── app.scss │ │ │ │ │ │ │ └── quasar.variables.scss │ │ │ │ │ │ ├── env.d.ts │ │ │ │ │ │ ├── layouts/ │ │ │ │ │ │ │ └── MainLayout.vue │ │ │ │ │ │ ├── pages/ │ │ │ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ │ │ │ └── IndexPage.vue │ │ │ │ │ │ ├── quasar.d.ts │ │ │ │ │ │ ├── router/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── routes.ts │ │ │ │ │ │ └── shims-vue.d.ts │ │ │ │ │ └── quasar-cli-webpack/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.gitignore │ │ │ │ │ ├── _package.json │ │ │ │ │ ├── _tsconfig.json │ │ │ │ │ ├── babel.config.cjs │ │ │ │ │ ├── index.html │ │ │ │ │ ├── postcss.config.cjs │ │ │ │ │ ├── quasar.config.ts │ │ │ │ │ ├── quasar.extensions.json │ │ │ │ │ └── src/ │ │ │ │ │ ├── App.vue │ │ │ │ │ ├── boot/ │ │ │ │ │ │ └── _.gitkeep │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── EssentialLink.vue │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── app.scss │ │ │ │ │ │ └── quasar.variables.scss │ │ │ │ │ ├── env.d.ts │ │ │ │ │ ├── layouts/ │ │ │ │ │ │ └── MainLayout.vue │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── ErrorNotFound.vue │ │ │ │ │ │ └── IndexPage.vue │ │ │ │ │ ├── quasar.d.ts │ │ │ │ │ ├── router/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── routes.ts │ │ │ │ │ └── shims-vue.d.ts │ │ │ │ ├── create-quasar-script.js │ │ │ │ ├── install-script/ │ │ │ │ │ └── app-extension/ │ │ │ │ │ └── src/ │ │ │ │ │ ├── install.ts │ │ │ │ │ └── templates/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _.gitkeep │ │ │ │ │ └── base/ │ │ │ │ │ └── _.gitkeep │ │ │ │ ├── pnpm/ │ │ │ │ │ └── _pnpm-workspace.yaml │ │ │ │ ├── prompts-script/ │ │ │ │ │ └── app-extension/ │ │ │ │ │ └── src/ │ │ │ │ │ └── prompts.ts │ │ │ │ └── uninstall-script/ │ │ │ │ └── app-extension/ │ │ │ │ └── src/ │ │ │ │ └── uninstall.ts │ │ │ └── create-quasar-script.js │ │ └── ui-kit/ │ │ ├── __eslint.config.js │ │ ├── create-quasar-script.js │ │ └── quasar-v2/ │ │ ├── BASE/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── _.gitignore │ │ │ ├── _jsconfig.json │ │ │ └── ui/ │ │ │ ├── README.md │ │ │ ├── _.npmignore │ │ │ ├── _package.json │ │ │ ├── build/ │ │ │ │ ├── config.js │ │ │ │ ├── index.js │ │ │ │ ├── script.clean.js │ │ │ │ ├── script.css.js │ │ │ │ ├── script.javascript.js │ │ │ │ ├── script.open-umd.js │ │ │ │ └── utils.js │ │ │ ├── dev/ │ │ │ │ ├── README.md │ │ │ │ ├── _.editorconfig │ │ │ │ ├── _.gitignore │ │ │ │ ├── _.postcssrc.js │ │ │ │ ├── _package.json │ │ │ │ ├── babel.config.js │ │ │ │ ├── quasar.config.js │ │ │ │ └── src/ │ │ │ │ ├── App.vue │ │ │ │ ├── assets/ │ │ │ │ │ └── _.gitkeep │ │ │ │ ├── boot/ │ │ │ │ │ └── register.js │ │ │ │ ├── components/ │ │ │ │ │ └── _.gitkeep │ │ │ │ ├── css/ │ │ │ │ │ ├── app.sass │ │ │ │ │ └── quasar.variables.sass │ │ │ │ ├── index.template.html │ │ │ │ ├── layouts/ │ │ │ │ │ └── MyLayout.vue │ │ │ │ ├── pages/ │ │ │ │ │ ├── Error404.vue │ │ │ │ │ ├── Index.vue │ │ │ │ │ └── Test1.vue │ │ │ │ └── router/ │ │ │ │ ├── index.js │ │ │ │ ├── pages.js │ │ │ │ └── routes.js │ │ │ ├── src/ │ │ │ │ ├── index.common.js │ │ │ │ ├── index.esm.js │ │ │ │ ├── index.sass │ │ │ │ ├── index.umd.js │ │ │ │ └── vue-plugin.js │ │ │ └── umd-test.html │ │ ├── ae/ │ │ │ └── app-extension/ │ │ │ ├── README.md │ │ │ ├── _.npmignore │ │ │ ├── _package.json │ │ │ └── src/ │ │ │ ├── boot/ │ │ │ │ └── register.js │ │ │ ├── index.js │ │ │ └── templates/ │ │ │ └── _.gitkeep │ │ ├── ae-install/ │ │ │ └── app-extension/ │ │ │ └── src/ │ │ │ └── install.js │ │ ├── ae-prompts/ │ │ │ └── app-extension/ │ │ │ └── src/ │ │ │ └── prompts.js │ │ ├── ae-uninstall/ │ │ │ └── app-extension/ │ │ │ └── src/ │ │ │ └── uninstall.js │ │ ├── create-quasar-script.js │ │ ├── ui-ae/ │ │ │ └── ui/ │ │ │ └── build/ │ │ │ └── script.app-ext.js │ │ ├── ui-component/ │ │ │ └── ui/ │ │ │ └── src/ │ │ │ └── components/ │ │ │ ├── Component.js │ │ │ └── Component.sass │ │ └── ui-directive/ │ │ └── ui/ │ │ └── src/ │ │ └── directives/ │ │ ├── Directive.js │ │ └── Directive.sass │ └── utils/ │ ├── index.js │ ├── logger.js │ └── template.js ├── docs/ │ ├── .gitignore │ ├── .npmrc │ ├── README.md │ ├── build/ │ │ ├── chunks.js │ │ ├── copy-quasar-api.js │ │ ├── examples.js │ │ ├── fix-ssr-manifest.js │ │ ├── md/ │ │ │ ├── flat-menu.js │ │ │ ├── index.js │ │ │ ├── md-parse-utils.js │ │ │ ├── md-parse.js │ │ │ ├── md-plugin-blockquote.js │ │ │ ├── md-plugin-codeblock.js │ │ │ ├── md-plugin-containers.js │ │ │ ├── md-plugin-heading.js │ │ │ ├── md-plugin-image.js │ │ │ ├── md-plugin-link.js │ │ │ ├── md-plugin-table.js │ │ │ ├── md-plugin-token.js │ │ │ └── md.js │ │ ├── release-notes/ │ │ │ ├── highlight.js │ │ │ ├── index.js │ │ │ ├── md.mjs │ │ │ └── request.js │ │ ├── search.js │ │ ├── ssg.js │ │ └── utils.js │ ├── index.html │ ├── jsconfig.json │ ├── package.json │ ├── pnpm-workspace.yaml │ ├── public/ │ │ └── search_manifest.xml │ ├── quasar.config.js │ ├── src/ │ │ ├── App.vue │ │ ├── assets/ │ │ │ ├── docs-homepage.js │ │ │ ├── get-meta.js │ │ │ ├── layout-gallery.js │ │ │ ├── links.components.js │ │ │ ├── links.footer.js │ │ │ ├── links.header.js │ │ │ ├── links.integrations.js │ │ │ ├── links.social.js │ │ │ ├── menu.js │ │ │ ├── page-utils.js │ │ │ ├── sponsors.js │ │ │ └── tutorials.js │ │ ├── boot/ │ │ │ └── gdpr.js │ │ ├── components/ │ │ │ ├── CodePrism.js │ │ │ ├── CopyButton.vue │ │ │ ├── DocApi.vue │ │ │ ├── DocApiEntry.js │ │ │ ├── DocCardLink.vue │ │ │ ├── DocCardTitle.vue │ │ │ ├── DocCode.vue │ │ │ ├── DocCodepen.vue │ │ │ ├── DocExample.vue │ │ │ ├── DocInstallation.vue │ │ │ ├── DocLink.vue │ │ │ ├── DocPrerender.js │ │ │ ├── DocStars.vue │ │ │ ├── DocTree.vue │ │ │ └── SurveyCountdown.vue │ │ ├── css/ │ │ │ ├── app.sass │ │ │ ├── fonts.sass │ │ │ ├── prism-theme.sass │ │ │ └── quasar.variables.sass │ │ ├── examples/ │ │ │ ├── AppFullscreen/ │ │ │ │ ├── Basic.vue │ │ │ │ └── Targeted.vue │ │ │ ├── AppVisibility/ │ │ │ │ └── Basic.vue │ │ │ ├── BottomSheet/ │ │ │ │ ├── Basic.vue │ │ │ │ └── Dark.vue │ │ │ ├── ClosePopup/ │ │ │ │ ├── Dialog.vue │ │ │ │ ├── DialogInDialog.vue │ │ │ │ ├── DialogMenu.vue │ │ │ │ ├── Menu.vue │ │ │ │ └── MenuTree.vue │ │ │ ├── Dialog/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── NativeAttributes.vue │ │ │ │ ├── OtherOptions.vue │ │ │ │ ├── Pickers.vue │ │ │ │ ├── Progress.vue │ │ │ │ ├── UnsafeHtml.vue │ │ │ │ ├── ValidationOptions.vue │ │ │ │ └── ValidationPrompt.vue │ │ │ ├── Intersection/ │ │ │ │ ├── Advanced.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── ObjectForm.vue │ │ │ │ ├── Once.vue │ │ │ │ └── ScrollingCards.vue │ │ │ ├── Loading/ │ │ │ │ ├── Customized.vue │ │ │ │ ├── Default.vue │ │ │ │ ├── MultipleGroups.vue │ │ │ │ ├── ShowAndChange.vue │ │ │ │ ├── WithBox.vue │ │ │ │ ├── WithMessage.vue │ │ │ │ └── WithMessageSanitized.vue │ │ │ ├── Morph/ │ │ │ │ ├── BasicGroup.vue │ │ │ │ └── Card.vue │ │ │ ├── MorphUtils/ │ │ │ │ ├── FabCard.vue │ │ │ │ ├── ImageGallery.vue │ │ │ │ ├── ImageStripHorizontal.vue │ │ │ │ ├── ImageStripVertical.vue │ │ │ │ └── SameElement.vue │ │ │ ├── Mutation/ │ │ │ │ ├── CatchAll.vue │ │ │ │ ├── DragDrop.vue │ │ │ │ └── UndoRedo.vue │ │ │ ├── Notify/ │ │ │ │ ├── Actions.vue │ │ │ │ ├── Avatar.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Caption.vue │ │ │ │ ├── Grouping.vue │ │ │ │ ├── GroupingCustomBadge.vue │ │ │ │ ├── Icon.vue │ │ │ │ ├── Multiline.vue │ │ │ │ ├── Positioning.vue │ │ │ │ ├── PredefinedTypesCustom.vue │ │ │ │ ├── PredefinedTypesDefault.vue │ │ │ │ ├── Spinner.vue │ │ │ │ ├── TimeoutProgress.vue │ │ │ │ ├── UnsafeHtml.vue │ │ │ │ └── Updatable.vue │ │ │ ├── Platform/ │ │ │ │ └── Basic.vue │ │ │ ├── QAjaxBar/ │ │ │ │ └── Basic.vue │ │ │ ├── QAvatar/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Integrated.vue │ │ │ │ ├── Overlapping.vue │ │ │ │ ├── Rounded.vue │ │ │ │ ├── Square.vue │ │ │ │ ├── Squarish.vue │ │ │ │ └── StandardSizes.vue │ │ │ ├── QBadge/ │ │ │ │ ├── Align.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Floating.vue │ │ │ │ ├── Indicators.vue │ │ │ │ ├── Outline.vue │ │ │ │ ├── Rounded.vue │ │ │ │ └── Transparent.vue │ │ │ ├── QBanner/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── Image.vue │ │ │ │ ├── Inline.vue │ │ │ │ └── Rounded.vue │ │ │ ├── QBar/ │ │ │ │ ├── Android.vue │ │ │ │ ├── Dialog.vue │ │ │ │ ├── Header.vue │ │ │ │ ├── MacOS.vue │ │ │ │ ├── Menu.vue │ │ │ │ ├── Windows.vue │ │ │ │ └── iOS.vue │ │ │ ├── QBreadcrumbs/ │ │ │ │ ├── Align.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Gutters.vue │ │ │ │ ├── LinksWithGo.vue │ │ │ │ ├── RouterLinks.vue │ │ │ │ ├── Separator.vue │ │ │ │ └── Toolbar.vue │ │ │ ├── QBtn/ │ │ │ │ ├── ButtonAlignment.vue │ │ │ │ ├── ButtonDesign.vue │ │ │ │ ├── ButtonPadding.vue │ │ │ │ ├── ButtonSize.vue │ │ │ │ ├── CustomColor.vue │ │ │ │ ├── CustomContent.vue │ │ │ │ ├── CustomRipple.vue │ │ │ │ ├── DeterministicProgress.vue │ │ │ │ ├── Disabled.vue │ │ │ │ ├── FormSubmission.vue │ │ │ │ ├── IndeterminateProgress.vue │ │ │ │ ├── Links.vue │ │ │ │ ├── LinksWithGo.vue │ │ │ │ ├── OtherOptions.vue │ │ │ │ ├── Round.vue │ │ │ │ ├── RouterLinkExample.vue │ │ │ │ ├── Square.vue │ │ │ │ ├── Standard.vue │ │ │ │ ├── TruncateLabel.vue │ │ │ │ └── WithIcons.vue │ │ │ ├── QBtnDropdown/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomButton.vue │ │ │ │ ├── CustomDropdownIcon.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── LabelSlot.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Model.vue │ │ │ │ ├── Split.vue │ │ │ │ └── VariousContent.vue │ │ │ ├── QBtnGroup/ │ │ │ │ ├── Group.vue │ │ │ │ ├── GroupSpread.vue │ │ │ │ └── WithDropdown.vue │ │ │ ├── QBtnToggle/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomContent.vue │ │ │ │ ├── Design.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ └── Spread.vue │ │ │ ├── QCard/ │ │ │ │ ├── Actions.vue │ │ │ │ ├── ActionsAlignment.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Expandable.vue │ │ │ │ ├── HorizontalBasic.vue │ │ │ │ ├── HorizontalMoreInvolved.vue │ │ │ │ ├── Media.vue │ │ │ │ ├── Parallax.vue │ │ │ │ ├── Table.vue │ │ │ │ ├── Tabs.vue │ │ │ │ ├── VariousContent.vue │ │ │ │ └── Video.vue │ │ │ ├── QCarousel/ │ │ │ │ ├── AutoPadding.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Captions.vue │ │ │ │ ├── ControlType.vue │ │ │ │ ├── Controls.vue │ │ │ │ ├── CustomNavigation.vue │ │ │ │ ├── Fullscreen.vue │ │ │ │ ├── ImageSlides.vue │ │ │ │ ├── InfiniteAutoplay.vue │ │ │ │ ├── MultiImageSlides.vue │ │ │ │ ├── NavigationPosition.vue │ │ │ │ ├── Thumbnails.vue │ │ │ │ ├── Transitions.vue │ │ │ │ ├── Vertical.vue │ │ │ │ ├── VideoSlides.vue │ │ │ │ ├── WithScrollareaFull.vue │ │ │ │ └── WithScrollareaPadding.vue │ │ │ ├── QChatMessage/ │ │ │ │ ├── Avatar.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Color.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── Name.vue │ │ │ │ ├── Sanitize.vue │ │ │ │ ├── Size.vue │ │ │ │ ├── SlotAvatarStampName.vue │ │ │ │ ├── SlotDefault.vue │ │ │ │ └── Stamp.vue │ │ │ ├── QCheckbox/ │ │ │ │ ├── ArrayAsModel.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── CustomModel.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── InaList.vue │ │ │ │ ├── IndeterminateState.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── OnDarkBackground.vue │ │ │ │ ├── OptionGroup.vue │ │ │ │ ├── Standard.vue │ │ │ │ ├── StandardSizes.vue │ │ │ │ ├── ToggleOrder.vue │ │ │ │ └── WithIcons.vue │ │ │ ├── QChip/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Clickable.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── LongLabel.vue │ │ │ │ ├── Outline.vue │ │ │ │ ├── Removable.vue │ │ │ │ ├── Selected.vue │ │ │ │ ├── Sizes.vue │ │ │ │ └── Square.vue │ │ │ ├── QCircularProgress/ │ │ │ │ ├── Angle.vue │ │ │ │ ├── CustomMinMax.vue │ │ │ │ ├── Determined.vue │ │ │ │ ├── Indeterminate.vue │ │ │ │ ├── Reverse.vue │ │ │ │ ├── RoundedStyle.vue │ │ │ │ ├── ShowValue.vue │ │ │ │ └── StandardSizes.vue │ │ │ ├── QColor/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomDefaultView.vue │ │ │ │ ├── CustomPalette.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── DefaultValue.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── Input.vue │ │ │ │ ├── LazyModel.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ └── NoHeaderFooter.vue │ │ │ ├── QDate/ │ │ │ │ ├── AdditionalButtons.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Color.vue │ │ │ │ ├── CustomLocale.vue │ │ │ │ ├── CustomTitleSubtitle.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── DefaultView.vue │ │ │ │ ├── DefaultYearMonth.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── EventColor.vue │ │ │ │ ├── Events.vue │ │ │ │ ├── FirstDayOfWeek.vue │ │ │ │ ├── Input.vue │ │ │ │ ├── InputFull.vue │ │ │ │ ├── Landscape.vue │ │ │ │ ├── MaskDateTime.vue │ │ │ │ ├── MaskEscape.vue │ │ │ │ ├── MaskSimple.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── NavigationBoundaries.vue │ │ │ │ ├── Options.vue │ │ │ │ ├── Persian.vue │ │ │ │ ├── SelectionMultiple.vue │ │ │ │ ├── SelectionRange.vue │ │ │ │ ├── SelectionRangeMultiple.vue │ │ │ │ ├── Splitter.vue │ │ │ │ └── TodayBtn.vue │ │ │ ├── QDialog/ │ │ │ │ ├── BackdropFilter.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Inception.vue │ │ │ │ ├── Layout.vue │ │ │ │ ├── Maximized.vue │ │ │ │ ├── Persistent.vue │ │ │ │ ├── Positioning.vue │ │ │ │ ├── Scrollable.vue │ │ │ │ ├── Seamless.vue │ │ │ │ ├── Sizing.vue │ │ │ │ ├── Style.vue │ │ │ │ └── VariousContent.vue │ │ │ ├── QDrawer/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── HeaderPicture.vue │ │ │ │ ├── Menu.vue │ │ │ │ ├── MenuSeamless.vue │ │ │ │ ├── MiniClickEvent.vue │ │ │ │ ├── MiniMouseEvents.vue │ │ │ │ ├── MiniSlot.vue │ │ │ │ ├── MiniToOverlay.vue │ │ │ │ └── OverlayMode.vue │ │ │ ├── QEditor/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Custom.vue │ │ │ │ ├── KitchenSink.vue │ │ │ │ ├── NewBold.vue │ │ │ │ ├── NewCommands.vue │ │ │ │ ├── Pasting.vue │ │ │ │ └── ToolbarSlot.vue │ │ │ ├── QExpansionItem/ │ │ │ │ ├── Accordion.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── ControlExpansionState.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── HandlingEvents.vue │ │ │ │ ├── HeaderSlot.vue │ │ │ │ ├── IconToggle.vue │ │ │ │ ├── InsetLevels.vue │ │ │ │ ├── Popup.vue │ │ │ │ └── SwitchToggleSide.vue │ │ │ ├── QFab/ │ │ │ │ ├── Draggable.vue │ │ │ │ ├── Expandable.vue │ │ │ │ ├── ExternalLabel.vue │ │ │ │ ├── ExternalLabelStyled.vue │ │ │ │ ├── ExternalLabelToggling.vue │ │ │ │ ├── FabSlots.vue │ │ │ │ ├── HideIcon.vue │ │ │ │ ├── InternalLabel.vue │ │ │ │ ├── InternalLabelToggling.vue │ │ │ │ ├── NonExpandable.vue │ │ │ │ ├── Padding.vue │ │ │ │ ├── PageSticky.vue │ │ │ │ ├── SquareStyle.vue │ │ │ │ └── VerticalActionsAlignment.vue │ │ │ ├── QField/ │ │ │ │ ├── Borderless.vue │ │ │ │ ├── Clearable.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── ControlTypes.vue │ │ │ │ ├── CustomLabel.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── DesignFilled.vue │ │ │ │ ├── DesignOutlined.vue │ │ │ │ ├── DesignOverview.vue │ │ │ │ ├── DesignStandard.vue │ │ │ │ ├── DesignStandout.vue │ │ │ │ ├── LoadingState.vue │ │ │ │ ├── PrefixSuffix.vue │ │ │ │ ├── Rounded.vue │ │ │ │ ├── SquareBorders.vue │ │ │ │ ├── StandoutToolbar.vue │ │ │ │ ├── ValidationAsync.vue │ │ │ │ ├── ValidationExternal.vue │ │ │ │ ├── ValidationLazy.vue │ │ │ │ ├── ValidationMaxValue.vue │ │ │ │ ├── ValidationRequired.vue │ │ │ │ └── ValidationSlots.vue │ │ │ ├── QFile/ │ │ │ │ ├── AppendingFiles.vue │ │ │ │ ├── BasicMultiple.vue │ │ │ │ ├── BasicSingle.vue │ │ │ │ ├── Clearable.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── CounterBasic.vue │ │ │ │ ├── CounterLabel.vue │ │ │ │ ├── Decorators.vue │ │ │ │ ├── DesignOverview.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── RestrictionBasic.vue │ │ │ │ ├── RestrictionFilter.vue │ │ │ │ ├── WithChips.vue │ │ │ │ └── WithProgress.vue │ │ │ ├── QForm/ │ │ │ │ └── Basic.vue │ │ │ ├── QHeader/ │ │ │ │ ├── AppLike.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Breadcrumbs.vue │ │ │ │ ├── Extended.vue │ │ │ │ ├── Glossy.vue │ │ │ │ ├── LookingIOS.vue │ │ │ │ ├── Reveal.vue │ │ │ │ └── Tabs.vue │ │ │ ├── QIcon/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── DynamicSvg.vue │ │ │ │ └── StandardSizes.vue │ │ │ ├── QImg/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Caption.vue │ │ │ │ ├── ContextMenu.vue │ │ │ │ ├── CustomImageStyle.vue │ │ │ │ ├── ErrorState.vue │ │ │ │ ├── FitModes.vue │ │ │ │ ├── LoadingLazy.vue │ │ │ │ ├── LoadingState.vue │ │ │ │ ├── PlaceholderSrc.vue │ │ │ │ ├── Ratio.vue │ │ │ │ └── Responsive.vue │ │ │ ├── QInfiniteScroll/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Container.vue │ │ │ │ ├── Menu.vue │ │ │ │ └── Reverse.vue │ │ │ ├── QInnerLoading/ │ │ │ │ ├── Basic.vue │ │ │ │ └── LabelProp.vue │ │ │ ├── QInput/ │ │ │ │ ├── Autogrow.vue │ │ │ │ ├── Borderless.vue │ │ │ │ ├── Clearable.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── CustomLabel.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── Debouncing.vue │ │ │ │ ├── DesignFilled.vue │ │ │ │ ├── DesignOutlined.vue │ │ │ │ ├── DesignOverview.vue │ │ │ │ ├── DesignStandard.vue │ │ │ │ ├── DesignStandout.vue │ │ │ │ ├── InputTypeFile.vue │ │ │ │ ├── InputTypeNumber.vue │ │ │ │ ├── InputTypes.vue │ │ │ │ ├── LoadingState.vue │ │ │ │ ├── MaskBasic.vue │ │ │ │ ├── MaskCustomTokens.vue │ │ │ │ ├── MaskFill.vue │ │ │ │ ├── MaskFillReverse.vue │ │ │ │ ├── MaskUnmaskedModel.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── PrefixSuffix.vue │ │ │ │ ├── Rounded.vue │ │ │ │ ├── ShadowText.vue │ │ │ │ ├── SquareBorders.vue │ │ │ │ ├── StandoutToolbar.vue │ │ │ │ ├── Textarea.vue │ │ │ │ ├── ValidationAsync.vue │ │ │ │ ├── ValidationExternal.vue │ │ │ │ ├── ValidationForm.vue │ │ │ │ ├── ValidationLazy.vue │ │ │ │ ├── ValidationMaxLength.vue │ │ │ │ ├── ValidationRequired.vue │ │ │ │ └── ValidationSlots.vue │ │ │ ├── QIntersection/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── List.vue │ │ │ │ ├── Once.vue │ │ │ │ ├── Root.vue │ │ │ │ └── Transition.vue │ │ │ ├── QItem/ │ │ │ │ ├── ActiveState.vue │ │ │ │ ├── AvatarLeft.vue │ │ │ │ ├── AvatarRight.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── ExampleContacts.vue │ │ │ │ ├── ExampleEmails.vue │ │ │ │ ├── ExampleFolders.vue │ │ │ │ ├── ExampleMenu.vue │ │ │ │ ├── ExampleSettings.vue │ │ │ │ ├── ItemLabel.vue │ │ │ │ ├── LinksWithGo.vue │ │ │ │ └── SideSection.vue │ │ │ ├── QKnob/ │ │ │ │ ├── Angle.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── InnerMinMax.vue │ │ │ │ ├── MinMax.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── ShowValue.vue │ │ │ │ └── Step.vue │ │ │ ├── QLayout/ │ │ │ │ ├── Container.vue │ │ │ │ └── ContainerDialog.vue │ │ │ ├── QLinearProgress/ │ │ │ │ ├── Buffering.vue │ │ │ │ ├── CustomHeight.vue │ │ │ │ ├── Determinate.vue │ │ │ │ ├── Indeterminate.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── OnDarkBackground.vue │ │ │ │ ├── Query.vue │ │ │ │ ├── Reverse.vue │ │ │ │ ├── StandardSizes.vue │ │ │ │ └── Stripe.vue │ │ │ ├── QMarkupTable/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Customization.vue │ │ │ │ ├── Dark.vue │ │ │ │ └── Separators.vue │ │ │ ├── QMenu/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── ContextMenu.vue │ │ │ │ ├── MenuInMenu.vue │ │ │ │ ├── Persistent.vue │ │ │ │ ├── Positions.vue │ │ │ │ ├── Sizing.vue │ │ │ │ ├── Style.vue │ │ │ │ ├── Target.vue │ │ │ │ ├── Transitions.vue │ │ │ │ ├── VModel.vue │ │ │ │ └── VariousContent.vue │ │ │ ├── QOptionGroup/ │ │ │ │ ├── Checkbox.vue │ │ │ │ ├── CustomOptionProps.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── DenseInline.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── DisableCertainOptions.vue │ │ │ │ ├── Inline.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── LabelSlots.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── Standard.vue │ │ │ │ └── Toggle.vue │ │ │ ├── QPage/ │ │ │ │ └── Basic.vue │ │ │ ├── QPageScroller/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Expanded.vue │ │ │ │ └── Reverse.vue │ │ │ ├── QPageSticky/ │ │ │ │ ├── Basic.vue │ │ │ │ └── Expanded.vue │ │ │ ├── QPagination/ │ │ │ │ ├── BoundaryLinks.vue │ │ │ │ ├── BoundaryNumbers.vue │ │ │ │ ├── BtnDesign.vue │ │ │ │ ├── BtnGutter.vue │ │ │ │ ├── DirectionLinks.vue │ │ │ │ ├── Ellipses.vue │ │ │ │ ├── Icons.vue │ │ │ │ ├── Input.vue │ │ │ │ ├── InputColor.vue │ │ │ │ ├── MaxPages.vue │ │ │ │ └── Standard.vue │ │ │ ├── QParallax/ │ │ │ │ ├── Image.vue │ │ │ │ ├── ScopedSlot.vue │ │ │ │ ├── Speed.vue │ │ │ │ └── Video.vue │ │ │ ├── QPopupEdit/ │ │ │ │ ├── Customizing.vue │ │ │ │ ├── DefaultSlotParameters.vue │ │ │ │ ├── PopupWithEditor.vue │ │ │ │ ├── Standalone.vue │ │ │ │ ├── TextArea.vue │ │ │ │ ├── WithButtons.vue │ │ │ │ ├── WithTable.vue │ │ │ │ └── WithValidation.vue │ │ │ ├── QPopupProxy/ │ │ │ │ ├── Breakpoint.vue │ │ │ │ ├── ContextMenu.vue │ │ │ │ ├── Passthrough.vue │ │ │ │ └── Standard.vue │ │ │ ├── QPullToRefresh/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomColoring.vue │ │ │ │ └── Icon.vue │ │ │ ├── QRadio/ │ │ │ │ ├── Coloring.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── InaList.vue │ │ │ │ ├── KeepColor.vue │ │ │ │ ├── LabelPosition.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── OnDarkBackground.vue │ │ │ │ ├── OptionGroup.vue │ │ │ │ ├── Standard.vue │ │ │ │ ├── StandardSizes.vue │ │ │ │ └── WithIcons.vue │ │ │ ├── QRange/ │ │ │ │ ├── Dark.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── Drag.vue │ │ │ │ ├── DragOnly.vue │ │ │ │ ├── DragSnap.vue │ │ │ │ ├── FloatingPoint.vue │ │ │ │ ├── InnerMinMax.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── LabelAlways.vue │ │ │ │ ├── LabelLong.vue │ │ │ │ ├── LabelValue.vue │ │ │ │ ├── Lazy.vue │ │ │ │ ├── List.vue │ │ │ │ ├── MarkerLabelSlots.vue │ │ │ │ ├── MarkerLabels.vue │ │ │ │ ├── Markers.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── NoSelection.vue │ │ │ │ ├── Null.vue │ │ │ │ ├── RangeColoring.vue │ │ │ │ ├── RangeSizes.vue │ │ │ │ ├── Readonly.vue │ │ │ │ ├── Reverse.vue │ │ │ │ ├── Snap.vue │ │ │ │ ├── Standard.vue │ │ │ │ ├── Step.vue │ │ │ │ ├── TrackImages.vue │ │ │ │ └── Vertical.vue │ │ │ ├── QRating/ │ │ │ │ ├── ArrayIcon.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Colors.vue │ │ │ │ ├── HalfSelected.vue │ │ │ │ ├── Images.vue │ │ │ │ ├── Max.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── NoDimming.vue │ │ │ │ ├── ReadonlyDisable.vue │ │ │ │ ├── SelectedIcon.vue │ │ │ │ ├── SlotTip.vue │ │ │ │ └── StandardSizes.vue │ │ │ ├── QResizeObserver/ │ │ │ │ └── Basic.vue │ │ │ ├── QResponsive/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Card.vue │ │ │ │ ├── CardSection.vue │ │ │ │ ├── Carousel.vue │ │ │ │ ├── FlexRow.vue │ │ │ │ ├── MaxHeight.vue │ │ │ │ └── Table.vue │ │ │ ├── QScrollArea/ │ │ │ │ ├── Dark.vue │ │ │ │ ├── Delay.vue │ │ │ │ ├── Horizontal.vue │ │ │ │ ├── ScrollPosition.vue │ │ │ │ ├── ScrollbarVisibility.vue │ │ │ │ ├── Styled.vue │ │ │ │ ├── StyledBar.vue │ │ │ │ ├── Synchronized.vue │ │ │ │ ├── VertHoriz.vue │ │ │ │ └── Vertical.vue │ │ │ ├── QScrollObserver/ │ │ │ │ └── Basic.vue │ │ │ ├── QSelect/ │ │ │ │ ├── BasicFiltering.vue │ │ │ │ ├── BehaviorDialog.vue │ │ │ │ ├── BehaviorMenu.vue │ │ │ │ ├── Clearable.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── CreateListener.vue │ │ │ │ ├── CreateListenerUnique.vue │ │ │ │ ├── CreateNewValueMode.vue │ │ │ │ ├── Decorators.vue │ │ │ │ ├── DesignOverview.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── DisableTabSelection.vue │ │ │ │ ├── DisplayChips.vue │ │ │ │ ├── DisplayCustomValue.vue │ │ │ │ ├── DisplaySelectedItemSlot.vue │ │ │ │ ├── FilteringAddMultiple.vue │ │ │ │ ├── FilteringAddsToMenu.vue │ │ │ │ ├── FilteringNoAddToMenu.vue │ │ │ │ ├── HtmlDisplayValue.vue │ │ │ │ ├── HtmlOptions.vue │ │ │ │ ├── InputFilterAfter.vue │ │ │ │ ├── InputFilterLazy.vue │ │ │ │ ├── InputFilterMin.vue │ │ │ │ ├── InputFilterOptions.vue │ │ │ │ ├── MenuTransitions.vue │ │ │ │ ├── ModelMultipleCounter.vue │ │ │ │ ├── ModelSingleMultiple.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── OptionCover.vue │ │ │ │ ├── OptionCustomProps.vue │ │ │ │ ├── OptionEmitValue.vue │ │ │ │ ├── OptionLazyLoad.vue │ │ │ │ ├── OptionMapOptions.vue │ │ │ │ ├── OptionNoneSlot.vue │ │ │ │ ├── OptionObject.vue │ │ │ │ ├── OptionQToggle.vue │ │ │ │ ├── OptionSlot.vue │ │ │ │ ├── OptionString.vue │ │ │ │ ├── OptionsDynamic.vue │ │ │ │ ├── RenderPerf.vue │ │ │ │ └── TextAutocomplete.vue │ │ │ ├── QSeparator/ │ │ │ │ ├── Colored.vue │ │ │ │ ├── Horizontal.vue │ │ │ │ ├── HorizontalWithInset.vue │ │ │ │ └── Vertical.vue │ │ │ ├── QSkeleton/ │ │ │ │ ├── Animations.vue │ │ │ │ ├── Card.vue │ │ │ │ ├── RecipeFacebook.vue │ │ │ │ ├── RecipeList.vue │ │ │ │ ├── RecipeTable.vue │ │ │ │ ├── RecipeTwitch.vue │ │ │ │ ├── RecipeTwitter.vue │ │ │ │ ├── RecipeYoutube.vue │ │ │ │ ├── Sizing.vue │ │ │ │ ├── StylingBordered.vue │ │ │ │ ├── StylingColor.vue │ │ │ │ ├── StylingCustomBorder.vue │ │ │ │ ├── StylingSquare.vue │ │ │ │ └── Types.vue │ │ │ ├── QSlideItem/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomColors.vue │ │ │ │ ├── CustomizeSlide.vue │ │ │ │ ├── OneSided.vue │ │ │ │ └── Vertical.vue │ │ │ ├── QSlideTransition/ │ │ │ │ └── Basic.vue │ │ │ ├── QSlider/ │ │ │ │ ├── Dark.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── FloatingPoint.vue │ │ │ │ ├── InnerMinMax.vue │ │ │ │ ├── Label.vue │ │ │ │ ├── LabelAlways.vue │ │ │ │ ├── LabelLong.vue │ │ │ │ ├── LabelValue.vue │ │ │ │ ├── Lazy.vue │ │ │ │ ├── List.vue │ │ │ │ ├── MarkerLabelSlots.vue │ │ │ │ ├── MarkerLabels.vue │ │ │ │ ├── Markers.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── NoSelection.vue │ │ │ │ ├── Null.vue │ │ │ │ ├── Readonly.vue │ │ │ │ ├── Reverse.vue │ │ │ │ ├── SliderColoring.vue │ │ │ │ ├── SliderSizes.vue │ │ │ │ ├── Snap.vue │ │ │ │ ├── Standard.vue │ │ │ │ ├── Step.vue │ │ │ │ ├── TrackImages.vue │ │ │ │ └── Vertical.vue │ │ │ ├── QSpace/ │ │ │ │ └── Basic.vue │ │ │ ├── QSpinner/ │ │ │ │ ├── Color.vue │ │ │ │ ├── Default.vue │ │ │ │ ├── Others.vue │ │ │ │ ├── Size.vue │ │ │ │ └── StandardSizes.vue │ │ │ ├── QSplitter/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomizedSeparator.vue │ │ │ │ ├── Embedded.vue │ │ │ │ ├── Horizontal.vue │ │ │ │ ├── ImageFun.vue │ │ │ │ ├── Limits.vue │ │ │ │ ├── PixelModel.vue │ │ │ │ ├── ReactiveImages.vue │ │ │ │ ├── ReverseModel.vue │ │ │ │ └── SeparatorSlot.vue │ │ │ ├── QStepper/ │ │ │ │ ├── AlternativeLabels.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── Contracted.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── HeaderClass.vue │ │ │ │ ├── LinearNavigation.vue │ │ │ │ ├── MessageSlot.vue │ │ │ │ ├── NonLinearNavigation.vue │ │ │ │ ├── Prefix.vue │ │ │ │ ├── StepError.vue │ │ │ │ ├── TypeHorizontal.vue │ │ │ │ └── TypeVertical.vue │ │ │ ├── QTabPanels/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── Swipeable.vue │ │ │ │ ├── TabsAndSplitter.vue │ │ │ │ ├── Transition.vue │ │ │ │ ├── VerticalSwipeable.vue │ │ │ │ ├── WithNestedQTabs.vue │ │ │ │ └── WithQTabs.vue │ │ │ ├── QTable/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── BeforeAfterHeaderFooter.vue │ │ │ │ ├── CustomColor.vue │ │ │ │ ├── CustomColumn.vue │ │ │ │ ├── CustomLoading.vue │ │ │ │ ├── CustomSelection.vue │ │ │ │ ├── CustomSorting.vue │ │ │ │ ├── CustomTop.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── ExpandedRowExternal.vue │ │ │ │ ├── ExpandedRowInternal.vue │ │ │ │ ├── ExportCsv.vue │ │ │ │ ├── GridHeader.vue │ │ │ │ ├── GridMasonry.vue │ │ │ │ ├── GridStyle.vue │ │ │ │ ├── GridStyleColored.vue │ │ │ │ ├── GridStyleSlot.vue │ │ │ │ ├── HideBottom.vue │ │ │ │ ├── InferColumns.vue │ │ │ │ ├── InputEditing.vue │ │ │ │ ├── KeyboardNavigation.vue │ │ │ │ ├── Loading.vue │ │ │ │ ├── MultipleSelection.vue │ │ │ │ ├── NoData.vue │ │ │ │ ├── NoDataSlot.vue │ │ │ │ ├── NoHeaderFooter.vue │ │ │ │ ├── PaginationInitial.vue │ │ │ │ ├── PaginationSlot.vue │ │ │ │ ├── PaginationSync.vue │ │ │ │ ├── PopupEditing.vue │ │ │ │ ├── ResponsiveDense.vue │ │ │ │ ├── ResponsiveGrid.vue │ │ │ │ ├── SelectionSlots.vue │ │ │ │ ├── SelectionSlotsRange.vue │ │ │ │ ├── Separators.vue │ │ │ │ ├── SingleSelection.vue │ │ │ │ ├── SlotBody.vue │ │ │ │ ├── SlotBodyCell.vue │ │ │ │ ├── SlotBodyCellName.vue │ │ │ │ ├── SlotHeader.vue │ │ │ │ ├── SlotHeaderCell.vue │ │ │ │ ├── SlotHeaderCellName.vue │ │ │ │ ├── StickyColumn.vue │ │ │ │ ├── StickyHeader.vue │ │ │ │ ├── StickyHeaderAndColumn.vue │ │ │ │ ├── StickyHeaderAndLastColumn.vue │ │ │ │ ├── StickyLastColumn.vue │ │ │ │ ├── Synchronizing.vue │ │ │ │ ├── VirtscrollBasic.vue │ │ │ │ ├── VirtscrollDynamic.vue │ │ │ │ ├── VirtscrollExpandedRow.vue │ │ │ │ ├── VirtscrollMultipleRows.vue │ │ │ │ ├── VirtscrollPagination.vue │ │ │ │ ├── VirtscrollSticky.vue │ │ │ │ ├── VisibleColumns.vue │ │ │ │ └── VisibleColumns2.vue │ │ │ ├── QTabs/ │ │ │ │ ├── Alignment.vue │ │ │ │ ├── ArrowsModifiers.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomIndicator.vue │ │ │ │ ├── Dense.vue │ │ │ │ ├── Dropdown.vue │ │ │ │ ├── DynamicTabs.vue │ │ │ │ ├── IndividualColor.vue │ │ │ │ ├── Notifying.vue │ │ │ │ ├── Ripples.vue │ │ │ │ ├── TabsInToolbar.vue │ │ │ │ ├── TabsWithTabpanels.vue │ │ │ │ └── Vertical.vue │ │ │ ├── QTime/ │ │ │ │ ├── AdditionalButtons.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Color.vue │ │ │ │ ├── CustomLocale.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── DisableReadonly.vue │ │ │ │ ├── Format24h.vue │ │ │ │ ├── Input.vue │ │ │ │ ├── InputFull.vue │ │ │ │ ├── Landscape.vue │ │ │ │ ├── MaskDateTime.vue │ │ │ │ ├── MaskEscape.vue │ │ │ │ ├── MaskSimple.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── NowBtn.vue │ │ │ │ └── Options.vue │ │ │ ├── QTimeline/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── Layouts.vue │ │ │ │ ├── PropsOnly.vue │ │ │ │ ├── Responsive.vue │ │ │ │ └── SlotsOnly.vue │ │ │ ├── QToggle/ │ │ │ │ ├── ArrayValue.vue │ │ │ │ ├── CustomValues.vue │ │ │ │ ├── DarkBackground.vue │ │ │ │ ├── Disabled.vue │ │ │ │ ├── Icons.vue │ │ │ │ ├── IndeterminateState.vue │ │ │ │ ├── KeepColor.vue │ │ │ │ ├── Labels.vue │ │ │ │ ├── List.vue │ │ │ │ ├── NativeForm.vue │ │ │ │ ├── OptionGroup.vue │ │ │ │ ├── Standard.vue │ │ │ │ ├── StandardSizes.vue │ │ │ │ └── ToggleOrder.vue │ │ │ ├── QToolbar/ │ │ │ │ ├── Avatar.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Glossy.vue │ │ │ │ ├── GroupedHorizontally.vue │ │ │ │ ├── GroupedVertically.vue │ │ │ │ ├── WithBtnToggle.vue │ │ │ │ ├── WithDropdown.vue │ │ │ │ └── WithTabs.vue │ │ │ ├── QTooltip/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Coloring.vue │ │ │ │ ├── CustomTransition.vue │ │ │ │ ├── Offset.vue │ │ │ │ ├── OneSecond.vue │ │ │ │ ├── Target.vue │ │ │ │ └── VModel.vue │ │ │ ├── QTree/ │ │ │ │ ├── Accordion.vue │ │ │ │ ├── Basic.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── DenseTree.vue │ │ │ │ ├── FilterCustom.vue │ │ │ │ ├── FilterDefault.vue │ │ │ │ ├── LazyLoad.vue │ │ │ │ ├── NoConnectors.vue │ │ │ │ ├── Selectable.vue │ │ │ │ ├── SlotsCustomized.vue │ │ │ │ ├── SlotsDefault.vue │ │ │ │ ├── Splitter.vue │ │ │ │ ├── Sync.vue │ │ │ │ └── TickStrategy.vue │ │ │ ├── QUploader/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Dark.vue │ │ │ │ ├── FactoryImmediate.vue │ │ │ │ ├── FactoryPromise.vue │ │ │ │ ├── Headers.vue │ │ │ │ ├── Multiple.vue │ │ │ │ ├── RestrictionBasic.vue │ │ │ │ ├── RestrictionFilter.vue │ │ │ │ ├── SlotHeader.vue │ │ │ │ ├── SlotList.vue │ │ │ │ ├── UploadAuto.vue │ │ │ │ └── UploadURL.vue │ │ │ ├── QVideo/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── HtmlMarkup.vue │ │ │ │ └── Ratio.vue │ │ │ ├── QVirtualScroll/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── BasicHorizontal.vue │ │ │ │ ├── GenerateItems.vue │ │ │ │ ├── ScrollArea.vue │ │ │ │ ├── ScrollTargetId.vue │ │ │ │ ├── ScrollTargetRef.vue │ │ │ │ ├── ScrollTo.vue │ │ │ │ ├── TableBasic.vue │ │ │ │ ├── TableBasicHeader.vue │ │ │ │ ├── TableSticky.vue │ │ │ │ ├── TableSticky2.vue │ │ │ │ ├── VariousContent.vue │ │ │ │ ├── VariousContentHorizontal.vue │ │ │ │ ├── VirtscrollExpandedRow.vue │ │ │ │ └── VirtscrollMultipleRows.vue │ │ │ ├── Ripple/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Colored.vue │ │ │ │ ├── Disable.vue │ │ │ │ ├── Early.vue │ │ │ │ └── Positioning.vue │ │ │ ├── ScrollFire/ │ │ │ │ └── Basic.vue │ │ │ ├── TouchHold/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── CustomSensitivity.vue │ │ │ │ └── CustomTimer.vue │ │ │ ├── TouchPan/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Custom.vue │ │ │ │ ├── Draggable.vue │ │ │ │ ├── Horizontal.vue │ │ │ │ └── Vertical.vue │ │ │ ├── TouchRepeat/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Buttons.vue │ │ │ │ └── Keys.vue │ │ │ ├── TouchSwipe/ │ │ │ │ ├── Basic.vue │ │ │ │ ├── Right.vue │ │ │ │ └── UpOrLeft.vue │ │ │ ├── frameless-electron-window/ │ │ │ │ └── StatusBar.vue │ │ │ ├── grid/ │ │ │ │ ├── BreakColumn.vue │ │ │ │ ├── BreakRow.vue │ │ │ │ ├── ChildrenSizeCompare.vue │ │ │ │ ├── ChildrenStyling.vue │ │ │ │ ├── ColGutterHorizontal.vue │ │ │ │ ├── ColGutterMixed.vue │ │ │ │ ├── ColGutterSize.vue │ │ │ │ ├── ColGutterVertical.vue │ │ │ │ ├── ColumnAllBreakpoints.vue │ │ │ │ ├── ColumnEqualWidth.vue │ │ │ │ ├── ColumnFlexOrder.vue │ │ │ │ ├── ColumnHorizontalAlignment.vue │ │ │ │ ├── ColumnMixAndMatch.vue │ │ │ │ ├── ColumnNesting.vue │ │ │ │ ├── ColumnReverse.vue │ │ │ │ ├── ColumnRowWidth.vue │ │ │ │ ├── ColumnRowWrapping.vue │ │ │ │ ├── ColumnVariableWidth.vue │ │ │ │ ├── ColumnVerticalAlignment.vue │ │ │ │ ├── GutterHorizontal.vue │ │ │ │ ├── GutterMixed.vue │ │ │ │ ├── GutterSize.vue │ │ │ │ ├── GutterVertical.vue │ │ │ │ ├── Masonry.vue │ │ │ │ ├── MasonryTableGrid.vue │ │ │ │ ├── ParentStyling.vue │ │ │ │ ├── RowAllBreakpoints.vue │ │ │ │ ├── RowColumnWidth.vue │ │ │ │ ├── RowColumnWrapping.vue │ │ │ │ ├── RowEqualWidth.vue │ │ │ │ ├── RowFlexOrder.vue │ │ │ │ ├── RowHorizontalAlignment.vue │ │ │ │ ├── RowMixAndMatch.vue │ │ │ │ ├── RowNesting.vue │ │ │ │ ├── RowOffsettingColumns.vue │ │ │ │ ├── RowReverse.vue │ │ │ │ ├── RowStackedToHorizontal.vue │ │ │ │ ├── RowVariableWidth.vue │ │ │ │ └── RowVerticalAlignment.vue │ │ │ └── shadows/ │ │ │ ├── Inset.vue │ │ │ ├── PointingUp.vue │ │ │ └── Standard.vue │ │ ├── layouts/ │ │ │ ├── builder/ │ │ │ │ └── LayoutBuilder.vue │ │ │ ├── doc-layout/ │ │ │ │ ├── DocDrawerMenu.vue │ │ │ │ ├── DocDrawerToc.vue │ │ │ │ ├── DocHeader.vue │ │ │ │ ├── DocHeaderIconLinks.vue │ │ │ │ ├── DocHeaderMenu.js │ │ │ │ ├── DocHeaderTextLinks.vue │ │ │ │ ├── DocLayout.vue │ │ │ │ ├── DocPage.vue │ │ │ │ ├── DocPageFooter.vue │ │ │ │ ├── DocPageMenu.js │ │ │ │ ├── DocPageMenu.sass │ │ │ │ ├── DocPageToc.vue │ │ │ │ ├── DocSearch.vue │ │ │ │ ├── search/ │ │ │ │ │ ├── ResultEmpty.vue │ │ │ │ │ ├── ResultEntry.vue │ │ │ │ │ ├── ResultError.vue │ │ │ │ │ └── SearchResults.vue │ │ │ │ └── store/ │ │ │ │ ├── index.js │ │ │ │ ├── inject-scroll.js │ │ │ │ └── inject-toc.js │ │ │ └── gallery/ │ │ │ ├── LayoutGalleryPage.vue │ │ │ ├── github.vue │ │ │ ├── google-news.vue │ │ │ ├── google-photos.vue │ │ │ ├── google-play.vue │ │ │ ├── listing.js │ │ │ ├── quasar-classic-dark.vue │ │ │ ├── quasar-classic.vue │ │ │ ├── whatsapp.vue │ │ │ └── youtube.vue │ │ ├── pages/ │ │ │ ├── Page404.vue │ │ │ ├── __elements.md │ │ │ ├── api-explorer/ │ │ │ │ ├── DocApiExplorer.vue │ │ │ │ └── api-explorer.md │ │ │ ├── app-extensions/ │ │ │ │ ├── development-guide/ │ │ │ │ │ ├── index-api.md │ │ │ │ │ ├── install-api.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── prompts-api.md │ │ │ │ │ └── uninstall-api.md │ │ │ │ ├── discover.md │ │ │ │ ├── introduction.md │ │ │ │ └── tips-and-tricks/ │ │ │ │ ├── chain-webpack.md │ │ │ │ ├── inject-quasar-plugin.md │ │ │ │ ├── introduction.md │ │ │ │ ├── json-api.md │ │ │ │ ├── provide-a-directive.md │ │ │ │ ├── provide-a-ui-component.md │ │ │ │ └── starter-kit-equivalent.md │ │ │ ├── components/ │ │ │ │ ├── ComponentsListing.vue │ │ │ │ └── components.md │ │ │ ├── docs/ │ │ │ │ ├── DocsHomepage.vue │ │ │ │ └── docs.md │ │ │ ├── how-to-contribute/ │ │ │ │ ├── commit-conventions.md │ │ │ │ ├── contribution-guide.md │ │ │ │ ├── new-project.md │ │ │ │ ├── project-maintainer.md │ │ │ │ └── running-projects.md │ │ │ ├── icongenie/ │ │ │ │ ├── app-icons-list.md │ │ │ │ ├── command-list.md │ │ │ │ ├── installation.md │ │ │ │ ├── introduction.md │ │ │ │ └── profile-files.md │ │ │ ├── integrations/ │ │ │ │ ├── QuasarIntegrations.vue │ │ │ │ └── integrations.md │ │ │ ├── introduction-to-quasar/ │ │ │ │ ├── IntroductionVideo.vue │ │ │ │ └── introduction-to-quasar.md │ │ │ ├── landing/ │ │ │ │ ├── PageLanding.vue │ │ │ │ ├── SponsorList.vue │ │ │ │ ├── TwitterCards.vue │ │ │ │ └── WhyQuasarCard.vue │ │ │ ├── layout/ │ │ │ │ ├── drawer.md │ │ │ │ ├── gallery/ │ │ │ │ │ ├── LayoutGallery.vue │ │ │ │ │ └── gallery.md │ │ │ │ ├── grid/ │ │ │ │ │ ├── column.md │ │ │ │ │ ├── flex-playground/ │ │ │ │ │ │ ├── FlexChild.vue │ │ │ │ │ │ ├── FlexPlaygroundDemo.vue │ │ │ │ │ │ └── flex-playground.md │ │ │ │ │ ├── flexbox-patterns.md │ │ │ │ │ ├── gutter.md │ │ │ │ │ ├── introduction-to-flexbox.md │ │ │ │ │ └── row.md │ │ │ │ ├── header-and-footer.md │ │ │ │ ├── layout/ │ │ │ │ │ ├── ViewPlay.vue │ │ │ │ │ ├── ViewProp.vue │ │ │ │ │ └── layout.md │ │ │ │ ├── page-scroller.md │ │ │ │ ├── page-sticky.md │ │ │ │ ├── page.md │ │ │ │ └── routing-with-layouts-and-pages.md │ │ │ ├── listing.js │ │ │ ├── meet-the-team/ │ │ │ │ ├── TeamMember.vue │ │ │ │ └── meet-the-team.md │ │ │ ├── options/ │ │ │ │ ├── animations.md │ │ │ │ ├── app-icons.md │ │ │ │ ├── app-internationalization.md │ │ │ │ ├── global-node.md │ │ │ │ ├── installing-icon-libraries.md │ │ │ │ ├── platform-detection.md │ │ │ │ ├── quasar-icon-sets.md │ │ │ │ ├── quasar-language-packs.md │ │ │ │ ├── rtl-support.md │ │ │ │ ├── screen-plugin.md │ │ │ │ ├── seo.md │ │ │ │ ├── the-q-object.md │ │ │ │ └── transitions/ │ │ │ │ ├── TransitionList.vue │ │ │ │ └── transitions.md │ │ │ ├── quasar-cli-vite/ │ │ │ │ ├── ajax-requests.md │ │ │ │ ├── api-proxying.md │ │ │ │ ├── boot-files.md │ │ │ │ ├── browser-compatibility.md │ │ │ │ ├── commands-list.md │ │ │ │ ├── convert-to-quasar-cli-with-vite.md │ │ │ │ ├── css-preprocessors.md │ │ │ │ ├── developing-browser-extensions/ │ │ │ │ │ ├── app-icons-browser-extension.md │ │ │ │ │ ├── background-script.md │ │ │ │ │ ├── bex-bridge.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-bex.md │ │ │ │ │ ├── content-scripts.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ └── types-of-bex.md │ │ │ │ ├── developing-capacitor-apps/ │ │ │ │ │ ├── app-icons-capacitor.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── capacitor-api.md │ │ │ │ │ ├── capacitor-version-support.md │ │ │ │ │ ├── configuring-capacitor.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── live-updates.md │ │ │ │ │ ├── managing-google-analytics.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ ├── publishing-to-store.md │ │ │ │ │ └── troubleshooting-and-tips.md │ │ │ │ ├── developing-cordova-apps/ │ │ │ │ │ ├── app-icons-cordova.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-cordova.md │ │ │ │ │ ├── cordova-plugins.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── managing-google-analytics.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ ├── publishing-to-store.md │ │ │ │ │ └── troubleshooting-and-tips.md │ │ │ │ ├── developing-electron-apps/ │ │ │ │ │ ├── app-icons-electron.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-electron.md │ │ │ │ │ ├── electron-accessing-files.md │ │ │ │ │ ├── electron-packages.md │ │ │ │ │ ├── electron-preload-script.md │ │ │ │ │ ├── electron-security-concerns.md │ │ │ │ │ ├── electron-upgrade-guide.md │ │ │ │ │ ├── electron-with-typescript.md │ │ │ │ │ ├── frameless-electron-window.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ └── troubleshooting-and-tips.md │ │ │ │ ├── developing-mobile-apps.md │ │ │ │ ├── developing-pwa/ │ │ │ │ │ ├── app-icons-pwa.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-pwa.md │ │ │ │ │ ├── handling-service-worker.md │ │ │ │ │ ├── hmr-for-dev.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ └── pwa-with-typescript.md │ │ │ │ ├── developing-spa/ │ │ │ │ │ ├── app-icons-spa.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── deploying.md │ │ │ │ │ └── introduction.md │ │ │ │ ├── developing-ssr/ │ │ │ │ │ ├── app-icons-ssr.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── client-side-hydration.md │ │ │ │ │ ├── configuring-ssr.md │ │ │ │ │ ├── deploying.md │ │ │ │ │ ├── handling-404-and-500-errors.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ ├── seo-for-ssr.md │ │ │ │ │ ├── ssr-context.md │ │ │ │ │ ├── ssr-frequently-asked-questions.md │ │ │ │ │ ├── ssr-middleware.md │ │ │ │ │ ├── ssr-webserver.md │ │ │ │ │ ├── ssr-with-pwa.md │ │ │ │ │ ├── ssr-with-typescript.md │ │ │ │ │ ├── vue-ssr-directives.md │ │ │ │ │ └── writing-universal-code.md │ │ │ │ ├── directory-structure.md │ │ │ │ ├── handling-assets.md │ │ │ │ ├── handling-process-env.md │ │ │ │ ├── handling-vite.md │ │ │ │ ├── lazy-loading.md │ │ │ │ ├── linter.md │ │ │ │ ├── opening-dev-server-to-public.md │ │ │ │ ├── prefetch-feature.md │ │ │ │ ├── quasar-config-file.md │ │ │ │ ├── routing.md │ │ │ │ ├── state-management-with-pinia.md │ │ │ │ ├── supporting-ts.md │ │ │ │ ├── testing-and-auditing.md │ │ │ │ └── upgrade-guide.md │ │ │ ├── quasar-cli-webpack/ │ │ │ │ ├── ajax-requests.md │ │ │ │ ├── api-proxying.md │ │ │ │ ├── boot-files.md │ │ │ │ ├── browser-compatibility.md │ │ │ │ ├── commands-list.md │ │ │ │ ├── convert-to-quasar-cli-with-webpack.md │ │ │ │ ├── css-preprocessors.md │ │ │ │ ├── developing-browser-extensions/ │ │ │ │ │ ├── app-icons-browser-extension.md │ │ │ │ │ ├── background-script.md │ │ │ │ │ ├── bex-bridge.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-bex.md │ │ │ │ │ ├── content-scripts.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ └── types-of-bex.md │ │ │ │ ├── developing-capacitor-apps/ │ │ │ │ │ ├── app-icons-capacitor.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── capacitor-api.md │ │ │ │ │ ├── capacitor-version-support.md │ │ │ │ │ ├── configuring-capacitor.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── live-updates.md │ │ │ │ │ ├── managing-google-analytics.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ ├── publishing-to-store.md │ │ │ │ │ └── troubleshooting-and-tips.md │ │ │ │ ├── developing-cordova-apps/ │ │ │ │ │ ├── app-icons-cordova.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-cordova.md │ │ │ │ │ ├── cordova-plugins.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── managing-google-analytics.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ ├── publishing-to-store.md │ │ │ │ │ └── troubleshooting-and-tips.md │ │ │ │ ├── developing-electron-apps/ │ │ │ │ │ ├── app-icons-electron.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-electron.md │ │ │ │ │ ├── electron-accessing-files.md │ │ │ │ │ ├── electron-packages.md │ │ │ │ │ ├── electron-preload-script.md │ │ │ │ │ ├── electron-security-concerns.md │ │ │ │ │ ├── electron-upgrade-guide.md │ │ │ │ │ ├── electron-with-typescript.md │ │ │ │ │ ├── frameless-electron-window.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ └── troubleshooting-and-tips.md │ │ │ │ ├── developing-mobile-apps.md │ │ │ │ ├── developing-pwa/ │ │ │ │ │ ├── app-icons-pwa.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── configuring-pwa.md │ │ │ │ │ ├── handling-service-worker.md │ │ │ │ │ ├── hmr-for-dev.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ └── pwa-with-typescript.md │ │ │ │ ├── developing-spa/ │ │ │ │ │ ├── app-icons-spa.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── deploying.md │ │ │ │ │ └── introduction.md │ │ │ │ ├── developing-ssr/ │ │ │ │ │ ├── app-icons-ssr.md │ │ │ │ │ ├── build-commands.md │ │ │ │ │ ├── client-side-hydration.md │ │ │ │ │ ├── configuring-ssr.md │ │ │ │ │ ├── deploying.md │ │ │ │ │ ├── handling-404-and-500-errors.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── preparation.md │ │ │ │ │ ├── seo-for-ssr.md │ │ │ │ │ ├── ssr-context.md │ │ │ │ │ ├── ssr-frequently-asked-questions.md │ │ │ │ │ ├── ssr-middleware.md │ │ │ │ │ ├── ssr-webserver.md │ │ │ │ │ ├── ssr-with-pwa.md │ │ │ │ │ ├── ssr-with-typescript.md │ │ │ │ │ ├── vue-ssr-directives.md │ │ │ │ │ └── writing-universal-code.md │ │ │ │ ├── directory-structure.md │ │ │ │ ├── handling-assets.md │ │ │ │ ├── handling-process-env.md │ │ │ │ ├── handling-webpack.md │ │ │ │ ├── lazy-loading.md │ │ │ │ ├── linter.md │ │ │ │ ├── opening-dev-server-to-public.md │ │ │ │ ├── prefetch-feature.md │ │ │ │ ├── quasar-config-file.md │ │ │ │ ├── routing.md │ │ │ │ ├── state-management-with-pinia.md │ │ │ │ ├── supporting-ts.md │ │ │ │ ├── testing-and-auditing.md │ │ │ │ └── upgrade-guide.md │ │ │ ├── quasar-plugins/ │ │ │ │ ├── addressbar-color.md │ │ │ │ ├── app-fullscreen.md │ │ │ │ ├── app-visibility.md │ │ │ │ ├── bottom-sheet.md │ │ │ │ ├── cookies.md │ │ │ │ ├── dark.md │ │ │ │ ├── dialog.md │ │ │ │ ├── loading-bar.md │ │ │ │ ├── loading.md │ │ │ │ ├── meta.md │ │ │ │ ├── notify.md │ │ │ │ └── web-storage.md │ │ │ ├── quasar-utils/ │ │ │ │ ├── color-utils.md │ │ │ │ ├── date-utils.md │ │ │ │ ├── dom-utils.md │ │ │ │ ├── event-bus-util.md │ │ │ │ ├── formatter-utils.md │ │ │ │ ├── morph-utils.md │ │ │ │ ├── other-utils.md │ │ │ │ ├── scrolling-utils.md │ │ │ │ └── type-checking-utils.md │ │ │ ├── security/ │ │ │ │ ├── dos-and-donts.md │ │ │ │ ├── get-help._md_ │ │ │ │ └── report-a-vulnerability.md │ │ │ ├── sponsors-and-backers/ │ │ │ │ ├── DonatingButtons.vue │ │ │ │ ├── SponsorList.vue │ │ │ │ ├── SponsorTile.vue │ │ │ │ └── sponsors-and-backers.md │ │ │ ├── start/ │ │ │ │ ├── how-to-use-vue.md │ │ │ │ ├── pick-quasar-flavour.md │ │ │ │ ├── playground.md │ │ │ │ ├── quasar-cli.md │ │ │ │ ├── quick-start.md │ │ │ │ ├── release-notes/ │ │ │ │ │ ├── PackageReleases.vue │ │ │ │ │ ├── QuasarReleases.vue │ │ │ │ │ └── release-notes.md │ │ │ │ ├── umd/ │ │ │ │ │ ├── UmdTags.vue │ │ │ │ │ └── umd.md │ │ │ │ ├── upgrade-guide/ │ │ │ │ │ ├── UpgradeVideoLink.vue │ │ │ │ │ └── upgrade-guide.md │ │ │ │ ├── vite-plugin/ │ │ │ │ │ ├── VitePluginUsage.vue │ │ │ │ │ └── vite-plugin.md │ │ │ │ ├── vs-code-configuration.md │ │ │ │ └── vue-cli-plugin.md │ │ │ ├── style/ │ │ │ │ ├── body-classes.md │ │ │ │ ├── breakpoints.md │ │ │ │ ├── color-palette/ │ │ │ │ │ ├── BrandColors.vue │ │ │ │ │ ├── ColorList.vue │ │ │ │ │ └── color-palette.md │ │ │ │ ├── dark-mode.md │ │ │ │ ├── other-helper-classes.md │ │ │ │ ├── positioning.md │ │ │ │ ├── sass-scss-variables/ │ │ │ │ │ ├── SassVariables.vue │ │ │ │ │ └── sass-scss-variables.md │ │ │ │ ├── shadows.md │ │ │ │ ├── spacing.md │ │ │ │ ├── theme-builder/ │ │ │ │ │ ├── ThemePicker.vue │ │ │ │ │ └── theme-builder.md │ │ │ │ ├── typography/ │ │ │ │ │ ├── TypographyHeadings.vue │ │ │ │ │ ├── TypographyWeights.vue │ │ │ │ │ └── typography.md │ │ │ │ └── visibility.md │ │ │ ├── video-tutorials/ │ │ │ │ ├── TutorialLink.vue │ │ │ │ ├── TutorialListing.vue │ │ │ │ └── video-tutorials.md │ │ │ ├── vue-components/ │ │ │ │ ├── ajax-bar.md │ │ │ │ ├── avatar.md │ │ │ │ ├── badge.md │ │ │ │ ├── banner.md │ │ │ │ ├── bar.md │ │ │ │ ├── breadcrumbs.md │ │ │ │ ├── button-dropdown.md │ │ │ │ ├── button-group.md │ │ │ │ ├── button-toggle.md │ │ │ │ ├── button.md │ │ │ │ ├── card.md │ │ │ │ ├── carousel.md │ │ │ │ ├── chat.md │ │ │ │ ├── checkbox.md │ │ │ │ ├── chip.md │ │ │ │ ├── circular-progress.md │ │ │ │ ├── color-picker.md │ │ │ │ ├── date.md │ │ │ │ ├── dialog.md │ │ │ │ ├── editor.md │ │ │ │ ├── expansion-item.md │ │ │ │ ├── field.md │ │ │ │ ├── file.md │ │ │ │ ├── floating-action-button.md │ │ │ │ ├── form.md │ │ │ │ ├── icon.md │ │ │ │ ├── img.md │ │ │ │ ├── infinite-scroll.md │ │ │ │ ├── inner-loading.md │ │ │ │ ├── input.md │ │ │ │ ├── intersection.md │ │ │ │ ├── knob.md │ │ │ │ ├── linear-progress.md │ │ │ │ ├── list-and-list-items.md │ │ │ │ ├── markup-table.md │ │ │ │ ├── menu/ │ │ │ │ │ ├── MenuPositioning.vue │ │ │ │ │ └── menu.md │ │ │ │ ├── no-ssr.md │ │ │ │ ├── option-group.md │ │ │ │ ├── pagination.md │ │ │ │ ├── parallax.md │ │ │ │ ├── popup-edit.md │ │ │ │ ├── popup-proxy.md │ │ │ │ ├── pull-to-refresh.md │ │ │ │ ├── radio.md │ │ │ │ ├── range.md │ │ │ │ ├── rating.md │ │ │ │ ├── resize-observer.md │ │ │ │ ├── responsive.md │ │ │ │ ├── scroll-area.md │ │ │ │ ├── scroll-observer.md │ │ │ │ ├── select.md │ │ │ │ ├── separator.md │ │ │ │ ├── skeleton.md │ │ │ │ ├── slide-item.md │ │ │ │ ├── slide-transition.md │ │ │ │ ├── slider.md │ │ │ │ ├── space.md │ │ │ │ ├── spinners.md │ │ │ │ ├── splitter.md │ │ │ │ ├── stepper.md │ │ │ │ ├── tab-panels.md │ │ │ │ ├── table.md │ │ │ │ ├── tabs.md │ │ │ │ ├── time.md │ │ │ │ ├── timeline.md │ │ │ │ ├── toggle.md │ │ │ │ ├── toolbar.md │ │ │ │ ├── tooltip/ │ │ │ │ │ ├── TooltipPositioning.vue │ │ │ │ │ └── tooltip.md │ │ │ │ ├── tree.md │ │ │ │ ├── uploader.md │ │ │ │ ├── video.md │ │ │ │ └── virtual-scroll.md │ │ │ ├── vue-composables/ │ │ │ │ ├── use-dialog-plugin-component.md │ │ │ │ ├── use-form-child.md │ │ │ │ ├── use-hydration.md │ │ │ │ ├── use-id.md │ │ │ │ ├── use-interval.md │ │ │ │ ├── use-meta.md │ │ │ │ ├── use-quasar.md │ │ │ │ ├── use-render-cache.md │ │ │ │ ├── use-split-attrs.md │ │ │ │ ├── use-tick.md │ │ │ │ └── use-timeout.md │ │ │ ├── vue-directives/ │ │ │ │ ├── close-popup.md │ │ │ │ ├── intersection.md │ │ │ │ ├── material-ripples.md │ │ │ │ ├── morph.md │ │ │ │ ├── mutation.md │ │ │ │ ├── scroll-fire.md │ │ │ │ ├── scroll.md │ │ │ │ ├── touch-hold.md │ │ │ │ ├── touch-pan.md │ │ │ │ ├── touch-repeat.md │ │ │ │ └── touch-swipe.md │ │ │ └── why-donate.md │ │ └── router/ │ │ ├── index.js │ │ └── routes.js │ ├── src-pwa/ │ │ ├── custom-service-worker.js │ │ ├── manifest.json │ │ ├── pwa-flag.d.ts │ │ └── register-service-worker.js │ └── src-ssr/ │ ├── middlewares/ │ │ └── render.js │ ├── server.js │ └── ssr-flag.d.ts ├── extras/ │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── animate/ │ │ ├── LICENSE │ │ ├── animate-list.common.d.ts │ │ ├── animate-list.common.js │ │ ├── animate-list.d.ts │ │ ├── animate-list.js │ │ ├── animate-list.mjs │ │ ├── backInDown.css │ │ ├── backInLeft.css │ │ ├── backInRight.css │ │ ├── backInUp.css │ │ ├── backOutDown.css │ │ ├── backOutLeft.css │ │ ├── backOutRight.css │ │ ├── backOutUp.css │ │ ├── bounce.css │ │ ├── bounceIn.css │ │ ├── bounceInDown.css │ │ ├── bounceInLeft.css │ │ ├── bounceInRight.css │ │ ├── bounceInUp.css │ │ ├── bounceOut.css │ │ ├── bounceOutDown.css │ │ ├── bounceOutLeft.css │ │ ├── bounceOutRight.css │ │ ├── bounceOutUp.css │ │ ├── fadeIn.css │ │ ├── fadeInBottomLeft.css │ │ ├── fadeInBottomRight.css │ │ ├── fadeInDown.css │ │ ├── fadeInDownBig.css │ │ ├── fadeInLeft.css │ │ ├── fadeInLeftBig.css │ │ ├── fadeInRight.css │ │ ├── fadeInRightBig.css │ │ ├── fadeInTopLeft.css │ │ ├── fadeInTopRight.css │ │ ├── fadeInUp.css │ │ ├── fadeInUpBig.css │ │ ├── fadeOut.css │ │ ├── fadeOutBottomLeft.css │ │ ├── fadeOutBottomRight.css │ │ ├── fadeOutDown.css │ │ ├── fadeOutDownBig.css │ │ ├── fadeOutLeft.css │ │ ├── fadeOutLeftBig.css │ │ ├── fadeOutRight.css │ │ ├── fadeOutRightBig.css │ │ ├── fadeOutTopLeft.css │ │ ├── fadeOutTopRight.css │ │ ├── fadeOutUp.css │ │ ├── fadeOutUpBig.css │ │ ├── flash.css │ │ ├── flip.css │ │ ├── flipInX.css │ │ ├── flipInY.css │ │ ├── flipOutX.css │ │ ├── flipOutY.css │ │ ├── headShake.css │ │ ├── heartBeat.css │ │ ├── hinge.css │ │ ├── jackInTheBox.css │ │ ├── jello.css │ │ ├── lightSpeedIn.css │ │ ├── lightSpeedInLeft.css │ │ ├── lightSpeedInRight.css │ │ ├── lightSpeedOut.css │ │ ├── lightSpeedOutLeft.css │ │ ├── lightSpeedOutRight.css │ │ ├── pulse.css │ │ ├── rollIn.css │ │ ├── rollOut.css │ │ ├── rotateIn.css │ │ ├── rotateInDownLeft.css │ │ ├── rotateInDownRight.css │ │ ├── rotateInUpLeft.css │ │ ├── rotateInUpRight.css │ │ ├── rotateOut.css │ │ ├── rotateOutDownLeft.css │ │ ├── rotateOutDownRight.css │ │ ├── rotateOutUpLeft.css │ │ ├── rotateOutUpRight.css │ │ ├── rubberBand.css │ │ ├── shake.css │ │ ├── shakeX.css │ │ ├── shakeY.css │ │ ├── slideInDown.css │ │ ├── slideInLeft.css │ │ ├── slideInRight.css │ │ ├── slideInUp.css │ │ ├── slideOutDown.css │ │ ├── slideOutLeft.css │ │ ├── slideOutRight.css │ │ ├── slideOutUp.css │ │ ├── swing.css │ │ ├── tada.css │ │ ├── wobble.css │ │ ├── zoomIn.css │ │ ├── zoomInDown.css │ │ ├── zoomInLeft.css │ │ ├── zoomInRight.css │ │ ├── zoomInUp.css │ │ ├── zoomOut.css │ │ ├── zoomOutDown.css │ │ ├── zoomOutLeft.css │ │ ├── zoomOutRight.css │ │ └── zoomOutUp.css │ ├── bootstrap-icons/ │ │ ├── LICENSE │ │ ├── bootstrap-icons.css │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── build/ │ │ ├── README.template.md │ │ ├── animate.js │ │ ├── bootstrap-icons.js │ │ ├── eva-icons.js │ │ ├── fontawesome-v5.js │ │ ├── fontawesome-v6.js │ │ ├── fontawesome-v7.js │ │ ├── index.js │ │ ├── ionicons-v8.js │ │ ├── line-awesome.js │ │ ├── material-icons.js │ │ ├── material-symbols.js │ │ ├── mdi-v7.js │ │ ├── readme-data.js │ │ ├── readme.js │ │ ├── themify.js │ │ ├── utils/ │ │ │ ├── buildExports.js │ │ │ └── index.js │ │ └── webfonts.js │ ├── eva-icons/ │ │ ├── LICENSE │ │ ├── eva-icons.css │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── fontawesome-v5/ │ │ ├── LICENSE.txt │ │ ├── fontawesome-v5.css │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── fontawesome-v6/ │ │ ├── LICENSE.txt │ │ ├── fontawesome-v6.css │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── fontawesome-v7/ │ │ ├── LICENSE.txt │ │ ├── fontawesome-v7.css │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── index.d.ts │ ├── index.js │ ├── ionicons-v4/ │ │ ├── LICENSE │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ └── ionicons-v4.css │ ├── ionicons-v5/ │ │ ├── LICENSE │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── ionicons-v6/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── ionicons-v7/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── ionicons-v8/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs │ ├── line-awesome/ │ │ ├── LICENSE.md │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ └── line-awesome.css │ ├── material-icons/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-icons.css │ │ └── update.sh │ ├── material-icons-outlined/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-icons-outlined.css │ │ └── update.sh │ ├── material-icons-round/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-icons-round.css │ │ └── update.sh │ ├── material-icons-sharp/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-icons-sharp.css │ │ └── update.sh │ ├── material-symbols-outlined/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-symbols-outlined.css │ │ └── update.sh │ ├── material-symbols-rounded/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-symbols-rounded.css │ │ └── update.sh │ ├── material-symbols-sharp/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── material-symbols-sharp.css │ │ └── update.sh │ ├── mdi-v3/ │ │ ├── LICENSE │ │ └── mdi-v3.css │ ├── mdi-v4/ │ │ ├── LICENSE │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── license.md │ │ └── mdi-v4.css │ ├── mdi-v5/ │ │ ├── LICENSE │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── license.md │ │ └── mdi-v5.css │ ├── mdi-v6/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── license.md │ │ └── mdi-v6.css │ ├── mdi-v7/ │ │ ├── LICENSE │ │ ├── icons.json │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── license.md │ │ └── mdi-v7.css │ ├── package.json │ ├── roboto-font/ │ │ ├── LICENSE │ │ ├── roboto-font.css │ │ └── update.sh │ ├── roboto-font-latin-ext/ │ │ ├── LICENSE │ │ ├── roboto-font-latin-ext.css │ │ └── update.sh │ └── themify/ │ ├── LICENSE │ ├── icons.json │ ├── index.d.ts │ ├── index.js │ ├── index.mjs │ └── themify.css ├── icongenie/ │ ├── .gitignore │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── bin/ │ │ └── icongenie.js │ ├── lib/ │ │ ├── cmd/ │ │ │ ├── generate.js │ │ │ ├── help.js │ │ │ ├── profile.js │ │ │ └── verify.js │ │ ├── generators/ │ │ │ ├── icns.js │ │ │ ├── ico.js │ │ │ ├── index.js │ │ │ ├── png.js │ │ │ ├── splashscreen.js │ │ │ └── svg.js │ │ ├── modes/ │ │ │ ├── index.js │ │ │ ├── quasar-app-v1/ │ │ │ │ ├── bex.js │ │ │ │ ├── capacitor.js │ │ │ │ ├── cordova.js │ │ │ │ ├── electron.js │ │ │ │ ├── index.js │ │ │ │ ├── pwa.js │ │ │ │ ├── spa.js │ │ │ │ └── ssr.js │ │ │ └── quasar-app-v2/ │ │ │ ├── bex.js │ │ │ ├── capacitor.js │ │ │ ├── cordova.js │ │ │ ├── electron.js │ │ │ ├── index.js │ │ │ ├── pwa.js │ │ │ ├── spa.js │ │ │ └── ssr.js │ │ ├── mount/ │ │ │ ├── index.js │ │ │ ├── mount-cordova.js │ │ │ └── mount-tag.js │ │ ├── runner/ │ │ │ ├── generate.js │ │ │ ├── profile.js │ │ │ └── verify.js │ │ └── utils/ │ │ ├── app-paths.js │ │ ├── default-params.js │ │ ├── filter-argv-params.js │ │ ├── get-assets-files.js │ │ ├── get-compression.js │ │ ├── get-file-size.js │ │ ├── get-files-options.js │ │ ├── get-png-size.js │ │ ├── get-profile-content.js │ │ ├── get-profile-files.js │ │ ├── get-square-icon.js │ │ ├── logger.js │ │ ├── merge-objects.js │ │ ├── node-version-check.js │ │ ├── package-json.js │ │ ├── parse-argv.js │ │ ├── spawn-sync.js │ │ └── validate-profile-object.js │ ├── package.json │ ├── pnpm-workspace.yaml │ └── samples/ │ └── icongenie-profile.json ├── package.json ├── pnpm-workspace.yaml ├── ui/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── build/ │ │ ├── build.api.js │ │ ├── build.icon-sets.js │ │ ├── build.lang.js │ │ ├── build.transforms.js │ │ ├── build.types.js │ │ ├── build.utils.js │ │ ├── build.web-types.js │ │ ├── prepare-diff.js │ │ ├── script.build.css.js │ │ ├── script.build.javascript.js │ │ ├── script.build.js │ │ ├── script.clean.js │ │ └── script.test-umd.js │ ├── icon-set/ │ │ ├── bootstrap-icons.js │ │ ├── eva-icons.js │ │ ├── fontawesome-v5-pro.js │ │ ├── fontawesome-v5.js │ │ ├── fontawesome-v6-pro.js │ │ ├── fontawesome-v6.js │ │ ├── fontawesome-v7-pro.js │ │ ├── fontawesome-v7.js │ │ ├── ionicons-v4.js │ │ ├── line-awesome.js │ │ ├── material-icons-outlined.js │ │ ├── material-icons-round.js │ │ ├── material-icons-sharp.js │ │ ├── material-icons.js │ │ ├── material-symbols-outlined.js │ │ ├── material-symbols-rounded.js │ │ ├── material-symbols-sharp.js │ │ ├── mdi-v3.js │ │ ├── mdi-v4.js │ │ ├── mdi-v5.js │ │ ├── mdi-v6.js │ │ ├── mdi-v7.js │ │ ├── svg-bootstrap-icons.js │ │ ├── svg-eva-icons.js │ │ ├── svg-fontawesome-v5.js │ │ ├── svg-fontawesome-v6.js │ │ ├── svg-fontawesome-v7.js │ │ ├── svg-ionicons-v4.js │ │ ├── svg-ionicons-v5.js │ │ ├── svg-ionicons-v6.js │ │ ├── svg-ionicons-v7.js │ │ ├── svg-ionicons-v8.js │ │ ├── svg-line-awesome.js │ │ ├── svg-material-icons-outlined.js │ │ ├── svg-material-icons-round.js │ │ ├── svg-material-icons-sharp.js │ │ ├── svg-material-icons.js │ │ ├── svg-material-symbols-outlined.js │ │ ├── svg-material-symbols-rounded.js │ │ ├── svg-material-symbols-sharp.js │ │ ├── svg-mdi-v6.js │ │ ├── svg-mdi-v7.js │ │ ├── svg-themify.js │ │ └── themify.js │ ├── jsconfig.json │ ├── lang/ │ │ ├── ar-TN.js │ │ ├── ar.js │ │ ├── az-Latn.js │ │ ├── bg.js │ │ ├── bn.js │ │ ├── bs-BA.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── da.js │ │ ├── de-CH.js │ │ ├── de-DE.js │ │ ├── de.js │ │ ├── el.js │ │ ├── en-GB.js │ │ ├── en-US.js │ │ ├── eo.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa-IR.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fr.js │ │ ├── gn.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── id.js │ │ ├── index.json │ │ ├── is.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── kk.js │ │ ├── km.js │ │ ├── ko-KR.js │ │ ├── kur-CKB.js │ │ ├── lt.js │ │ ├── lu.js │ │ ├── lv.js │ │ ├── mk.js │ │ ├── ml.js │ │ ├── mm.js │ │ ├── ms-MY.js │ │ ├── ms.js │ │ ├── my.js │ │ ├── nb-NO.js │ │ ├── nl.js │ │ ├── pl.js │ │ ├── pt-BR.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sm.js │ │ ├── sq.js │ │ ├── sr-CYR.js │ │ ├── sr.js │ │ ├── sv.js │ │ ├── ta.js │ │ ├── th.js │ │ ├── tl.js │ │ ├── tr.js │ │ ├── ug.js │ │ ├── uk.js │ │ ├── ur-PK.js │ │ ├── uz-Cyrl.js │ │ ├── uz-Latn.js │ │ ├── vi.js │ │ ├── zh-CN.js │ │ └── zh-TW.js │ ├── package.json │ ├── playground/ │ │ ├── .editorconfig │ │ ├── .npmrc │ │ ├── README.md │ │ ├── __postcss.config.js │ │ ├── index.html │ │ ├── jsconfig.json │ │ ├── package.json │ │ ├── quasar.config.js │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── assets/ │ │ │ │ └── grid-data.json │ │ │ ├── boot/ │ │ │ │ └── ssr-client.js │ │ │ ├── composables/ │ │ │ │ └── useLocalStorageConfig.js │ │ │ ├── css/ │ │ │ │ └── quasar.variables.sass │ │ │ ├── mock-data/ │ │ │ │ └── tree/ │ │ │ │ ├── bigTree.json │ │ │ │ └── smallTree.json │ │ │ ├── pages/ │ │ │ │ ├── Error404.vue │ │ │ │ ├── IndexPage.vue │ │ │ │ ├── components/ │ │ │ │ │ ├── ajax-bar.vue │ │ │ │ │ ├── avatar.vue │ │ │ │ │ ├── badge.vue │ │ │ │ │ ├── banner.vue │ │ │ │ │ ├── bar.vue │ │ │ │ │ ├── breadcrumbs.vue │ │ │ │ │ ├── button-align-1.vue │ │ │ │ │ ├── button-align-2.vue │ │ │ │ │ ├── button-align-3.vue │ │ │ │ │ ├── button-dropdown.vue │ │ │ │ │ ├── button-events.vue │ │ │ │ │ ├── button-functional.vue │ │ │ │ │ ├── button-group.vue │ │ │ │ │ ├── button-in-flex.vue │ │ │ │ │ ├── button-links.vue │ │ │ │ │ ├── button-prevent.vue │ │ │ │ │ ├── button-toggle.vue │ │ │ │ │ ├── button.vue │ │ │ │ │ ├── card.vue │ │ │ │ │ ├── carousel-part1.vue │ │ │ │ │ ├── carousel-part2.vue │ │ │ │ │ ├── chat.vue │ │ │ │ │ ├── chat2.vue │ │ │ │ │ ├── chip.vue │ │ │ │ │ ├── circular-progress.vue │ │ │ │ │ ├── data-table-part1.vue │ │ │ │ │ ├── data-table-part2.vue │ │ │ │ │ ├── data-table-part3.vue │ │ │ │ │ ├── data-table-part4.vue │ │ │ │ │ ├── data-table-part5-fixed.vue │ │ │ │ │ ├── data-table-part6-virt-loading.vue │ │ │ │ │ ├── data-table-part6-virt-slots.vue │ │ │ │ │ ├── data-table-part7-infercols.vue │ │ │ │ │ ├── data-table-part8-expanded.vue │ │ │ │ │ ├── data-table-part9-selection-slot.vue │ │ │ │ │ ├── fab-extended.vue │ │ │ │ │ ├── fab.vue │ │ │ │ │ ├── focus-tests.vue │ │ │ │ │ ├── icon-extras.vue │ │ │ │ │ ├── icon.vue │ │ │ │ │ ├── img-queue.vue │ │ │ │ │ ├── img.vue │ │ │ │ │ ├── infinite-scroll.vue │ │ │ │ │ ├── intersection-1.vue │ │ │ │ │ ├── intersection-2.vue │ │ │ │ │ ├── intersection-3.vue │ │ │ │ │ ├── intersection-4.vue │ │ │ │ │ ├── intersection-5-ssr.vue │ │ │ │ │ ├── intersection-6-iframe.vue │ │ │ │ │ ├── linear-progress.vue │ │ │ │ │ ├── link.vue │ │ │ │ │ ├── list-expansion-item.vue │ │ │ │ │ ├── list-item.vue │ │ │ │ │ ├── list-slide-item.vue │ │ │ │ │ ├── menu-2-nested-divs.vue │ │ │ │ │ ├── menu-align.vue │ │ │ │ │ ├── menu-max-width-height.vue │ │ │ │ │ ├── menu-test.vue │ │ │ │ │ ├── menu.vue │ │ │ │ │ ├── no-ssr.vue │ │ │ │ │ ├── pagination-design.vue │ │ │ │ │ ├── pagination-functionality.vue │ │ │ │ │ ├── parallax.vue │ │ │ │ │ ├── popup-proxy.vue │ │ │ │ │ ├── portal-focus.vue │ │ │ │ │ ├── pull-to-refresh-part1.vue │ │ │ │ │ ├── pull-to-refresh-part2.vue │ │ │ │ │ ├── pull-to-refresh-part3.vue │ │ │ │ │ ├── responsive.vue │ │ │ │ │ ├── scroll-area-resize.vue │ │ │ │ │ ├── scroll-area-update.vue │ │ │ │ │ ├── scroll-area.vue │ │ │ │ │ ├── scroll-fire.vue │ │ │ │ │ ├── skeleton.vue │ │ │ │ │ ├── spinner.vue │ │ │ │ │ ├── splitter.vue │ │ │ │ │ ├── stepper-scroll-tests.vue │ │ │ │ │ ├── stepper.vue │ │ │ │ │ ├── tabs-cleanup.vue │ │ │ │ │ ├── tabs-dynamic-1.vue │ │ │ │ │ ├── tabs-dynamic-2.vue │ │ │ │ │ ├── tabs-resize.vue │ │ │ │ │ ├── tabs-router.vue │ │ │ │ │ ├── tabs.vue │ │ │ │ │ ├── timeline.vue │ │ │ │ │ ├── toolbar.vue │ │ │ │ │ ├── tooltip.vue │ │ │ │ │ ├── transition-animatecss.vue │ │ │ │ │ ├── tree.vue │ │ │ │ │ ├── video-embedding.vue │ │ │ │ │ ├── virtual-scroll-1.vue │ │ │ │ │ ├── virtual-scroll-2.vue │ │ │ │ │ ├── virtual-scroll-3.vue │ │ │ │ │ ├── virtual-scroll-4.vue │ │ │ │ │ ├── virtual-scroll-5.vue │ │ │ │ │ ├── virtual-scroll-6.vue │ │ │ │ │ ├── virtual-scroll-7-align.vue │ │ │ │ │ └── virtual-scroll-8-focus.vue │ │ │ │ ├── css/ │ │ │ │ │ ├── colors.vue │ │ │ │ │ ├── flex-addon.vue │ │ │ │ │ ├── flex-columns.vue │ │ │ │ │ ├── flex-gutter.vue │ │ │ │ │ ├── flex-rows.vue │ │ │ │ │ ├── flex-test.vue │ │ │ │ │ ├── material-ripples-1.vue │ │ │ │ │ ├── material-ripples-2.vue │ │ │ │ │ ├── shadows.vue │ │ │ │ │ ├── size-addon.vue │ │ │ │ │ └── typography.vue │ │ │ │ ├── form/ │ │ │ │ │ ├── checkbox-radio-toggle-test.vue │ │ │ │ │ ├── checkbox.vue │ │ │ │ │ ├── color-picker.vue │ │ │ │ │ ├── composition.vue │ │ │ │ │ ├── date-part1-basic.vue │ │ │ │ │ ├── date-part2-multiple-range.vue │ │ │ │ │ ├── date-time-timestamp-test.vue │ │ │ │ │ ├── date-time-timezone.vue │ │ │ │ │ ├── editor-part1.vue │ │ │ │ │ ├── editor-part2-model.vue │ │ │ │ │ ├── editor-part3.vue │ │ │ │ │ ├── editor-part4.vue │ │ │ │ │ ├── field-align.vue │ │ │ │ │ ├── field-attrs.vue │ │ │ │ │ ├── field-focus-unfocus.vue │ │ │ │ │ ├── field-label.vue │ │ │ │ │ ├── field.vue │ │ │ │ │ ├── file-picker.vue │ │ │ │ │ ├── form-async-validation.vue │ │ │ │ │ ├── form-focus.vue │ │ │ │ │ ├── form-native.vue │ │ │ │ │ ├── form-validation-reactive-lazy.vue │ │ │ │ │ ├── form.vue │ │ │ │ │ ├── form2.vue │ │ │ │ │ ├── input-and-qselect-test.vue │ │ │ │ │ ├── input-autocomplete.vue │ │ │ │ │ ├── input-composition.vue │ │ │ │ │ ├── input-debounce-test.vue │ │ │ │ │ ├── input-mask.vue │ │ │ │ │ ├── input-number.vue │ │ │ │ │ ├── input-validate.vue │ │ │ │ │ ├── input.vue │ │ │ │ │ ├── knob.vue │ │ │ │ │ ├── optiongroup.vue │ │ │ │ │ ├── radio.vue │ │ │ │ │ ├── range.vue │ │ │ │ │ ├── rating.vue │ │ │ │ │ ├── select-mobile.vue │ │ │ │ │ ├── select-part-1.vue │ │ │ │ │ ├── select-part-2.vue │ │ │ │ │ ├── select-part-3.vue │ │ │ │ │ ├── select-part-4.vue │ │ │ │ │ ├── select-part-5-kbd.vue │ │ │ │ │ ├── select-part-6-autocomplete.vue │ │ │ │ │ ├── select-part-7-text.vue │ │ │ │ │ ├── select-part-8.vue │ │ │ │ │ ├── select-part-9-dynamic.vue │ │ │ │ │ ├── slider-marker-label-part1.vue │ │ │ │ │ ├── slider-marker-label-part2.vue │ │ │ │ │ ├── slider-marker-label-part3-img.vue │ │ │ │ │ ├── slider-range-change-test.vue │ │ │ │ │ ├── slider-range-label.vue │ │ │ │ │ ├── slider-range-limits.vue │ │ │ │ │ ├── slider.vue │ │ │ │ │ ├── time-limits.vue │ │ │ │ │ ├── time.vue │ │ │ │ │ ├── toggle.vue │ │ │ │ │ ├── uploader-exposed-api.vue │ │ │ │ │ └── uploader.vue │ │ │ │ ├── global/ │ │ │ │ │ ├── bottom-sheet.vue │ │ │ │ │ ├── dialog/ │ │ │ │ │ │ └── TestDialog.vue │ │ │ │ │ ├── dialog-component-composition-api.js │ │ │ │ │ ├── dialog-component-options-api.js │ │ │ │ │ ├── dialog-plugin.vue │ │ │ │ │ ├── dialog-spawn.vue │ │ │ │ │ ├── dialog.vue │ │ │ │ │ ├── inner-loading.vue │ │ │ │ │ ├── loading-bar.vue │ │ │ │ │ ├── loading.vue │ │ │ │ │ ├── notify-part2-updatable.vue │ │ │ │ │ └── notify.vue │ │ │ │ ├── layout/ │ │ │ │ │ ├── layout-container-drawer-loop.vue │ │ │ │ │ ├── layout-container.vue │ │ │ │ │ ├── layout-drawer-loop.vue │ │ │ │ │ ├── layout-drawer-mini.vue │ │ │ │ │ ├── layout-keep-state-above.vue │ │ │ │ │ ├── layout-page-scroller.vue │ │ │ │ │ ├── layout.vue │ │ │ │ │ └── pages/ │ │ │ │ │ ├── a.vue │ │ │ │ │ ├── b.vue │ │ │ │ │ ├── c.vue │ │ │ │ │ └── default.vue │ │ │ │ ├── meta/ │ │ │ │ │ ├── layouts/ │ │ │ │ │ │ ├── layout_1.vue │ │ │ │ │ │ ├── layout_2.vue │ │ │ │ │ │ └── title.vue │ │ │ │ │ └── pages/ │ │ │ │ │ ├── first.vue │ │ │ │ │ ├── second.vue │ │ │ │ │ └── third.vue │ │ │ │ ├── other/ │ │ │ │ │ ├── app-fullscreen-portals.vue │ │ │ │ │ ├── app-fullscreen.vue │ │ │ │ │ ├── app-visibility.vue │ │ │ │ │ ├── clipboard.vue │ │ │ │ │ ├── close-popup.vue │ │ │ │ │ ├── cookies.vue │ │ │ │ │ ├── date-utils.vue │ │ │ │ │ ├── event-bus.vue │ │ │ │ │ ├── export-file.vue │ │ │ │ │ ├── focus-tests.vue │ │ │ │ │ ├── intersection.vue │ │ │ │ │ ├── model-toggle.vue │ │ │ │ │ ├── morph-1.vue │ │ │ │ │ ├── morph-directive-boxes-obj.vue │ │ │ │ │ ├── morph-directive-boxes.vue │ │ │ │ │ ├── morph-directive-card.vue │ │ │ │ │ ├── morph-fab-card.vue │ │ │ │ │ ├── morph-img-1.vue │ │ │ │ │ ├── morph-img-2.vue │ │ │ │ │ ├── morph-img-3.vue │ │ │ │ │ ├── morph-same-element.vue │ │ │ │ │ ├── mutation.vue │ │ │ │ │ ├── platform-detection.vue │ │ │ │ │ ├── run-sequential-promises.vue │ │ │ │ │ ├── screen-plugin.vue │ │ │ │ │ ├── scroll-animated.vue │ │ │ │ │ ├── size-prop-test.vue │ │ │ │ │ ├── slide-transition.vue │ │ │ │ │ ├── transitions.vue │ │ │ │ │ ├── uid.vue │ │ │ │ │ ├── viewport-resize.vue │ │ │ │ │ └── web-storage.vue │ │ │ │ ├── touch-directives/ │ │ │ │ │ ├── pan-complex-test.vue │ │ │ │ │ ├── touch-hold.vue │ │ │ │ │ ├── touch-pan.vue │ │ │ │ │ ├── touch-repeat.vue │ │ │ │ │ ├── touch-style.sass │ │ │ │ │ └── touch-swipe.vue │ │ │ │ └── web-tests/ │ │ │ │ ├── a.vue │ │ │ │ ├── b.vue │ │ │ │ ├── breakpoints.vue │ │ │ │ ├── c.vue │ │ │ │ ├── fast-table-test.vue │ │ │ │ ├── fast-test.vue │ │ │ │ ├── get-normalized-vnodes.vue │ │ │ │ ├── hover.vue │ │ │ │ ├── keep-alive-events.vue │ │ │ │ ├── layout.vue │ │ │ │ ├── panel-keep-alive.vue │ │ │ │ ├── panel-vfor-loop.vue │ │ │ │ ├── portal-inject-test.vue │ │ │ │ ├── screen-height.vue │ │ │ │ └── tabs-router/ │ │ │ │ ├── One.vue │ │ │ │ ├── TabsLayout.vue │ │ │ │ └── Two.vue │ │ │ └── router/ │ │ │ ├── index.js │ │ │ ├── pages.js │ │ │ └── routes.js │ │ ├── src-ssr/ │ │ │ ├── middlewares/ │ │ │ │ └── render.js │ │ │ ├── package.json │ │ │ ├── pnpm-workspace.yaml │ │ │ └── server.js │ │ └── upload-server/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ └── server.js │ ├── playground-umd/ │ │ ├── index-multiapp.umd.html │ │ └── index.umd.html │ ├── src/ │ │ ├── Brand.json │ │ ├── api.extends.json │ │ ├── components/ │ │ │ ├── ajax-bar/ │ │ │ │ ├── QAjaxBar.js │ │ │ │ ├── QAjaxBar.json │ │ │ │ ├── QAjaxBar.sass │ │ │ │ └── index.js │ │ │ ├── avatar/ │ │ │ │ ├── QAvatar.js │ │ │ │ ├── QAvatar.json │ │ │ │ ├── QAvatar.sass │ │ │ │ ├── QAvatar.test.js │ │ │ │ └── index.js │ │ │ ├── badge/ │ │ │ │ ├── QBadge.js │ │ │ │ ├── QBadge.json │ │ │ │ ├── QBadge.sass │ │ │ │ ├── QBadge.test.js │ │ │ │ └── index.js │ │ │ ├── banner/ │ │ │ │ ├── QBanner.js │ │ │ │ ├── QBanner.json │ │ │ │ ├── QBanner.sass │ │ │ │ ├── QBanner.test.js │ │ │ │ └── index.js │ │ │ ├── bar/ │ │ │ │ ├── QBar.js │ │ │ │ ├── QBar.json │ │ │ │ ├── QBar.sass │ │ │ │ ├── QBar.test.js │ │ │ │ └── index.js │ │ │ ├── breadcrumbs/ │ │ │ │ ├── QBreadcrumbs.js │ │ │ │ ├── QBreadcrumbs.json │ │ │ │ ├── QBreadcrumbs.sass │ │ │ │ ├── QBreadcrumbs.test.js │ │ │ │ ├── QBreadcrumbsEl.js │ │ │ │ ├── QBreadcrumbsEl.json │ │ │ │ ├── QBreadcrumbsEl.test.js │ │ │ │ ├── index.js │ │ │ │ └── test/ │ │ │ │ ├── BasicBreadcrumbs.vue │ │ │ │ └── BreadcrumbWithSeparatorSlot.vue │ │ │ ├── btn/ │ │ │ │ ├── QBtn.js │ │ │ │ ├── QBtn.json │ │ │ │ ├── QBtn.sass │ │ │ │ ├── QBtn.test.js │ │ │ │ ├── index.js │ │ │ │ ├── use-btn.js │ │ │ │ ├── use-btn.json │ │ │ │ └── use-btn.test.js │ │ │ ├── btn-dropdown/ │ │ │ │ ├── QBtnDropdown.js │ │ │ │ ├── QBtnDropdown.json │ │ │ │ ├── QBtnDropdown.sass │ │ │ │ └── index.js │ │ │ ├── btn-group/ │ │ │ │ ├── QBtnGroup.js │ │ │ │ ├── QBtnGroup.json │ │ │ │ ├── QBtnGroup.sass │ │ │ │ └── index.js │ │ │ ├── btn-toggle/ │ │ │ │ ├── QBtnToggle.js │ │ │ │ ├── QBtnToggle.json │ │ │ │ ├── QBtnToggle.sass │ │ │ │ └── index.js │ │ │ ├── card/ │ │ │ │ ├── QCard.js │ │ │ │ ├── QCard.json │ │ │ │ ├── QCard.sass │ │ │ │ ├── QCardActions.js │ │ │ │ ├── QCardActions.json │ │ │ │ ├── QCardSection.js │ │ │ │ ├── QCardSection.json │ │ │ │ └── index.js │ │ │ ├── carousel/ │ │ │ │ ├── QCarousel.js │ │ │ │ ├── QCarousel.json │ │ │ │ ├── QCarousel.sass │ │ │ │ ├── QCarouselControl.js │ │ │ │ ├── QCarouselControl.json │ │ │ │ ├── QCarouselSlide.js │ │ │ │ ├── QCarouselSlide.json │ │ │ │ └── index.js │ │ │ ├── chat/ │ │ │ │ ├── QChatMessage.js │ │ │ │ ├── QChatMessage.json │ │ │ │ ├── QChatMessage.sass │ │ │ │ └── index.js │ │ │ ├── checkbox/ │ │ │ │ ├── QCheckbox.js │ │ │ │ ├── QCheckbox.json │ │ │ │ ├── QCheckbox.sass │ │ │ │ ├── index.js │ │ │ │ ├── use-checkbox.js │ │ │ │ └── use-checkbox.json │ │ │ ├── chip/ │ │ │ │ ├── QChip.js │ │ │ │ ├── QChip.json │ │ │ │ ├── QChip.sass │ │ │ │ ├── QChip.test.js │ │ │ │ └── index.js │ │ │ ├── circular-progress/ │ │ │ │ ├── QCircularProgress.js │ │ │ │ ├── QCircularProgress.json │ │ │ │ ├── QCircularProgress.sass │ │ │ │ ├── circular-progress.js │ │ │ │ ├── circular-progress.test.js │ │ │ │ └── index.js │ │ │ ├── color/ │ │ │ │ ├── QColor.js │ │ │ │ ├── QColor.json │ │ │ │ ├── QColor.sass │ │ │ │ └── index.js │ │ │ ├── date/ │ │ │ │ ├── QDate.js │ │ │ │ ├── QDate.json │ │ │ │ ├── QDate.sass │ │ │ │ ├── index.js │ │ │ │ ├── use-datetime.js │ │ │ │ └── use-datetime.json │ │ │ ├── dialog/ │ │ │ │ ├── QDialog.js │ │ │ │ ├── QDialog.json │ │ │ │ ├── QDialog.sass │ │ │ │ ├── QDialog.test.js │ │ │ │ ├── index.js │ │ │ │ └── test/ │ │ │ │ └── DialogWrapper.vue │ │ │ ├── drawer/ │ │ │ │ ├── QDrawer.js │ │ │ │ ├── QDrawer.json │ │ │ │ └── index.js │ │ │ ├── editor/ │ │ │ │ ├── QEditor.js │ │ │ │ ├── QEditor.json │ │ │ │ ├── QEditor.sass │ │ │ │ ├── editor-caret.js │ │ │ │ ├── editor-utils.js │ │ │ │ └── index.js │ │ │ ├── expansion-item/ │ │ │ │ ├── QExpansionItem.js │ │ │ │ ├── QExpansionItem.json │ │ │ │ ├── QExpansionItem.sass │ │ │ │ └── index.js │ │ │ ├── fab/ │ │ │ │ ├── QFab.js │ │ │ │ ├── QFab.json │ │ │ │ ├── QFab.sass │ │ │ │ ├── QFabAction.js │ │ │ │ ├── QFabAction.json │ │ │ │ ├── index.js │ │ │ │ ├── use-fab.js │ │ │ │ └── use-fab.json │ │ │ ├── field/ │ │ │ │ ├── QField.js │ │ │ │ ├── QField.json │ │ │ │ ├── QField.sass │ │ │ │ └── index.js │ │ │ ├── file/ │ │ │ │ ├── QFile.js │ │ │ │ ├── QFile.json │ │ │ │ ├── QFile.sass │ │ │ │ └── index.js │ │ │ ├── footer/ │ │ │ │ ├── QFooter.js │ │ │ │ ├── QFooter.json │ │ │ │ └── index.js │ │ │ ├── form/ │ │ │ │ ├── QForm.js │ │ │ │ ├── QForm.json │ │ │ │ ├── QForm.sass │ │ │ │ ├── QFormChildMixin.js │ │ │ │ ├── QFormChildMixin.json │ │ │ │ └── index.js │ │ │ ├── header/ │ │ │ │ ├── QHeader.js │ │ │ │ ├── QHeader.json │ │ │ │ └── index.js │ │ │ ├── icon/ │ │ │ │ ├── QIcon.js │ │ │ │ ├── QIcon.json │ │ │ │ ├── QIcon.sass │ │ │ │ └── index.js │ │ │ ├── img/ │ │ │ │ ├── QImg.js │ │ │ │ ├── QImg.json │ │ │ │ ├── QImg.sass │ │ │ │ └── index.js │ │ │ ├── infinite-scroll/ │ │ │ │ ├── QInfiniteScroll.js │ │ │ │ ├── QInfiniteScroll.json │ │ │ │ └── index.js │ │ │ ├── inner-loading/ │ │ │ │ ├── QInnerLoading.js │ │ │ │ ├── QInnerLoading.json │ │ │ │ ├── QInnerLoading.sass │ │ │ │ └── index.js │ │ │ ├── input/ │ │ │ │ ├── QInput.js │ │ │ │ ├── QInput.json │ │ │ │ ├── QInput.sass │ │ │ │ ├── index.js │ │ │ │ ├── use-mask.js │ │ │ │ └── use-mask.json │ │ │ ├── intersection/ │ │ │ │ ├── QIntersection.js │ │ │ │ ├── QIntersection.json │ │ │ │ ├── QIntersection.sass │ │ │ │ └── index.js │ │ │ ├── item/ │ │ │ │ ├── QItem.js │ │ │ │ ├── QItem.json │ │ │ │ ├── QItem.sass │ │ │ │ ├── QItemLabel.js │ │ │ │ ├── QItemLabel.json │ │ │ │ ├── QItemSection.js │ │ │ │ ├── QItemSection.json │ │ │ │ ├── QList.js │ │ │ │ ├── QList.json │ │ │ │ ├── QList.test.js │ │ │ │ └── index.js │ │ │ ├── knob/ │ │ │ │ ├── QKnob.js │ │ │ │ ├── QKnob.json │ │ │ │ ├── QKnob.sass │ │ │ │ └── index.js │ │ │ ├── layout/ │ │ │ │ ├── QLayout.js │ │ │ │ ├── QLayout.json │ │ │ │ ├── QLayout.sass │ │ │ │ └── index.js │ │ │ ├── linear-progress/ │ │ │ │ ├── QLinearProgress.js │ │ │ │ ├── QLinearProgress.json │ │ │ │ ├── QLinearProgress.sass │ │ │ │ └── index.js │ │ │ ├── markup-table/ │ │ │ │ ├── QMarkupTable.js │ │ │ │ ├── QMarkupTable.json │ │ │ │ └── index.js │ │ │ ├── menu/ │ │ │ │ ├── QMenu.js │ │ │ │ ├── QMenu.json │ │ │ │ ├── QMenu.sass │ │ │ │ └── index.js │ │ │ ├── no-ssr/ │ │ │ │ ├── QNoSsr.js │ │ │ │ ├── QNoSsr.json │ │ │ │ └── index.js │ │ │ ├── option-group/ │ │ │ │ ├── QOptionGroup.js │ │ │ │ ├── QOptionGroup.json │ │ │ │ ├── QOptionGroup.sass │ │ │ │ └── index.js │ │ │ ├── page/ │ │ │ │ ├── QPage.js │ │ │ │ ├── QPage.json │ │ │ │ ├── QPageContainer.js │ │ │ │ ├── QPageContainer.json │ │ │ │ └── index.js │ │ │ ├── page-scroller/ │ │ │ │ ├── QPageScroller.js │ │ │ │ ├── QPageScroller.json │ │ │ │ └── index.js │ │ │ ├── page-sticky/ │ │ │ │ ├── QPageSticky.js │ │ │ │ ├── QPageSticky.json │ │ │ │ ├── index.js │ │ │ │ └── use-page-sticky.js │ │ │ ├── pagination/ │ │ │ │ ├── QPagination.js │ │ │ │ ├── QPagination.json │ │ │ │ ├── QPagination.sass │ │ │ │ └── index.js │ │ │ ├── parallax/ │ │ │ │ ├── QParallax.js │ │ │ │ ├── QParallax.json │ │ │ │ ├── QParallax.sass │ │ │ │ └── index.js │ │ │ ├── popup-edit/ │ │ │ │ ├── QPopupEdit.js │ │ │ │ ├── QPopupEdit.json │ │ │ │ ├── QPopupEdit.sass │ │ │ │ └── index.js │ │ │ ├── popup-proxy/ │ │ │ │ ├── QPopupProxy.js │ │ │ │ ├── QPopupProxy.json │ │ │ │ └── index.js │ │ │ ├── pull-to-refresh/ │ │ │ │ ├── QPullToRefresh.js │ │ │ │ ├── QPullToRefresh.json │ │ │ │ ├── QPullToRefresh.sass │ │ │ │ └── index.js │ │ │ ├── radio/ │ │ │ │ ├── QRadio.js │ │ │ │ ├── QRadio.json │ │ │ │ ├── QRadio.sass │ │ │ │ └── index.js │ │ │ ├── range/ │ │ │ │ ├── QRange.js │ │ │ │ ├── QRange.json │ │ │ │ └── index.js │ │ │ ├── rating/ │ │ │ │ ├── QRating.js │ │ │ │ ├── QRating.json │ │ │ │ ├── QRating.sass │ │ │ │ └── index.js │ │ │ ├── resize-observer/ │ │ │ │ ├── QResizeObserver.js │ │ │ │ ├── QResizeObserver.json │ │ │ │ └── index.js │ │ │ ├── responsive/ │ │ │ │ ├── QResponsive.js │ │ │ │ ├── QResponsive.json │ │ │ │ ├── QResponsive.sass │ │ │ │ └── index.js │ │ │ ├── scroll-area/ │ │ │ │ ├── QScrollArea.js │ │ │ │ ├── QScrollArea.json │ │ │ │ ├── QScrollArea.sass │ │ │ │ ├── ScrollAreaControls.js │ │ │ │ └── index.js │ │ │ ├── scroll-observer/ │ │ │ │ ├── QScrollObserver.js │ │ │ │ ├── QScrollObserver.json │ │ │ │ └── index.js │ │ │ ├── select/ │ │ │ │ ├── QSelect.js │ │ │ │ ├── QSelect.json │ │ │ │ ├── QSelect.sass │ │ │ │ └── index.js │ │ │ ├── separator/ │ │ │ │ ├── QSeparator.js │ │ │ │ ├── QSeparator.json │ │ │ │ ├── QSeparator.sass │ │ │ │ └── index.js │ │ │ ├── skeleton/ │ │ │ │ ├── QSkeleton.js │ │ │ │ ├── QSkeleton.json │ │ │ │ ├── QSkeleton.sass │ │ │ │ └── index.js │ │ │ ├── slide-item/ │ │ │ │ ├── QSlideItem.js │ │ │ │ ├── QSlideItem.json │ │ │ │ ├── QSlideItem.sass │ │ │ │ └── index.js │ │ │ ├── slide-transition/ │ │ │ │ ├── QSlideTransition.js │ │ │ │ ├── QSlideTransition.json │ │ │ │ └── index.js │ │ │ ├── slider/ │ │ │ │ ├── QSlider.js │ │ │ │ ├── QSlider.json │ │ │ │ ├── QSlider.sass │ │ │ │ ├── index.js │ │ │ │ ├── use-slider.js │ │ │ │ └── use-slider.json │ │ │ ├── space/ │ │ │ │ ├── QSpace.js │ │ │ │ ├── QSpace.json │ │ │ │ ├── QSpace.sass │ │ │ │ ├── QSpace.test.js │ │ │ │ └── index.js │ │ │ ├── spinner/ │ │ │ │ ├── QSpinner.js │ │ │ │ ├── QSpinner.json │ │ │ │ ├── QSpinner.sass │ │ │ │ ├── QSpinner.test.js │ │ │ │ ├── QSpinnerAudio.js │ │ │ │ ├── QSpinnerAudio.json │ │ │ │ ├── QSpinnerAudio.test.js │ │ │ │ ├── QSpinnerBall.js │ │ │ │ ├── QSpinnerBall.json │ │ │ │ ├── QSpinnerBall.test.js │ │ │ │ ├── QSpinnerBars.js │ │ │ │ ├── QSpinnerBars.json │ │ │ │ ├── QSpinnerBars.test.js │ │ │ │ ├── QSpinnerBox.js │ │ │ │ ├── QSpinnerBox.json │ │ │ │ ├── QSpinnerBox.test.js │ │ │ │ ├── QSpinnerClock.js │ │ │ │ ├── QSpinnerClock.json │ │ │ │ ├── QSpinnerClock.test.js │ │ │ │ ├── QSpinnerComment.js │ │ │ │ ├── QSpinnerComment.json │ │ │ │ ├── QSpinnerComment.test.js │ │ │ │ ├── QSpinnerCube.js │ │ │ │ ├── QSpinnerCube.json │ │ │ │ ├── QSpinnerCube.test.js │ │ │ │ ├── QSpinnerDots.js │ │ │ │ ├── QSpinnerDots.json │ │ │ │ ├── QSpinnerDots.test.js │ │ │ │ ├── QSpinnerFacebook.js │ │ │ │ ├── QSpinnerFacebook.json │ │ │ │ ├── QSpinnerFacebook.test.js │ │ │ │ ├── QSpinnerGears.js │ │ │ │ ├── QSpinnerGears.json │ │ │ │ ├── QSpinnerGears.test.js │ │ │ │ ├── QSpinnerGrid.js │ │ │ │ ├── QSpinnerGrid.json │ │ │ │ ├── QSpinnerGrid.test.js │ │ │ │ ├── QSpinnerHearts.js │ │ │ │ ├── QSpinnerHearts.json │ │ │ │ ├── QSpinnerHearts.test.js │ │ │ │ ├── QSpinnerHourglass.js │ │ │ │ ├── QSpinnerHourglass.json │ │ │ │ ├── QSpinnerHourglass.test.js │ │ │ │ ├── QSpinnerInfinity.js │ │ │ │ ├── QSpinnerInfinity.json │ │ │ │ ├── QSpinnerInfinity.test.js │ │ │ │ ├── QSpinnerIos.js │ │ │ │ ├── QSpinnerIos.json │ │ │ │ ├── QSpinnerIos.test.js │ │ │ │ ├── QSpinnerOrbit.js │ │ │ │ ├── QSpinnerOrbit.json │ │ │ │ ├── QSpinnerOrbit.test.js │ │ │ │ ├── QSpinnerOval.js │ │ │ │ ├── QSpinnerOval.json │ │ │ │ ├── QSpinnerOval.test.js │ │ │ │ ├── QSpinnerPie.js │ │ │ │ ├── QSpinnerPie.json │ │ │ │ ├── QSpinnerPie.test.js │ │ │ │ ├── QSpinnerPuff.js │ │ │ │ ├── QSpinnerPuff.json │ │ │ │ ├── QSpinnerPuff.test.js │ │ │ │ ├── QSpinnerRadio.js │ │ │ │ ├── QSpinnerRadio.json │ │ │ │ ├── QSpinnerRadio.test.js │ │ │ │ ├── QSpinnerRings.js │ │ │ │ ├── QSpinnerRings.json │ │ │ │ ├── QSpinnerRings.test.js │ │ │ │ ├── QSpinnerTail.js │ │ │ │ ├── QSpinnerTail.json │ │ │ │ ├── QSpinnerTail.test.js │ │ │ │ ├── index.js │ │ │ │ ├── spinner.json │ │ │ │ ├── use-spinner.js │ │ │ │ └── use-spinner.test.js │ │ │ ├── splitter/ │ │ │ │ ├── QSplitter.js │ │ │ │ ├── QSplitter.json │ │ │ │ ├── QSplitter.sass │ │ │ │ └── index.js │ │ │ ├── stepper/ │ │ │ │ ├── QStep.js │ │ │ │ ├── QStep.json │ │ │ │ ├── QStepper.js │ │ │ │ ├── QStepper.json │ │ │ │ ├── QStepper.sass │ │ │ │ ├── QStepperNavigation.js │ │ │ │ ├── QStepperNavigation.json │ │ │ │ ├── StepHeader.js │ │ │ │ └── index.js │ │ │ ├── tab-panels/ │ │ │ │ ├── QTabPanel.js │ │ │ │ ├── QTabPanel.json │ │ │ │ ├── QTabPanel.sass │ │ │ │ ├── QTabPanels.js │ │ │ │ ├── QTabPanels.json │ │ │ │ └── index.js │ │ │ ├── table/ │ │ │ │ ├── QTable.js │ │ │ │ ├── QTable.json │ │ │ │ ├── QTable.sass │ │ │ │ ├── QTd.js │ │ │ │ ├── QTd.json │ │ │ │ ├── QTh.js │ │ │ │ ├── QTh.json │ │ │ │ ├── QTr.js │ │ │ │ ├── QTr.json │ │ │ │ ├── get-table-middle.js │ │ │ │ ├── index.js │ │ │ │ ├── table-column-selection.js │ │ │ │ ├── table-filter.js │ │ │ │ ├── table-pagination.js │ │ │ │ ├── table-row-expand.js │ │ │ │ ├── table-row-selection.js │ │ │ │ └── table-sort.js │ │ │ ├── tabs/ │ │ │ │ ├── QRouteTab.js │ │ │ │ ├── QRouteTab.json │ │ │ │ ├── QTab.js │ │ │ │ ├── QTab.json │ │ │ │ ├── QTabs.js │ │ │ │ ├── QTabs.json │ │ │ │ ├── QTabs.sass │ │ │ │ ├── index.js │ │ │ │ ├── use-tab.js │ │ │ │ └── use-tab.json │ │ │ ├── time/ │ │ │ │ ├── QTime.js │ │ │ │ ├── QTime.json │ │ │ │ ├── QTime.sass │ │ │ │ └── index.js │ │ │ ├── timeline/ │ │ │ │ ├── QTimeline.js │ │ │ │ ├── QTimeline.json │ │ │ │ ├── QTimeline.sass │ │ │ │ ├── QTimelineEntry.js │ │ │ │ ├── QTimelineEntry.json │ │ │ │ └── index.js │ │ │ ├── toggle/ │ │ │ │ ├── QToggle.js │ │ │ │ ├── QToggle.json │ │ │ │ ├── QToggle.sass │ │ │ │ └── index.js │ │ │ ├── toolbar/ │ │ │ │ ├── QToolbar.js │ │ │ │ ├── QToolbar.json │ │ │ │ ├── QToolbar.sass │ │ │ │ ├── QToolbar.test.js │ │ │ │ ├── QToolbarTitle.js │ │ │ │ ├── QToolbarTitle.json │ │ │ │ ├── QToolbarTitle.test.js │ │ │ │ └── index.js │ │ │ ├── tooltip/ │ │ │ │ ├── QTooltip.js │ │ │ │ ├── QTooltip.json │ │ │ │ ├── QTooltip.sass │ │ │ │ └── index.js │ │ │ ├── tree/ │ │ │ │ ├── QTree.js │ │ │ │ ├── QTree.json │ │ │ │ ├── QTree.sass │ │ │ │ └── index.js │ │ │ ├── uploader/ │ │ │ │ ├── QUploader.js │ │ │ │ ├── QUploader.json │ │ │ │ ├── QUploader.sass │ │ │ │ ├── QUploaderAddTrigger.js │ │ │ │ ├── QUploaderAddTrigger.json │ │ │ │ ├── index.js │ │ │ │ ├── uploader-core.js │ │ │ │ ├── xhr-uploader-plugin.js │ │ │ │ └── xhr-uploader-plugin.json │ │ │ ├── video/ │ │ │ │ ├── QVideo.js │ │ │ │ ├── QVideo.json │ │ │ │ ├── QVideo.sass │ │ │ │ ├── QVideo.test.js │ │ │ │ └── index.js │ │ │ └── virtual-scroll/ │ │ │ ├── QVirtualScroll.js │ │ │ ├── QVirtualScroll.json │ │ │ ├── QVirtualScroll.sass │ │ │ ├── index.js │ │ │ ├── use-virtual-scroll.js │ │ │ └── use-virtual-scroll.json │ │ ├── components.js │ │ ├── composables/ │ │ │ ├── private.use-align/ │ │ │ │ ├── use-align.js │ │ │ │ └── use-align.test.js │ │ │ ├── private.use-anchor/ │ │ │ │ ├── use-anchor-static.json │ │ │ │ ├── use-anchor.js │ │ │ │ └── use-anchor.json │ │ │ ├── private.use-dark/ │ │ │ │ ├── use-dark.js │ │ │ │ └── use-dark.test.js │ │ │ ├── private.use-field/ │ │ │ │ ├── use-field.js │ │ │ │ └── use-field.json │ │ │ ├── private.use-file/ │ │ │ │ ├── use-file-dom-props.js │ │ │ │ ├── use-file.js │ │ │ │ └── use-file.json │ │ │ ├── private.use-fullscreen/ │ │ │ │ ├── use-fullscreen.js │ │ │ │ └── use-fullscreen.json │ │ │ ├── private.use-history/ │ │ │ │ ├── use-history.js │ │ │ │ └── use-history.test.js │ │ │ ├── private.use-key-composition/ │ │ │ │ └── use-key-composition.js │ │ │ ├── private.use-model-toggle/ │ │ │ │ ├── use-model-toggle.js │ │ │ │ └── use-model-toggle.json │ │ │ ├── private.use-panel/ │ │ │ │ ├── use-panel.child.json │ │ │ │ ├── use-panel.js │ │ │ │ ├── use-panel.json │ │ │ │ └── use-panel.sass │ │ │ ├── private.use-portal/ │ │ │ │ ├── use-portal.js │ │ │ │ └── use-portal.json │ │ │ ├── private.use-prevent-scroll/ │ │ │ │ └── use-prevent-scroll.js │ │ │ ├── private.use-ratio/ │ │ │ │ ├── use-ratio.js │ │ │ │ ├── use-ratio.json │ │ │ │ └── use-ratio.test.js │ │ │ ├── private.use-refocus-target/ │ │ │ │ └── use-refocus-target.js │ │ │ ├── private.use-router-link/ │ │ │ │ ├── use-router-link.js │ │ │ │ └── use-router-link.json │ │ │ ├── private.use-scroll-target/ │ │ │ │ └── use-scroll-target.js │ │ │ ├── private.use-size/ │ │ │ │ ├── use-size.js │ │ │ │ ├── use-size.json │ │ │ │ └── use-size.test.js │ │ │ ├── private.use-transition/ │ │ │ │ ├── use-transition.js │ │ │ │ ├── use-transition.json │ │ │ │ └── use-transition.test.js │ │ │ ├── private.use-validate/ │ │ │ │ ├── use-validate.js │ │ │ │ └── use-validate.json │ │ │ ├── use-dialog-plugin-component/ │ │ │ │ └── use-dialog-plugin-component.js │ │ │ ├── use-form/ │ │ │ │ ├── private.use-form.js │ │ │ │ ├── private.use-form.json │ │ │ │ ├── private.use-form.test.js │ │ │ │ └── use-form-child.js │ │ │ ├── use-hydration/ │ │ │ │ ├── use-hydration.js │ │ │ │ └── use-hydration.test.js │ │ │ ├── use-id/ │ │ │ │ ├── use-id.js │ │ │ │ └── use-id.test.js │ │ │ ├── use-interval/ │ │ │ │ ├── use-interval.js │ │ │ │ └── use-interval.test.js │ │ │ ├── use-meta/ │ │ │ │ └── use-meta.js │ │ │ ├── use-quasar/ │ │ │ │ ├── use-quasar.js │ │ │ │ └── use-quasar.test.js │ │ │ ├── use-render-cache/ │ │ │ │ ├── use-render-cache.js │ │ │ │ └── use-render-cache.test.js │ │ │ ├── use-split-attrs/ │ │ │ │ ├── use-split-attrs.js │ │ │ │ └── use-split-attrs.test.js │ │ │ ├── use-tick/ │ │ │ │ ├── use-tick.js │ │ │ │ └── use-tick.test.js │ │ │ └── use-timeout/ │ │ │ ├── use-timeout.js │ │ │ └── use-timeout.test.js │ │ ├── composables.js │ │ ├── css/ │ │ │ ├── core/ │ │ │ │ ├── animations.sass │ │ │ │ ├── colors.sass │ │ │ │ ├── dark.sass │ │ │ │ ├── elevation.sass │ │ │ │ ├── flex.sass │ │ │ │ ├── helpers.sass │ │ │ │ ├── mouse.sass │ │ │ │ ├── orientation.sass │ │ │ │ ├── positioning.sass │ │ │ │ ├── size.sass │ │ │ │ ├── touch.sass │ │ │ │ ├── transitions.sass │ │ │ │ ├── typography.sass │ │ │ │ └── visibility.sass │ │ │ ├── flex-addon.sass │ │ │ ├── helpers/ │ │ │ │ ├── math.sass │ │ │ │ └── string.sass │ │ │ ├── index.sass │ │ │ ├── normalize.sass │ │ │ └── variables.sass │ │ ├── directives/ │ │ │ ├── close-popup/ │ │ │ │ ├── ClosePopup.js │ │ │ │ └── ClosePopup.json │ │ │ ├── intersection/ │ │ │ │ ├── Intersection.js │ │ │ │ └── Intersection.json │ │ │ ├── morph/ │ │ │ │ ├── Morph.js │ │ │ │ ├── Morph.json │ │ │ │ └── Morph.sass │ │ │ ├── mutation/ │ │ │ │ ├── Mutation.js │ │ │ │ └── Mutation.json │ │ │ ├── ripple/ │ │ │ │ ├── Ripple.js │ │ │ │ ├── Ripple.json │ │ │ │ ├── Ripple.sass │ │ │ │ └── Ripple.test.js │ │ │ ├── scroll/ │ │ │ │ ├── Scroll.js │ │ │ │ └── Scroll.json │ │ │ ├── scroll-fire/ │ │ │ │ ├── ScrollFire.js │ │ │ │ └── ScrollFire.json │ │ │ ├── touch-hold/ │ │ │ │ ├── TouchHold.js │ │ │ │ └── TouchHold.json │ │ │ ├── touch-pan/ │ │ │ │ ├── TouchPan.js │ │ │ │ └── TouchPan.json │ │ │ ├── touch-repeat/ │ │ │ │ ├── TouchRepeat.js │ │ │ │ └── TouchRepeat.json │ │ │ └── touch-swipe/ │ │ │ ├── TouchSwipe.js │ │ │ └── TouchSwipe.json │ │ ├── directives.js │ │ ├── flags.dev.js │ │ ├── index.dev.js │ │ ├── index.ssr.js │ │ ├── index.umd.js │ │ ├── install-quasar.js │ │ ├── plugins/ │ │ │ ├── addressbar/ │ │ │ │ ├── AddressbarColor.js │ │ │ │ ├── AddressbarColor.json │ │ │ │ └── AddressbarColor.test.js │ │ │ ├── app-fullscreen/ │ │ │ │ ├── AppFullscreen.js │ │ │ │ ├── AppFullscreen.json │ │ │ │ ├── AppFullscreen.test.js │ │ │ │ └── test/ │ │ │ │ └── mock-fullscreen.js │ │ │ ├── app-visibility/ │ │ │ │ ├── AppVisibility.js │ │ │ │ ├── AppVisibility.json │ │ │ │ └── AppVisibility.test.js │ │ │ ├── bottom-sheet/ │ │ │ │ ├── BottomSheet.js │ │ │ │ ├── BottomSheet.json │ │ │ │ └── component/ │ │ │ │ ├── BottomSheetComponent.js │ │ │ │ └── BottomSheetComponent.sass │ │ │ ├── cookies/ │ │ │ │ ├── Cookies.js │ │ │ │ └── Cookies.json │ │ │ ├── dark/ │ │ │ │ ├── Dark.js │ │ │ │ ├── Dark.json │ │ │ │ └── Dark.test.js │ │ │ ├── dialog/ │ │ │ │ ├── Dialog.js │ │ │ │ ├── Dialog.json │ │ │ │ └── component/ │ │ │ │ ├── DialogPluginComponent.js │ │ │ │ └── DialogPluginComponent.sass │ │ │ ├── icon-set/ │ │ │ │ ├── IconSet.js │ │ │ │ ├── IconSet.json │ │ │ │ └── IconSet.test.js │ │ │ ├── lang/ │ │ │ │ ├── Lang.js │ │ │ │ ├── Lang.json │ │ │ │ └── Lang.test.js │ │ │ ├── loading/ │ │ │ │ ├── Loading.js │ │ │ │ ├── Loading.json │ │ │ │ └── Loading.sass │ │ │ ├── loading-bar/ │ │ │ │ ├── LoadingBar.js │ │ │ │ └── LoadingBar.json │ │ │ ├── meta/ │ │ │ │ ├── Meta.js │ │ │ │ └── Meta.json │ │ │ ├── notify/ │ │ │ │ ├── Notify.js │ │ │ │ ├── Notify.json │ │ │ │ └── Notify.sass │ │ │ ├── platform/ │ │ │ │ ├── Platform.js │ │ │ │ ├── Platform.json │ │ │ │ └── Platform.test.js │ │ │ ├── private.body/ │ │ │ │ ├── Body.js │ │ │ │ └── Body.test.js │ │ │ ├── private.history/ │ │ │ │ ├── History.js │ │ │ │ └── History.test.js │ │ │ ├── screen/ │ │ │ │ ├── Screen.js │ │ │ │ ├── Screen.json │ │ │ │ └── Screen.test.js │ │ │ └── storage/ │ │ │ ├── LocalStorage.js │ │ │ ├── LocalStorage.json │ │ │ ├── LocalStorage.test.js │ │ │ ├── SessionStorage.js │ │ │ ├── SessionStorage.json │ │ │ ├── SessionStorage.test.js │ │ │ └── engine/ │ │ │ ├── web-storage.js │ │ │ ├── web-storage.json │ │ │ └── web-storage.test.js │ │ ├── plugins.js │ │ ├── utils/ │ │ │ ├── EventBus/ │ │ │ │ ├── EventBus.js │ │ │ │ └── EventBus.test.js │ │ │ ├── clone/ │ │ │ │ ├── clone.js │ │ │ │ └── clone.test.js │ │ │ ├── colors/ │ │ │ │ ├── colors.js │ │ │ │ └── colors.test.js │ │ │ ├── copy-to-clipboard/ │ │ │ │ └── copy-to-clipboard.js │ │ │ ├── create-meta-mixin/ │ │ │ │ └── create-meta-mixin.js │ │ │ ├── create-uploader-component/ │ │ │ │ └── create-uploader-component.js │ │ │ ├── css-var/ │ │ │ │ ├── get-css-var.js │ │ │ │ ├── get-css-var.test.js │ │ │ │ ├── set-css-var.js │ │ │ │ └── set-css-var.test.js │ │ │ ├── date/ │ │ │ │ ├── date.js │ │ │ │ └── private.persian.js │ │ │ ├── debounce/ │ │ │ │ ├── debounce.js │ │ │ │ └── debounce.test.js │ │ │ ├── dom/ │ │ │ │ ├── dom.js │ │ │ │ └── dom.test.js │ │ │ ├── event/ │ │ │ │ └── event.js │ │ │ ├── export-file/ │ │ │ │ └── export-file.js │ │ │ ├── extend/ │ │ │ │ ├── extend.js │ │ │ │ └── extend.test.js │ │ │ ├── format/ │ │ │ │ ├── format.js │ │ │ │ └── format.test.js │ │ │ ├── frame-debounce/ │ │ │ │ ├── frame-debounce.js │ │ │ │ └── frame-debounce.test.js │ │ │ ├── is/ │ │ │ │ ├── is.js │ │ │ │ └── is.test.js │ │ │ ├── morph/ │ │ │ │ └── morph.js │ │ │ ├── open-url/ │ │ │ │ └── open-url.js │ │ │ ├── patterns/ │ │ │ │ ├── patterns.js │ │ │ │ └── patterns.test.js │ │ │ ├── private.click-outside/ │ │ │ │ └── click-outside.js │ │ │ ├── private.config/ │ │ │ │ ├── instance-config.js │ │ │ │ ├── instance-config.test.js │ │ │ │ ├── nodes.js │ │ │ │ └── nodes.test.js │ │ │ ├── private.create/ │ │ │ │ ├── create.js │ │ │ │ └── create.test.js │ │ │ ├── private.dialog/ │ │ │ │ ├── create-dialog.js │ │ │ │ └── create-dialog.json │ │ │ ├── private.focus/ │ │ │ │ ├── focus-manager.js │ │ │ │ ├── focus-manager.test.js │ │ │ │ ├── focusout.js │ │ │ │ └── focusout.test.js │ │ │ ├── private.get-emits-object/ │ │ │ │ ├── get-emits-object.js │ │ │ │ └── get-emits-object.test.js │ │ │ ├── private.inject-obj-prop/ │ │ │ │ ├── inject-obj-prop.js │ │ │ │ └── inject-obj-prop.test.js │ │ │ ├── private.keyboard/ │ │ │ │ ├── escape-key.js │ │ │ │ ├── escape-key.test.js │ │ │ │ └── key-composition.js │ │ │ ├── private.noop-ssr-directive-transform/ │ │ │ │ ├── noop-ssr-directive-transform.js │ │ │ │ └── noop-ssr-directive-transform.test.js │ │ │ ├── private.option-sizes/ │ │ │ │ └── option-sizes.js │ │ │ ├── private.portal/ │ │ │ │ └── portal.js │ │ │ ├── private.position-engine/ │ │ │ │ └── position-engine.js │ │ │ ├── private.render/ │ │ │ │ ├── render.js │ │ │ │ └── render.test.js │ │ │ ├── private.rtl/ │ │ │ │ ├── rtl.js │ │ │ │ └── rtl.test.js │ │ │ ├── private.selection/ │ │ │ │ ├── selection.js │ │ │ │ └── selection.test.js │ │ │ ├── private.sort/ │ │ │ │ ├── sort.js │ │ │ │ └── sort.test.js │ │ │ ├── private.symbols/ │ │ │ │ └── symbols.js │ │ │ ├── private.touch/ │ │ │ │ ├── touch.js │ │ │ │ └── touch.test.js │ │ │ ├── private.vm/ │ │ │ │ ├── vm.js │ │ │ │ └── vm.test.js │ │ │ ├── run-sequential-promises/ │ │ │ │ └── run-sequential-promises.js │ │ │ ├── scroll/ │ │ │ │ ├── prevent-scroll.js │ │ │ │ └── scroll.js │ │ │ ├── throttle/ │ │ │ │ ├── throttle.js │ │ │ │ └── throttle.test.js │ │ │ └── uid/ │ │ │ ├── uid.js │ │ │ └── uid.test.js │ │ ├── utils.js │ │ └── vue-plugin.js │ ├── testing/ │ │ ├── README.md │ │ ├── package.json │ │ ├── runtime/ │ │ │ └── router.js │ │ ├── specs/ │ │ │ ├── astParser.js │ │ │ ├── cmd.createTestFile.js │ │ │ ├── cmd.dryRun.js │ │ │ ├── cmd.generateSection.js │ │ │ ├── cmd.validateTestFile.js │ │ │ ├── ctx.js │ │ │ ├── generators/ │ │ │ │ ├── generator.component.js │ │ │ │ ├── generator.composable.js │ │ │ │ ├── generator.directive.js │ │ │ │ ├── generator.generic.js │ │ │ │ ├── generator.plugin.js │ │ │ │ └── map.js │ │ │ ├── ignoredTestFiles.conf │ │ │ ├── ignoredTestFiles.js │ │ │ ├── readAssociatedJsonFile.js │ │ │ ├── script.js │ │ │ ├── specs.utils.js │ │ │ ├── target.js │ │ │ └── testFile.js │ │ ├── vitest.config.js │ │ └── vitest.setup.js │ ├── tsconfig.json │ ├── types/ │ │ ├── api/ │ │ │ ├── color.d.ts │ │ │ ├── cookies.d.ts │ │ │ ├── dialog.d.ts │ │ │ ├── qeditor.d.ts │ │ │ ├── qfile.d.ts │ │ │ ├── qform.d.ts │ │ │ ├── qinput.d.ts │ │ │ ├── qloading.d.ts │ │ │ ├── qloadingbar.d.ts │ │ │ ├── qnotify.d.ts │ │ │ ├── qpopupproxy.d.ts │ │ │ ├── qselect.d.ts │ │ │ ├── qtable.d.ts │ │ │ ├── qtree.d.ts │ │ │ ├── quploader.d.ts │ │ │ ├── slider.d.ts │ │ │ ├── touchswipe.d.ts │ │ │ ├── validation.d.ts │ │ │ ├── vue-prop-types.d.ts │ │ │ └── web-storage.d.ts │ │ ├── api.d.ts │ │ ├── composables.d.ts │ │ ├── config.d.ts │ │ ├── feature-flag.d.ts │ │ ├── globals.d.ts │ │ ├── icon-set.d.ts │ │ ├── lang.d.ts │ │ ├── meta.d.ts │ │ ├── plugin.d.ts │ │ ├── shim-icon-set.d.ts │ │ ├── shim-lang.d.ts │ │ ├── ts-helpers.d.ts │ │ ├── tsconfig.json │ │ ├── utils/ │ │ │ ├── colors.d.ts │ │ │ ├── date.d.ts │ │ │ ├── dom.d.ts │ │ │ ├── event.d.ts │ │ │ ├── format.d.ts │ │ │ ├── is.d.ts │ │ │ ├── patterns.d.ts │ │ │ ├── run-sequential-promises.d.ts │ │ │ └── scroll.d.ts │ │ └── utils.d.ts │ └── wrappers/ │ ├── index.cjs │ └── index.js ├── utils/ │ ├── babel-preset-app/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── polyfills.js │ ├── render-ssr-error/ │ │ ├── .npmignore │ │ ├── README.md │ │ ├── build/ │ │ │ └── index.js │ │ ├── compiled-assets/ │ │ │ ├── after-injection │ │ │ └── before-injection │ │ ├── package.json │ │ ├── src/ │ │ │ ├── env.js │ │ │ ├── error-details.js │ │ │ ├── index.js │ │ │ └── stack.js │ │ └── src-ui/ │ │ ├── README.md │ │ ├── build/ │ │ │ └── vite.plugin.single-file.js │ │ ├── index.html │ │ ├── jsconfig.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── assets/ │ │ │ │ ├── data.js │ │ │ │ └── store.js │ │ │ ├── components/ │ │ │ │ ├── AppCode.vue │ │ │ │ ├── AppEnvironment.vue │ │ │ │ ├── AppHeader.vue │ │ │ │ └── AppStack.vue │ │ │ ├── main.js │ │ │ └── quasar.variables.sass │ │ └── vite.config.js │ ├── ssl-certificate/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ └── index.js │ └── ssr-helpers/ │ ├── README.md │ ├── create-renderer.js │ ├── lib/ │ │ └── create-bundle.js │ └── package.json ├── vite-plugin/ │ ├── LICENSE │ ├── README.md │ ├── build/ │ │ ├── clean.js │ │ └── rolldown.config.js │ ├── index.d.ts │ ├── package.json │ ├── playground/ │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── components/ │ │ │ │ ├── AssetTransform.vue │ │ │ │ ├── JsPug.vue │ │ │ │ ├── JsScript.vue │ │ │ │ ├── JsScriptSetup.vue │ │ │ │ ├── SassTransform.vue │ │ │ │ ├── TsScript.vue │ │ │ │ ├── TsScriptSetup.vue │ │ │ │ ├── asset-transform/ │ │ │ │ │ ├── ChatMessageWithAvatar.vue │ │ │ │ │ ├── ImgWithPlaceholderSrc.vue │ │ │ │ │ ├── ImgWithSrc.vue │ │ │ │ │ └── NativeImage.vue │ │ │ │ ├── js-pug/ │ │ │ │ │ ├── AliasedImports.vue │ │ │ │ │ ├── BasicTest.vue │ │ │ │ │ ├── CustomWithAliasedImports.vue │ │ │ │ │ ├── CustomWithImports.vue │ │ │ │ │ ├── ExtendBtn.vue │ │ │ │ │ ├── ImportsTest.vue │ │ │ │ │ ├── MixedCase.vue │ │ │ │ │ ├── MixedCaseWithDuplicates.vue │ │ │ │ │ ├── MixedCaseWithDuplicatesAndAliasedImports.vue │ │ │ │ │ └── WithDirective.vue │ │ │ │ ├── js-script/ │ │ │ │ │ ├── AliasedImports.vue │ │ │ │ │ ├── BasicTest.vue │ │ │ │ │ ├── CustomComp.vue │ │ │ │ │ ├── CustomWithAliasedImports.vue │ │ │ │ │ ├── CustomWithImports.vue │ │ │ │ │ ├── ExtendBtn.vue │ │ │ │ │ ├── ImportsTest.vue │ │ │ │ │ ├── MixedCase.vue │ │ │ │ │ ├── MixedCaseWithDuplicates.vue │ │ │ │ │ ├── MixedCaseWithDuplicatesAndAliasedImports.vue │ │ │ │ │ ├── OnlyCustomWithAliasedImports.vue │ │ │ │ │ ├── OnlyCustomWithImports.vue │ │ │ │ │ ├── WithDirective.vue │ │ │ │ │ └── custom-component.js │ │ │ │ ├── js-script-setup/ │ │ │ │ │ ├── AliasedImports.vue │ │ │ │ │ ├── BasicTest.vue │ │ │ │ │ ├── CustomComp.vue │ │ │ │ │ ├── CustomWithAliasedImports.vue │ │ │ │ │ ├── CustomWithImports.vue │ │ │ │ │ ├── ExtendBtn.vue │ │ │ │ │ ├── ImportsTest.vue │ │ │ │ │ ├── MixedCase.vue │ │ │ │ │ ├── MixedCaseWithDuplicates.vue │ │ │ │ │ ├── MixedCaseWithDuplicatesAndAliasedImports.vue │ │ │ │ │ ├── OnlyCustomWithAliasedImports.vue │ │ │ │ │ ├── OnlyCustomWithImports.vue │ │ │ │ │ ├── WithDirective.vue │ │ │ │ │ └── custom-component.js │ │ │ │ ├── sass-transform/ │ │ │ │ │ ├── ColorOverride.vue │ │ │ │ │ ├── ColorSassUse.vue │ │ │ │ │ ├── ColorScssUse.vue │ │ │ │ │ └── PaddingTest.vue │ │ │ │ ├── ts-script/ │ │ │ │ │ ├── AliasedImports.vue │ │ │ │ │ ├── BasicTest.vue │ │ │ │ │ ├── CustomComp.vue │ │ │ │ │ ├── CustomWithAliasedImports.vue │ │ │ │ │ ├── CustomWithImports.vue │ │ │ │ │ ├── ExtendBtn.vue │ │ │ │ │ ├── ImportsTest.vue │ │ │ │ │ ├── MixedCase.vue │ │ │ │ │ ├── MixedCaseWithDuplicates.vue │ │ │ │ │ ├── MixedCaseWithDuplicatesAndAliasedImports.vue │ │ │ │ │ ├── OnlyCustomWithAliasedImports.vue │ │ │ │ │ ├── OnlyCustomWithImports.vue │ │ │ │ │ ├── WithDirective.vue │ │ │ │ │ └── custom-component.ts │ │ │ │ └── ts-script-setup/ │ │ │ │ ├── AliasedImports.vue │ │ │ │ ├── BasicTest.vue │ │ │ │ ├── CustomComp.vue │ │ │ │ ├── CustomWithAliasedImports.vue │ │ │ │ ├── CustomWithImports.vue │ │ │ │ ├── ExtendBtn.vue │ │ │ │ ├── ImportsTest.vue │ │ │ │ ├── MixedCase.vue │ │ │ │ ├── MixedCaseWithDuplicates.vue │ │ │ │ ├── MixedCaseWithDuplicatesAndAliasedImports.vue │ │ │ │ ├── OnlyCustomWithAliasedImports.vue │ │ │ │ ├── OnlyCustomWithImports.vue │ │ │ │ ├── WithDirective.vue │ │ │ │ └── custom-component.ts │ │ │ ├── main.js │ │ │ └── quasar-variables.sass │ │ └── vite.config.js │ ├── src/ │ │ ├── index.js │ │ ├── js-transform.js │ │ ├── plugin.js │ │ ├── quasar-path.js │ │ ├── query.js │ │ ├── scss-transform.js │ │ ├── vite-config.js │ │ └── vue-transform.js │ └── testing/ │ ├── runtime/ │ │ ├── tests/ │ │ │ ├── asset-transform.test.js │ │ │ ├── js-transform.test.js │ │ │ ├── sass-transform.test.js │ │ │ ├── ts-transform.test.ts │ │ │ ├── vue-pug-transform.test.js │ │ │ └── vue-transform.test.js │ │ ├── vitest.config.js │ │ └── vitest.setup.js │ └── usage/ │ ├── tests/ │ │ └── usage.test.js │ └── vitest.config.js └── vitest.workspace.js