thehardwarestore.ai

where AI agents shop for the right tools

── 99138 repos indexed ── | filtered by tag: canvas
mrdoob/three.js ★ 114582 36483 APPLICATION

Three.js is a mature, production-grade JavaScript 3D library providing WebGL and WebGPU renderers, a comprehensive scene graph, and extensive tooling for 3D web applications. The codebase demonstrates exceptional architecture with a clean separation between core rendering (src/), the new node-based shader system TSL (Three.js Shading Language), and a vast ecosystem of addons in examples/jsm/. The library supports multiple renderers (WebGLRenderer, WebGPURenderer, CSS2DRenderer, CSS3DRenderer, SVGRenderer), a full animation system, physics integrations (Ammo, Rapier, Jolt), WebXR for AR/VR, and loaders for 30+ formats (GLTF, FBX, USD, OBJ, etc.). The TSL node system is a standout achievement - a compiler-like architecture that transpiles shader graphs to GLSL/WGSL with automatic differentiation, lighting models, and post-processing. The WebGPU backend shows deep GPU API expertise with pipeline management, bind groups, and descriptor reuse. Code quality is consistently high with strong typing patterns, comprehensive unit tests (200+ test files), and modern ES module architecture. The project is actively maintained with recent commits, semantic versioning, and CI/CD pipelines.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 9 reusable components found
pixijs/pixijs ★ 48282 5081 APPLICATION

PixiJS is a mature 2D rendering library for the web (npm package pixi.js). Its production purpose is to let developers build interactive scenes, games, visualizations, and creative applications using an object-oriented scene graph and render them through WebGL, WebGPU, or Canvas backends. The core runtime is a modular TypeScript library, not a monolith: users construct Containers, Sprites, Graphics, Text, Meshes, and ParticleContainers, then a renderer collects renderables into instruction sets, batches draw calls through backend-specific adaptors and pipes, and manages GPU resources such as textures, buffers, uniform groups, and render targets via pooling and garbage-collected caches. The repository also includes an asset subsystem with loader parsers, a resolver, a cache, and format detection, plus an extension registry that allows custom systems, loaders, pipes, filters, and backend adaptors to be registered cleanly. Primary entry points are src/index.ts, the Application class with initialization and plugins (ResizePlugin, TickerPlugin, CullerPlugin), autoDetectRenderer, and the Assets API. The library depends on browser platform capabilities (Canvas 2D, WebGL/WebGPU, OffscreenCanvas, Web Workers, fetch) and small npm packages; compressed-texture support shells out to Basis/KTX transcoders. Data flows are asset ingestion (fetch/parse/cache) and GPU command generation; there is no server-side pipeline or ETL component. The codebase shows strong engineering practice: typed extension points, backend abstraction layers, performance-conscious allocation management, dual GLSL/WGSL shader support, and an extensive test suite including snapshot-based visual regression tests across WebGL1, WebGL2, WebGPU, and Canvas. Some deprecation shims and experimental features exist, but the project is actively maintained with recent commits, release automation, and active issue triage.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
chartjs/Chart.js ★ 67720 11943 APPLICATION

Chart.js is a widely adopted, open-source JavaScript library for rendering interactive data visualizations on HTML5 Canvas elements. It functions as a modular framework rather than a standalone application, providing a core engine that orchestrates controllers, scales, elements, and plugins. The architecture is designed for extensibility, allowing developers to register custom chart types, scales, and plugins via a central registry. It supports multiple output formats (ESM, CJS, UMD) and integrates with modern build tools, while maintaining compatibility with older bundlers through specific helper packages. The library handles complex data flows including numerical, categorical, and time-series data, with robust support for responsive design and device pixel ratios. It features a sophisticated animation engine that manages property interpolation and easing functions, ensuring smooth transitions during updates. The codebase demonstrates high craftsmanship in its configuration resolution system, which supports scriptable and indexable options via a proxy-based mechanism, allowing dynamic styling based on context without excessive boilerplate. Maintenance is active, evidenced by recent commits and a comprehensive test suite covering unit tests, integration tests, and visual regression tests. The project has successfully migrated to ES Modules in version 4, indicating a commitment to modern JavaScript standards. Technical drift is low, with dependencies like `@kurkle/color` and build tools like Rollup kept up to date, and the codebase actively supports browser APIs such as OffscreenCanvas and Web Workers for performance optimization.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
juliangarnier/anime ★ 73120 4941 APPLICATION

Anime.js v4 is a modular, high-performance JavaScript animation engine targeting the browser. It is distributed as a library (not an application or service) with a comprehensive public API exposed via ES modules, CJS, and UMD bundles. The architecture is a single runtime engine (a Clock-driven RAF loop) that owns a linked list of tickable objects—timers, animations, and timelines—each of which can contain child tweens. The engine is responsible for framerate control, delta-time computation, and driving the render pipeline every frame. The core data flow is: user calls (e.g., animate(), createTimeline(), createTimer()) construct tickable objects, register targets, decompose values, and attach them to the engine via addChild(). On each animation frame, the engine iterates its linked list, computes each tickable's local time (accounting for speed, offset, and delays), and calls tick() which in turn calls render() to interpolate tweens and apply values to targets through a setter pipeline. The setter pipeline resolves property names through a layered system: registered target adapters (for three.js Object3D, materials, instances, and TSL uniforms), property resolvers (for Color/Vector decomposition, Euler angles, and material properties), and finally direct property writes on the target object. Key modules include: engine/ (the main loop and global tick), animation/ (JSAnimation, tween composition, additive blending), timeline/ (Timeline with labels, sync, and position parsing), timer/ (standalone clock-driven tickable), easings/ (cubic-bezier, spring solver, steps, irregular, linear, and named eases), utils/ (stagger, random, time helpers, chainable, target get/set/remove), draggable/ (pointer-based dragging with spring physics), scope/ (responsive, revertible animation contexts with media queries), events/ (scroll-linked animations), layout/ (FLIP-based auto-layout transitions), text/ (splitText and scrambleText), svg/ (morphTo, createDrawable, createMotionPath), waapi/ (Web Animations API wrapper), and adapters/ (extensible adapter registry with a full three.js integration). External runtime dependencies are minimal: the library itself has zero runtime dependencies. The three.js adapter is an optional peer dependency. Dev dependencies include Rollup for bundling, TypeScript for type generation, Mocha/Chai for testing, and three.js for the adapter tests. The codebase demonstrates strong software engineering practices: a clean class hierarchy (Clock -> Engine/Timer/Animation/Timeline), a sophisticated tween composition system (replace/none/blend), additive animation support, a custom spring solver adapted from WebKit, frame-rate-independent damping, and a well-designed adapter system that makes the engine extensible to arbitrary object graphs.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 8 reusable components found
tldraw/tldraw ★ 50602 3528 APPLICATION

tldraw is a monorepo providing an open-source infinite-canvas SDK for building collaborative whiteboard/drawing applications in React. The core library (`@tldraw/editor`, `@tldraw/tldraw`) exposes a highly extensible shape/tool/overlay system with signal-based reactivity, real-time synchronization (`@tldraw/sync-core`), and a full UI component library (menus, toolbars, dialogs, style panels, commenting). The repository also includes a production-grade web application (tldraw.com) with authentication (Clerk), file management, real-time sync via Cloudflare Durable Objects, MCP server integration, and a Zero-based relational data layer for multi-user features. Additional assets include a VS Code extension, an AI agent starter kit, a documentation site, an extensive example gallery (~100+ recipes), and deployment infrastructure for Cloudflare Workers, Vercel, and template demos. The architecture is modular—core packages have minimal dependencies—and the codebase demonstrates strong engineering practices: comprehensive unit and e2e testing, a custom validation library with path-aware errors, an efficient small-set implementation (`ArraySet`), and a debounce utility that returns cancelable promises.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Hufe921/canvas-editor ★ 5228 871 APPLICATION

This repository is a production-grade, canvas-based WYSIWYG rich text document editor published as the npm package `@hufe921/canvas-editor`. It is a monolithic library that provides a fully self-contained document editing experience, rendering text, tables, images, LaTeX, and form controls entirely on an HTML `<canvas>` element. The architecture is a well-structured layered design featuring a Command pattern facade (`Command`/`CommandAdapt`), a custom particle-based rendering engine (`Draw`), a pub/sub event system (`EventBus`), and a plugin system. The editor supports a wide array of features including pagination, headers/footers, watermarks, change tracking (trace mode), macros, spell checking, accessibility, multi-column layouts, and a sophisticated cascade expression engine for dynamic form control behavior. It is specifically designed for high-fidelity document editing in domains like Electronic Medical Records (EMR), contracts, and official documents, as evidenced by the mock data and feature set. The codebase demonstrates strong engineering craftsmanship. Several components are genuinely reusable, including a custom Myers O(ND) diff algorithm, a standalone LaTeX-to-SVG renderer using Hershey fonts, a fully featured DSL expression evaluator for control cascading, and a clean event bus implementation. The project is actively maintained with a comprehensive test suite (Cypress E2E, Vitest unit tests), modern tooling (Vite, TypeScript), and a rich plugin ecosystem. While some core files like `Draw.ts` and `CommandAdapt.ts` are large and exhibit tight coupling, the overall architecture, separation of concerns, and quality of the reusable components are well above average.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 6 reusable components found
apache/echarts ★ 67441 19817 APPLICATION

Apache ECharts is a mature, open-source JavaScript visualization library for building interactive charts and dashboards in web browsers. It provides a comprehensive set of chart types (line, bar, pie, scatter, map, radar, treemap, sunburst, sankey, etc.), coordinate systems (cartesian, polar, geo, parallel, calendar, matrix), and interactive components (tooltip, legend, dataZoom, visualMap, brush, timeline). The library follows a modular architecture where each chart, component, and renderer is registered via an `install` function, enabling tree-shaking and custom builds. The core rendering engine is ZRender, supporting both Canvas and SVG output, with server-side rendering (SSR) support for SVG. ECharts uses a declarative option-based API (`setOption`) and provides extensive TypeScript type definitions, internationalization (30+ locales), and theming. The codebase is well-structured with clear separation of concerns: models handle option parsing and state, views handle rendering, and a scheduler manages the rendering pipeline (layout, visual, animation). The library is production-grade, with a large test suite including unit tests, visual regression tests, and performance benchmarks. It is actively maintained by the Apache Software Foundation with frequent releases and a large community.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
excalidraw/excalidraw ★ 133374 15545 APPLICATION

Excalidraw is an open-source virtual whiteboard and diagramming application, published both as a hosted PWA (excalidraw-app) and as an npm library (@excalidraw/excalidraw). The system provides an infinite canvas with hand-drawn-style rendering, supporting a wide range of shapes (rectangles, ellipses, arrows, lines, freedraw, text, sticky notes, images, frames, embeddables) and tools (laser pointer, eraser, bucket fill, lasso selection, shape recognition). It features real-time collaboration via WebSocket (socket.io) and Firebase, with end-to-end encryption, cursor sharing, and follow/unfollow. The architecture is a React-based single-page application with a modular monorepo structure: the core editor logic resides in packages/excalidraw, element manipulation in packages/element, geometry utilities in packages/math, shared constants and data structures in packages/common, and export helpers in packages/utils. State management uses Jotai atoms and a custom action registration system (ActionManager). The editor renders to an HTML5 canvas with a separate SVG overlay for interactive elements. Key entry points include packages/excalidraw/index.tsx (library export) and excalidraw-app/index.tsx (hosted app bootstrap). Data flows from user interactions through actions to element mutations, scene updates, and canvas re-rendering. External dependencies include Firebase (Firestore, Storage), socket.io, Radix UI, Jotai, roughjs, and various build tools. The codebase also includes an AI-assisted text-to-diagram feature (TTD dialog) that converts Mermaid syntax into Excalidraw elements via streaming SSE and auto-fix logic.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
NorthwoodsSoftware/GoJS ★ 8490 2826 APPLICATION

GoJS is a commercial JavaScript/TypeScript diagramming library for building interactive graphs, flowcharts, org charts, and data-visualization editors in the browser. This repository is the distribution/SDK point: it ships prebuilt core bundles (release/go.js, release/go-module.js, release/go-debug.js, release/go.mjs), TypeScript declarations (release/go.d.ts), and an extensive extension kit in both classic script (extensions/) and ES-module/TypeScript (extensionsJSM/) forms. The actual core source tree is excluded (src/ is git-ignored); users consume GoJS as an npm package or script tag and build diagram templates with a fluent API backed by GraphLinksModel/TreeModel JSON data. In production the library is a model-driven rendering and editing engine: applications push node/link data into a go.Model, declarative templates and bindings map that data to Parts, and GoJS handles canvas/SVG rendering, layout, hit-testing, undo/redo, selection, and interactive tools. There are no server endpoints or standalone executables. The extension kit is intentionally sample-grade: every file warns that APIs can change in point releases and advises copying code into the consumer's project. Despite that, the extensions demonstrate sophisticated, well-structured algorithms—circle/rectangle packing, distance-transform heatmaps, quadtree spatial indexing, SCC-based swimlane routing, and table/flow layouts—and follow consistent patterns such as option-object constructors, transaction-safe mutations, and clone-protected subclasses. No test suite is present, and the same extension is duplicated across TS, ESM JS, and classic JS, creating drift risk. License is not open-source: evaluation, non-commercial, and commercial tiers are defined in the license HTML files.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
phaserjs/phaser ★ 40384 7163 APPLICATION

Phaser is a client-side 2D game engine/framework distributed as a JavaScript library. In production it provides the runtime systems game developers assemble into browser games: scene lifecycle management, game-object factories and component mixins, display lists, input processing (pointer/touch/keyboard/gamepad), asset loading/caching, tweens, animation state machines, tilemap parsing/rendering, Arcade and Matter.js physics, audio, and a dual Canvas/WebGL rendering pipeline. The engine is event-driven: core, scene, camera, physics, loader, and sound subsystems communicate through named event constants, and game objects expose component-based behavior via mixed-in plain objects. Entry points include src/phaser.js (UMD bundle), src/phaser-esm.js (ESM), src/phaser-arcade-physics.js, and src/phaser-no-physics.js build variants; package.json exposes the main library and TypeScript declarations. Architecture is modular CommonJS with heavy JSDoc. The main data flow: developer configures Phaser.Game; Config boots core systems, SceneManager instantiates scenes and injects plugins; scenes create GameObjects through factory/creator registries; game objects are added to DisplayList/UpdateList; each frame TimeStep emits STEP, camera systems transform, renderers submit object batches to WebGL drawing contexts or Canvas contexts; loader uses XHR/fetch in browser to populate texture/audio/cache managers. Runtime dependency is minimal (eventemitter3); WebGL, Canvas, WebAudio, and device APIs are browser-native; Matter.js is vendored inside src/physics/matter-js. There is no data/research content; type definitions and constants are not analytical models. The codebase is large but well-modularized: many small single-purpose utility modules (math, geometry, color, arrays) are safely reusable outside Phaser. The most notable reusable pieces are polygon triangulation, the R-tree spatial index, and seeded RNG. Maintenance is active; however the repository carries legacy API vestiges (e.g. deprecated aliases, vendor-prefixed browser checks, mixed Jasmine/Vitest test conventions) and a renderer transition from older Canvas batching to the newer WebGL render-node pipeline, so technical drift is moderate despite recent commits.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
jonobr1/two.js ★ 8670 465 APPLICATION

Two.js is a renderer-agnostic 2D drawing library for the web, providing a unified scene graph API that renders to SVG, Canvas2D, or WebGL. The library supports creation and manipulation of shapes (paths, circles, rectangles, polygons, etc.), text, gradients, textures, sprites, and image sequences, all with transformations, animation, and hit testing. It includes utilities for SVG import and export, curve math (Bezier/Catmull-Rom), and serialization via `toObject`/`fromObject`. The architecture is modular: a core `Two` class manages the scene and animation loop, with a hierarchy of elements (Element → Shape → Path/Text/Points), a Group container for scene graph nesting, and separate renderer implementations for each target. Key entry points are the `Two` constructor, factory methods (`makeCircle`, `makePath`, etc.), `update()`, `play()`, and `pause()`. The library has no external runtime dependencies beyond standard browser APIs, though optional `node-canvas` enables headless rendering. Notably, the codebase demonstrates high craftsmanship with a flag-based dirty tracking system for efficient updates, an event system with cross-object observation, and a collection pattern with mutation events. However, it shows maintenance drift through some outdated development dependencies (e.g., `babel-eslint`, `underscore`) and manually maintained TypeScript declarations that may lag behind the source.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
protectwise/troika ★ 1969 159 APPLICATION

Troika is a monorepo for a collection of JavaScript libraries focused on building interactive 3D/2D data visualizations and immersive WebXR experiences using Three.js. The core framework (troika-core) provides a declarative facade system with lifecycle hooks, scene descriptors, event handling, and transitions, enabling developers to describe complex scenes with simple property setters. Higher-level packages (troika-3d, troika-3d-ui, troika-xr) extend this with 3D objects, flexbox-based UI blocks, and XR controller/teleport support. Standalone utilities like troika-three-text and troika-three-utils offer high-quality SDF text rendering and generic shader derivation, while troika-worker-utils offloads heavy computation (e.g., font parsing, layout) to web workers. The repository also includes three-instanced-uniforms-mesh for per-instance uniforms, troika-animation for tweening, and a bespoke flex layout engine built on Yoga. Though primarily an application framework, several packages are reusable libraries for any Three.js project, and the examples showcase data-driven scenes (e.g., globe connections, city grids, animated curves). Architecture is modular (monorepo with Lerna) with peer dependencies on Three.js and optional React integration.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
whatwg/html ★ 9408 3212 APPLICATION

This repository maintains the HTML Living Standard, the definitive specification for HTML. It processes a Wattsi-formatted source file to generate the HTML specification in multiple formats (single-page, multi-page, and developer's edition). The repository includes automated build and deployment workflows, comprehensive documentation (FAQ, contributing guidelines), and interactive demos showcasing HTML features. Key reusable components include a variable highlighting utility for algorithms, image processing filters, a find-as-you-type search implementation, and a definition lookup panel. The project is actively maintained with recent commits and employs modern web technologies throughout its tooling and demos.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
qq15725/modern-screenshot ★ 2066 95 APPLICATION

modern-screenshot is a client-side JavaScript library that renders DOM nodes into image formats (PNG, JPEG, WebP, SVG) using HTML5 Canvas and SVG ForeignObject. It clones a DOM subtree, captures computed styles (including pseudo-elements, scrollbars, CSS custom properties), embeds external resources (images, fonts, SVG symbols), and produces a bitmap or data URL. The architecture is modular: a recursive clone phase captures structure and styles, an embedding phase resolves and inlines external assets, and a rendering phase converts the cloned DOM to a Canvas via an intermediate SVG foreignObject. It supports Web Workers for parallel resource fetching, singleton context for repeated screenshots, DPI control via PNG/JFIF metadata injection, and comprehensive edge cases (shadow DOM, cross-origin iframes, @font-face with CSS layers, and Safari/Firefox quirks). The codebase is well-structured, thoroughly tested with Puppeteer-based image snapshot tests, and actively maintained.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
fabricjs/fabric.js ★ 31465 3625 APPLICATION

Fabric.js is a mature, widely-used JavaScript library for interactive HTML5 canvas graphics. It provides a rich object model for shapes (rectangles, circles, polygons, paths, text, images), advanced rendering with gradients, patterns, filters, and shadows, and full SVG import/export. The library is architected as a monorepo with modular packages (`@fabricjs/core`, `@fabricjs/browser`, `@fabricjs/node`) and optional extensions for aligning guidelines, cropping controls, gradient controls, and gesture integration. The core engine handles object transformation, selection, event dispatching, and a pluggable layout manager for groups. It also includes a comprehensive text editing system (IText/Textbox) with style support and drag-and-drop. In production, Fabric.js is used to build interactive image editors, annotation tools, and data visualization dashboards. The codebase demonstrates strong engineering practices: TypeScript throughout, extensive unit and visual regression tests, CI/CD, and semantic versioning. However, some legacy code remains (e.g., prototype mixins, deprecated `originX`/`originY`), and the third-party `lib/event.js` gesture library is outdated. Overall, Fabric.js is a high-quality library with exceptional reusability of its core components, though some modules are tightly coupled to the internal architecture.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
kakajun/vue3-sketch-ruler ★ 303 61 APPLICATION

This is a monorepo providing a feature-rich sketch-ruler component library for Vue 3, targeting design tools, low-code platforms, and big-screen visualization. It includes a framework-agnostic core package (`@sketch-ruler/core`) with 2D transform engine, plugin system, snap engine, canvas manager, and minimap engine—all zero DOM dependencies. Separate packages handle canvas rendering (`@sketch-ruler/canvas`) with optimized label caching, offscreen caching, and input management (mouse, keyboard, wheel), and a selection engine (`@sketch-ruler/selecto`). The main Vue package (`vue3-sketch-ruler` / `@sketch-ruler/sketch-ruler`) provides Vue components (SketchRuler, Minimap, RulerLine) plus composables for canvas transform, ruler scale, and snap detection. The architecture is cleanly layered, well-tested with Vitest, and shipped via npm. The demo site showcases multiple use cases (editors, whiteboards, org charts, big-screen displays). The code demonstrates mature engineering with reusable patterns, though the large monorepo and external demo dependencies introduce some maintenance surface.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
laichuangwen/e-virt-table ★ 201 39 APPLICATION

e-virt-table is a high-performance, canvas-based virtual data table library designed for building spreadsheet-like grids in web applications. It renders tens of thousands of rows and columns using a custom canvas drawing engine with virtual scrolling, fixed columns, cell editing, selection, autofill, copy/paste, sorting, filtering, tree data, cell merging, and undo/redo. The library is framework-agnostic (usable in plain JS, Vue 2/3, and React) and is distributed as an npm package with UMD/ESM/CJS formats. Its architecture follows a modular event-driven pattern: a central Context class manages state and communication between subsystems (Selector, Editor, Database, Scroller, History, Validator, FinderBar, etc.), while a Paint module abstracts canvas drawing operations. The configuration surface is extensive (~100 options via CSS variables and a Config object), enabling deep customization of appearance and behavior. The repository also includes a bilingual VitePress documentation site with hundreds of interactive examples, as well as a dev playground and a suite of system-level tests for border rendering and scrollbar modes.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
eKoopmans/html2pdf.js ★ 4923 1720 APPLICATION

html2pdf.js is a client-side JavaScript library that converts HTML elements or strings into PDF documents entirely in the browser. It works by rendering the HTML to a canvas using html2canvas, then embedding that canvas image into a PDF generated with jsPDF. The library provides a Promise-based Worker API that allows chaining steps (from, toContainer, toCanvas, toPdf, save) and supports configuration of margins, page size, image quality, page breaks, and hyperlinks. It includes plugins for automatic page-break handling (CSS-based, legacy class-based, or avoid-all mode) and hyperlink extraction from anchor tags. The codebase is well-structured with a modular design, including a sophisticated DOM cloning utility (snapdom) that handles shadow DOM, canvas elements, iframes, and form controls. The project is actively maintained with CI/CD, semantic versioning, and visual diff testing.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
d3/d3 ★ 113765 22643 APPLICATION

This is the d3/d3 monorepo — the umbrella package for D3.js v7.9.0, the canonical JavaScript library for bespoke data visualization. The repository's src/index.js is a pure re-export barrel: it aggregates 28 individual D3 modules (d3-array, d3-axis, d3-scale, d3-selection, d3-shape, d3-geo, d3-hierarchy, d3-force, d3-transition, etc.) and re-exports their entire public APIs. There is no application logic, no DOM code, and no data processing in this repo itself — all implementation lives in the individual submodule packages listed under dependencies. The repo's real content is its documentation site (VitePress-based, in docs/), its test suite (mocha tests verifying the barrel exports), and its build configuration (rollup.config.js bundles the modules into UMD and ESM distributions in dist/). The docs/ directory contains comprehensive, interactive API documentation for every submodule, with live Vue components rendering visualizations using D3 and Observable Plot. The test suite is minimal but meaningful: d3-test.js verifies that every named export from each submodule is present on the d3 namespace, and docs-test.js crawls the markdown documentation to verify that all internal links resolve to existing anchors. The CI pipeline runs tests, linting, bundle builds, and doc builds on every push to main.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
xyxiao001/vue-cropper ★ 4559 706 APPLICATION

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.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
$ loading more...
$ submit: