The Quasar Framework monorepo is a comprehensive Vue 3 UI component library and cross-platform application development toolkit. It provides a rich set of reusable components (QBtn, QTable, QDialog, QLayout, etc.), composables (useTimeout, useDark, useForm, etc.), directives (v-ripple, v-touch-pan, etc.), and plugins (Notify, Dialog, Loading, Dark mode, etc.) that enable building responsive web, mobile, and desktop applications from a single codebase. The framework is distributed as multiple packages: the core UI library (`quasar`), a Vite-based CLI (`@quasar/app-vite`) that supports building for SPA, SSR, SSG, PWA, browser extensions (BEX), Cordova, Capacitor, and Electron targets, a project scaffolder (`create-quasar`), a global CLI (`@quasar/cli`), a Vite plugin for auto-imports and Sass variable injection, an icon generation tool (`icongenie`), and an MCP server for AI agent integration. The architecture follows a monorepo pattern managed with pnpm workspaces. The core UI library is built with Vue 3 and exposes a plugin-based system where components, composables, and directives are registered via a central `install-quasar` entry point. The CLI (`app-vite`) uses Vite and Rolldown as build backends, with mode-specific builders that generate optimized output for each target platform. The scaffolding system (`create-quasar`) generates project templates with optional TypeScript, Pinia state management, i18n, and linting configurations. The documentation site (`docs/`) is itself a Quasar SSR application that dogfoods the framework and includes a custom markdown build pipeline with API documentation extraction from JSON descriptors. Key entry points include `ui/src/vue-plugin.js` (framework installation), `app-vite/bin/quasar.js` (CLI dispatcher), `create-quasar/bin/create-quasar.js` (project creation), and `mcp/src/server.js` (AI agent server). External dependencies include Vue 3, Vite, Rolldown, Vitest, Playwright, and various icon libraries. The codebase demonstrates strong engineering practices with extensive unit, integration, and SSR hydration tests, a well-defined composable lifecycle pattern, and a modular build system that abstracts platform-specific concerns behind consistent interfaces.
Vue Select is a mature, zero-dependency Vue 2 component library that implements a feature-rich select/dropdown/typeahead UI element. It supports single and multiple selection, tagging, AJAX-powered search, keyboard navigation, RTL, and extensive customization via slots, props, CSS variables, and child component overrides. The library is distributed via npm and can be used as a Vue plugin or global component. The architecture is centered around a single large Vue component (Select.vue) that composes mixins for type-ahead pointer management, auto-scrolling, and AJAX loading, plus child components for the clear button and open indicator. It follows WAI-ARIA practices for accessibility and includes a complete set of unit tests. While the component is tightly coupled internally, it exposes a well-documented API for external configuration. The codebase is actively maintained with semantic release, bundle size monitoring, and a separate Vue 3 beta branch.
This is a Nuxt 3 module that integrates Cloudflare Turnstile, a privacy-focused CAPTCHA alternative. It provides a Vue component (`<NuxtTurnstile>`) for client-side rendering of the Turnstile widget, a composable (`useScriptCloudflareTurnstile`) for script loading via `@nuxt/scripts`, and a server-side utility (`verifyTurnstileToken`) for token validation in Nitro endpoints. The module automatically handles script injection, token refresh, and exposes a reset method. It also supports an optional validation endpoint at `/_turnstile/validate`. The architecture follows the standard Nuxt module pattern: `src/module.ts` registers components, composables, and server handlers. External dependencies include Cloudflare's Turnstile API, `@nuxt/scripts`, `@nuxt/kit`, `defu`, and `pathe`. The codebase is well-structured, typed, and includes end-to-end tests with Playwright.
Multiple Select is a mature jQuery plugin that transforms native HTML `<select>` elements into feature-rich dropdowns with checkboxes, supporting single and multiple selection, optgroups, filtering, virtual scrolling for large datasets, localization, and full keyboard accessibility. The library is architecturally structured as a monolith jQuery-fn extension with a core class (`MultipleSelect.js`), separate utilities (`utils/index.js`), constants, virtual scroll implementation, and a Bootstrap 5 theme. It also provides Vue 2/3 wrappers (`src/vue/`) and is distributed as UMD modules via npm and CDN. The codebase demonstrates solid engineering practices: ES6+ modules, Rollup/Vite build system, comprehensive linting (ESLint, Stylelint, cspell), and a configurable options/events/methods API. While tightly coupled to jQuery, the utility functions and virtual scroll component are potentially reusable standalone. The plugin is actively maintained with recent releases and a responsive issue tracker.
vue-cropper is a Vue.js image cropping component supporting both Vue 2 and Vue 3. It provides an interactive cropping UI with features such as mouse/touch drag, zoom, rotation, EXIF-orientation correction, and multiple output formats (base64/blob). The component is self-contained within a single Vue file and relies on a minimal helper library for EXIF data parsing. It is distributed as a UMD/ES library and can be used via npm or CDN. The architecture is monolithic, with the cropping logic, coordinate calculations, and canvas rendering all encapsulated within the component, exposing a rich set of props, methods, and events for integration.
Vue Cal is a full-featured Vue 3 calendar component library with zero external dependencies beyond Vue itself. It provides multiple views (day, week, month, year, years), event management (create, edit, delete, drag-and-drop, resize), schedules, special hours, extensive localization (50+ languages), dark/light theme via CSS variables, and comprehensive slot-based customization. The library is built entirely with the Composition API and is structured around core composables: `useVueCal` (main state), `useConfig` (prop parsing, locale loading), `useEvents` (event normalization, indexing, overlap detection), `useView` (navigation, cell generation), and `useDragAndDrop` (native HTML5 DnD with cross-instance support). The primary entry point is `src/vue-cal/index.js`, which exports the `VueCal` component, `useLocale` function, and a set of optional Date prototype extensions. Events are passed as an array of objects and reactively rendered; all interactions emit Vue events enriched with context (cell info, cursor position). The library is in active pre-release (v5.0.1-rc.46) with a stable release pending timezone support.
The hCaptcha Vue Component Library provides Vue 2 and Vue 3 components for integrating hCaptcha into Vue applications. The library consists of two packages (@hcaptcha/vue-hcaptcha for Vue 2 and @hcaptcha/vue3-hcaptcha for Vue 3) built from a shared Vue component source. The component handles loading the hCaptcha API script, rendering the widget, and emitting events for verification, expiration, and other hCaptcha callbacks. It also provides methods to programmatically execute and reset the challenge. A notable utility in the library is the script loader (hcaptcha-script.js) which ensures the hCaptcha API is loaded only once per page using a promise-based pattern. This utility is framework-agnostic and could be reused in other projects requiring singleton script loading. The repository is set up as a monorepo using Lerna, with separate build processes for Vue 2 (using Vue CLI) and Vue 3 (using Vite). While the component itself is well-maintained and functional, the build toolchain shows signs of technical drift with outdated dependencies (e.g., Vue CLI 3, Vite 2, Jest 26). The project is actively maintained with CI pipelines for building, testing, and releasing new versions.
This repository is a Vue.js 3 component library for building interactive node-based diagrams, inspired by react-diagrams. It provides a `Diagram` component that renders an SVG canvas with draggable nodes, ports, and links, supporting pan/zoom, grid snapping, resizable nodes, custom node types, context menus, serialization, and edit modes. The architecture is a classic Vue component library: a main `Diagram.vue` orchestrates SVG rendering via `vue-svg-pan-zoom`, while `DiagramModel` and `DiagramNode` classes manage the data model. The codebase includes extensive Storybook stories and a documentation site built with Nuxt. While functional and well-documented, the main diagram component is monolithic and mixes concerns, and some features (like port deletion) are incomplete. The library is actively maintained and uses modern tooling (Vite, TypeScript, Vitest).
The Kalendar repository is a Vue 2 plugin that provides a flexible calendar component for managing events. It features week and day views, drag-and-drop event creation, customizable slots for event rendering, and configuration options for appearance and behavior. The component leverages web workers to offload heavy computations (such as generating time slots and constructing events) to maintain UI responsiveness. The architecture follows a modular Vue component structure, with the main container managing state and child components handling specific UI elements (days, cells, events). It uses Vue's provide/inject pattern to pass down configuration and event data, and employs scoped slots for deep customization of event cards. The core library is framework-specific to Vue 2 but isolates concerns like date utilities and worker communication into reusable utilities. Despite its solid foundation, the repository shows signs of technical drift due to its reliance on Vue 2 and outdated build tools (Vue CLI 4, Rollup 1.x, Sass-loader 8.x). The last commit date appears to be in the future (2026-01-21), suggesting a lack of recent maintenance activity, and the project does not include automated tests. However, the utility functions and worker promise wrappers demonstrate reusable, non-obvious patterns that could be extracted for use in other projects.