flutter_shadcn_cli 0.2.6
flutter_shadcn_cli: ^0.2.6 copied to clipboard
CLI to install, sync, and update shadcn/ui components in Flutter apps. Supports local and remote registries with dependency-aware installs.
Changelog #
Unreleased #
0.2.6 #
Registry Fixes #
- Refreshed directory-managed remote registry URLs from the registry directory so existing projects stop reusing stale official registry
mainURLs after the registry source is updated. - Kept explicit local registry paths untouched while refreshing remote registry manifest, index, and theme paths.
0.2.5 #
CLI Performance #
- Skipped already-installed component IDs before registry manifest resolution, including when those components are reached as dependencies during multi-component installs.
0.2.4 #
CLI UX #
- Restored visible per-file install progress so long component/shared installs do not look stuck.
- Installed shared module files concurrently to reduce large dependency install time.
Registry Compatibility #
- Updated the kit registry manifest generation so font binaries are not installed as shared Dart-library files under
lib.
0.2.3 #
CLI UX #
- Reduced install/init/theme progress output to operation-level loading lines instead of one line per copied file.
- Closed theme index and preset loader resources after use so init/theme commands exit promptly after finishing.
Registry Init #
- Updated the official registry init metadata to install the app wrapper and base shadcn localization components by default.
0.2.2 #
Packaging Fixes #
- Fixed
.pubignoreroot path rules so internal Dart source folders nameddocsare included in the published package. - Verified the package executable build through
dart pub global activate flutter_shadcn_cli 0.2.2 --overwrite.
0.2.1 #
Release Readiness #
- Bumped the CLI package version for the minimal fixture release.
- Verified installer and init copy flows expose visible progress/loading feedback through
CliLogger.progress. - Added release QA artifacts for the default app init and registry bootstrap changes.
Registry Bootstrap #
- Aligned the default interactive init path with the lean app bootstrap policy.
- Kept scaffold, divider, localization extension helpers, and font/icon assets out of default init unless explicitly selected or installed.
Internal Refactors #
- Extracted installer pubspec mutation, dry-run planning, and platform instruction writes into dedicated services.
- Added direct service tests for pubspec preservation, dry-run dependency projection, and platform marker idempotency.
Safety & Errors #
- Replaced service/helper
exit()paths in registry selection, file-kind parsing, version upgrade, and studio management with typed exceptions or command-level exit-code returns. - Added typed exceptions for component resolution failures, filesystem root escapes, and missing Flutter project roots.
- Tightened explicit
--registry-pathhandling so a bad explicit local path fails instead of falling back to auto-discovery.
QA #
- Added final optional-refactor QA and changelog reporting artifacts under
qa_reports/.
0.2.0 #
๐งญ Multi-Registry v1 #
- NEW: Multi-registry namespace architecture with per-registry config/state addressing.
- NEW: Registry directory (
registries.json) loading with schema validation and local cache support. - NEW: Namespace bootstrap via
flutter_shadcn init <namespace>executing inline init actions. - NEW: Namespace-qualified component references:
- Preferred:
@namespace/component - Backward-compatible:
namespace:component
- Preferred:
- NEW:
registriescommand to list configured/discovered registries. - NEW:
defaultcommand to get/set default registry namespace.
๐งฉ Compatibility #
- IMPROVED: Automatic migration of legacy
.shadcn/config.jsontoregistriesmap format. - IMPROVED: Automatic migration of legacy
.shadcn/state.jsontoregistriesstate format. - IMPROVED: Existing single-registry behavior preserved while routing through new engine.
๐ Safety #
- IMPROVED: URL resolver validation and base URL normalization for registry fetches.
- IMPROVED: Strict filesystem traversal protection on all write targets.
0.1.9 #
๐งพ Output & Automation #
- NEW: Pretty-printed
--jsonoutput for list, search, info, doctor, dry-run, validate, audit, and deps. - NEW: Standardized JSON envelope with
status,data,errors,warnings,meta. - NEW: Standardized exit codes for common failure categories.
๐งญ CLI Ergonomics #
- NEW: Command aliases
lsโlist,rmโremove,iโinfo. - NEW:
--offlinemode for cache-only registry/index usage. - IMPROVED: Init flow now shows a summary and confirms before writing (unless
--yes).
๐ Documentation #
- IMPROVED: Updated README and site docs for new commands, JSON output, offline mode, and exit codes.
โ Registry Integrity #
- NEW:
validatecommand for schema + registry integrity checks. - NEW:
auditcommand to compare installed components vs registry metadata. - NEW:
depscommand to compare registry deps vs pubspec.yaml.
โก Performance #
- IMPROVED: Parallelized per-component file installs with bounded concurrency.
0.1.8 #
๐งญ Registry & Schema #
- IMPROVED: components.json schema validation now uses JSON Schema with
$schemaresolution and local fallback tocomponents.schema.json.
๐ฆ Install Manifests #
- NEW: Per-component install manifests at
.shadcn/components/<id>.json(version/tags + audit data). - IMPROVED:
<installPath>/components.jsonnow stores component metadata (version/tags).
๐งฐ Init & Install #
- CHANGED:
init --addremoved; pass components positionally (e.g.,flutter_shadcn init button dialog). - IMPROVED: Shared dependency closure for init/shared installs, plus cross-registry file dependency resolution.
๐งช Tests #
- NEW: Integration tests validating CLI install behavior and schema validation.
๐ฏ Component Discovery #
- NEW: Component discovery system with
list,search, andinfocommands.- Browse components by category with
list - Search with relevance scoring via
search <query> - View detailed component info with
info <component-id>
- Browse components by category with
- NEW: Intelligent index.json caching (24-hour staleness policy).
- Cache location:
~/.flutter_shadcn/cache/{registryId}/index.json - Local index.json support with remote fallback
- Use
--refreshflag to force cache update from remote
- Cache location:
๐ง Project Management Commands #
- NEW: Dry-run command to preview component installs (deps, shared, assets, fonts, platform changes).
- NEW: Doctor validates components.json against components.schema.json and reports cache paths.
๐ฆ Version Management #
- NEW:
versioncommand to show current CLI version and check for updates.- Use
flutter_shadcn versionto display current version - Use
flutter_shadcn version --checkto check for available updates
- Use
- NEW:
upgradecommand to upgrade CLI to the latest version.- Automatically fetches and installs the latest version from pub.dev
- Use
--forceflag to force upgrade even if already on latest
- NEW: Automatic update checking on every CLI command.
- Checks pub.dev once per 24 hours (rate-limited)
- Shows subtle notification if newer version available
- Cached in
~/.flutter_shadcn/cache/version_check.json - Opt-out via
.shadcn/config.json: set"checkUpdates": false
๐ฌ User Feedback #
- NEW:
feedbackcommand for submitting feedback and reporting issues.- Interactive menu with 6 feedback categories (bug, feature, docs, question, performance, other)
- Opens GitHub with pre-filled issue templates
- Auto-includes CLI version, OS, and Dart version for better context
- Each feedback type has custom emoji, labels, and structured template
- Cross-platform browser opening (macOS, Linux, Windows)
๐งช Testing & Quality #
- NEW: Comprehensive test coverage for version management, registry validation, install workflows, and command behavior.
๐ Bug Fixes #
- FIX: Graceful error handling for component discovery failures.
0.1.7 #
- BREAKING: Complete theme preset overhaul with 42 new modern themes.
- New theme presets: amber-minimal, amethyst-haze, bold-tech, bubblegum, caffeine, candyland, catppuccin, claude, claymorphism, clean-slate, cosmic-night, cyberpunk, darkmatter, doom-64, elegant-luxury, graphite, kodama-grove, midnight-bloom, mocha-mousse, modern-minimal, mono, nature, neo-brutalism, northern-lights, notebook, ocean-breeze, pastel-dreams, perpetuity, quantum-rose, retro-arcade, sage-garden, soft-pop, solar-dusk, starry-night, sunset-horizon, supabase, t3-chat, tangerine, twitter, vercel, vintage-paper, violet-bloom.
- Fix repository URL in pubspec.yaml for pub.dev validation.
- Follow Dart file conventions for better code organization.
- Remove all previous theme presets in favor of new collection.
0.1.6 #
- Add Dartdoc for public APIs and export preset theme data.
- Add CLI example script for pub.dev package validation.
- Update dependency constraints to latest compatible versions.
- Refresh pubspec description and project links.
0.1.5 #
- Add file-level dependsOn support for component/shared files.
- Apply platform-specific instructions with configurable targets.
- Add platform command to set/reset target overrides.
- Report post-install notes for components.
- Prettify CLI output with colors and sections.
0.1.4 #
- Experimental theme install from JSON file/URL (gated by --experimental).
- WIP/experimental feature flags added to CLI.
- Batched dependency updates using dart pub add/remove.
- remove --all now cleans empty parent folders.
- Theme preset application bugfix (color hex replacement).
- Clearer init prompts and expanded help output.
- Added documentation, PRD, and example theme JSON.
0.1.3 #
- Add
synccommand to apply .shadcn/config.json changes (paths + theme). - Track installed components in project components.json.
- Add
remove --alland bulk removal support. - Ensure init files are created before add/remove.
0.1.2 #
- Add dev registry mode and init one-shot flags.
- Improve README for end users and pub.dev.
- Add tests and integration coverage.
- Normalize install/shared paths and alias handling.
- Install core shared helpers + deps during init.