Package Structure
SQLRooms is organized into several packages that work together to provide a complete framework for building analytics applications.
Core Packages
@sqlrooms/project-builder
Core framework package that provides the foundation for building analytics applications. It handles project state management using Zustand with a composable slice-based architecture, allowing applications to combine and extend functionality from different modules. The package integrates the panel system and includes DuckDB integration to keep track of database tables created as part of the project.
@sqlrooms/project-config
A central configuration and type definitions package that maintains base project configuration schemas and Zod schema definitions. It provides TypeScript types and interfaces along with essential constants and utilities used throughout the framework.
@sqlrooms/duckdb
A powerful DuckDB integration package that manages DuckDB-WASM instances and handles query execution. It provides robust data source connection capabilities and ensures type-safe query results for reliable data operations.
@sqlrooms/ui
A comprehensive UI toolkit based on shadcn/ui that provides shared components and styling utilities. It includes a carefully crafted Tailwind preset configuration, a library of common UI components, robust theme management capabilities, and a collection of icons and assets.
Feature Packages
@sqlrooms/ai
An AI integration package that enables natural language querying and analysis capabilities. It provides tools for query generation, result interpretation, and interactive AI-powered analytics workflows.
@sqlrooms/data-table
An advanced interactive data grid component designed for SQL query result visualization. The table supports dynamic column sorting and pagination features for efficient data exploration and analysis.
@sqlrooms/dropzone
A comprehensive file upload solution that implements drag-and-drop functionality. It provides sophisticated file upload handling with built-in file type validation and upload progress tracking to enhance the user experience.
@sqlrooms/layout
A sophisticated layout system and panel management solution based on react-mosaic that enables flexible panel layouts with intuitive sidebar and main view management. It supports smooth panel resize functionality and ensures layout persistence across sessions.
@sqlrooms/mosaic
A visualization package that integrates with UW Interactive Data Lab's Mosaic library. It provides declarative chart specifications and interactive visualization capabilities for data analysis.
@sqlrooms/s3-browser
A feature-rich S3-compatible storage browser that provides an intuitive file browsing interface. It supports file upload and download operations, comprehensive directory management, and seamless S3 bucket integration.
@sqlrooms/sql-editor
A powerful SQL query editor that enhances the development experience with syntax highlighting and intelligent auto-completion. It maintains a query history for easy reference and provides integrated result visualization capabilities.
@sqlrooms/cosmos
A graph visualization package that integrates Cosmos for creating interactive network visualizations. It provides high-performance WebGL-based graph rendering capabilities with support for large-scale networks. See Cosmos integration example.
@sqlrooms/utils
A utility package providing shared helper functions for color manipulation, data formatting, random generation, and string operations used across the framework.
@sqlrooms/vega
A data visualization package that integrates Vega-Lite for creating sophisticated interactive visualizations. It provides React components for rendering Vega specifications and handling visualization interactions.