mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-11 09:51:40 +00:00
feat: update --diff and --view
This commit is contained in:
@@ -78,8 +78,8 @@ Options:
|
||||
-p, --path <path> the path to add the component to.
|
||||
-s, --silent mute output. (default: false)
|
||||
--dry-run preview changes without writing files. (default: false)
|
||||
--diff <path> show diff for a file.
|
||||
--view <path> show file contents.
|
||||
--diff [path] show diff for a file.
|
||||
--view [path] show file contents.
|
||||
-h, --help display help for command
|
||||
```
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Auto-generated by scripts/build-icons.ts
|
||||
export { ActivityIcon } from "@hugeicons/core-free-icons"
|
||||
export { Add01Icon } from "@hugeicons/core-free-icons"
|
||||
export { AddToListIcon } from "@hugeicons/core-free-icons"
|
||||
export { AiCloud01Icon } from "@hugeicons/core-free-icons"
|
||||
export { Alert02Icon } from "@hugeicons/core-free-icons"
|
||||
export { AlertCircleIcon } from "@hugeicons/core-free-icons"
|
||||
export { Analytics01Icon } from "@hugeicons/core-free-icons"
|
||||
@@ -19,22 +17,15 @@ export { ArrowRight02Icon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowRightDoubleIcon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowRightIcon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowUp01Icon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowUp02Icon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowUpIcon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowUpRight01Icon } from "@hugeicons/core-free-icons"
|
||||
export { ArrowUpRightIcon } from "@hugeicons/core-free-icons"
|
||||
export { AttachmentIcon } from "@hugeicons/core-free-icons"
|
||||
export { AudioWave01Icon } from "@hugeicons/core-free-icons"
|
||||
export { BankIcon } from "@hugeicons/core-free-icons"
|
||||
export { BluetoothIcon } from "@hugeicons/core-free-icons"
|
||||
export { BookIcon } from "@hugeicons/core-free-icons"
|
||||
export { BookOpen02Icon } from "@hugeicons/core-free-icons"
|
||||
export { BookmarkIcon } from "@hugeicons/core-free-icons"
|
||||
export { BotIcon } from "@hugeicons/core-free-icons"
|
||||
export { BulbIcon } from "@hugeicons/core-free-icons"
|
||||
export { CalculatorIcon } from "@hugeicons/core-free-icons"
|
||||
export { Calendar01Icon } from "@hugeicons/core-free-icons"
|
||||
export { CalendarAdd01Icon } from "@hugeicons/core-free-icons"
|
||||
export { CalendarIcon } from "@hugeicons/core-free-icons"
|
||||
export { Camera01Icon } from "@hugeicons/core-free-icons"
|
||||
export { Cancel01Icon } from "@hugeicons/core-free-icons"
|
||||
@@ -49,10 +40,8 @@ export { CheckmarkBadgeIcon } from "@hugeicons/core-free-icons"
|
||||
export { CheckmarkCircle01Icon } from "@hugeicons/core-free-icons"
|
||||
export { CheckmarkCircle02Icon } from "@hugeicons/core-free-icons"
|
||||
export { CircleArrowLeft02Icon } from "@hugeicons/core-free-icons"
|
||||
export { CircleIcon } from "@hugeicons/core-free-icons"
|
||||
export { ClipboardIcon } from "@hugeicons/core-free-icons"
|
||||
export { Clock03Icon } from "@hugeicons/core-free-icons"
|
||||
export { ClockIcon } from "@hugeicons/core-free-icons"
|
||||
export { CloudUploadIcon } from "@hugeicons/core-free-icons"
|
||||
export { CodeIcon } from "@hugeicons/core-free-icons"
|
||||
export { CommandIcon } from "@hugeicons/core-free-icons"
|
||||
@@ -64,14 +53,12 @@ export { CopyIcon } from "@hugeicons/core-free-icons"
|
||||
export { CreditCardIcon } from "@hugeicons/core-free-icons"
|
||||
export { CropIcon } from "@hugeicons/core-free-icons"
|
||||
export { CubeIcon } from "@hugeicons/core-free-icons"
|
||||
export { Cursor01Icon } from "@hugeicons/core-free-icons"
|
||||
export { CursorInWindowIcon } from "@hugeicons/core-free-icons"
|
||||
export { DashboardSquare01Icon } from "@hugeicons/core-free-icons"
|
||||
export { DashedLineCircleIcon } from "@hugeicons/core-free-icons"
|
||||
export { Database01Icon } from "@hugeicons/core-free-icons"
|
||||
export { Delete02Icon } from "@hugeicons/core-free-icons"
|
||||
export { DeleteIcon } from "@hugeicons/core-free-icons"
|
||||
export { DollarCircleIcon } from "@hugeicons/core-free-icons"
|
||||
export { DownloadIcon } from "@hugeicons/core-free-icons"
|
||||
export { DragDropVerticalIcon } from "@hugeicons/core-free-icons"
|
||||
export { EditIcon } from "@hugeicons/core-free-icons"
|
||||
@@ -87,8 +74,6 @@ export { Folder01Icon } from "@hugeicons/core-free-icons"
|
||||
export { FolderAddIcon } from "@hugeicons/core-free-icons"
|
||||
export { FolderIcon } from "@hugeicons/core-free-icons"
|
||||
export { FolderOpenIcon } from "@hugeicons/core-free-icons"
|
||||
export { GitBranchIcon } from "@hugeicons/core-free-icons"
|
||||
export { GlobalIcon } from "@hugeicons/core-free-icons"
|
||||
export { Globe02Icon } from "@hugeicons/core-free-icons"
|
||||
export { GridIcon } from "@hugeicons/core-free-icons"
|
||||
export { HelpCircleIcon } from "@hugeicons/core-free-icons"
|
||||
@@ -108,10 +93,8 @@ export { LinkSquare02Icon } from "@hugeicons/core-free-icons"
|
||||
export { Loading03Icon } from "@hugeicons/core-free-icons"
|
||||
export { Logout01Icon } from "@hugeicons/core-free-icons"
|
||||
export { LogoutIcon } from "@hugeicons/core-free-icons"
|
||||
export { MagicWand05Icon } from "@hugeicons/core-free-icons"
|
||||
export { Mail01Icon } from "@hugeicons/core-free-icons"
|
||||
export { MailIcon } from "@hugeicons/core-free-icons"
|
||||
export { MailValidation01Icon } from "@hugeicons/core-free-icons"
|
||||
export { MapsIcon } from "@hugeicons/core-free-icons"
|
||||
export { Menu01Icon } from "@hugeicons/core-free-icons"
|
||||
export { Menu05Icon } from "@hugeicons/core-free-icons"
|
||||
@@ -127,7 +110,6 @@ export { Notification02Icon } from "@hugeicons/core-free-icons"
|
||||
export { Notification03Icon } from "@hugeicons/core-free-icons"
|
||||
export { NotificationIcon } from "@hugeicons/core-free-icons"
|
||||
export { PaintBoardIcon } from "@hugeicons/core-free-icons"
|
||||
export { PenIcon } from "@hugeicons/core-free-icons"
|
||||
export { PieChartIcon } from "@hugeicons/core-free-icons"
|
||||
export { PlusSignCircleIcon } from "@hugeicons/core-free-icons"
|
||||
export { PlusSignIcon } from "@hugeicons/core-free-icons"
|
||||
@@ -141,7 +123,6 @@ export { Search01Icon } from "@hugeicons/core-free-icons"
|
||||
export { SearchIcon } from "@hugeicons/core-free-icons"
|
||||
export { SentIcon } from "@hugeicons/core-free-icons"
|
||||
export { ServerStackIcon } from "@hugeicons/core-free-icons"
|
||||
export { Settings01Icon } from "@hugeicons/core-free-icons"
|
||||
export { Settings05Icon } from "@hugeicons/core-free-icons"
|
||||
export { SettingsIcon } from "@hugeicons/core-free-icons"
|
||||
export { Share01Icon } from "@hugeicons/core-free-icons"
|
||||
@@ -149,7 +130,6 @@ export { Share03Icon } from "@hugeicons/core-free-icons"
|
||||
export { ShareIcon } from "@hugeicons/core-free-icons"
|
||||
export { ShieldIcon } from "@hugeicons/core-free-icons"
|
||||
export { ShoppingBag01Icon } from "@hugeicons/core-free-icons"
|
||||
export { ShoppingBasket01Icon } from "@hugeicons/core-free-icons"
|
||||
export { ShoppingCart01Icon } from "@hugeicons/core-free-icons"
|
||||
export { SidebarLeftIcon } from "@hugeicons/core-free-icons"
|
||||
export { SmileIcon } from "@hugeicons/core-free-icons"
|
||||
@@ -158,7 +138,6 @@ export { StarIcon } from "@hugeicons/core-free-icons"
|
||||
export { StarOffIcon } from "@hugeicons/core-free-icons"
|
||||
export { SunIcon } from "@hugeicons/core-free-icons"
|
||||
export { TableIcon } from "@hugeicons/core-free-icons"
|
||||
export { TagIcon } from "@hugeicons/core-free-icons"
|
||||
export { TextBoldIcon } from "@hugeicons/core-free-icons"
|
||||
export { TextCheckIcon } from "@hugeicons/core-free-icons"
|
||||
export { TextItalicIcon } from "@hugeicons/core-free-icons"
|
||||
@@ -167,7 +146,6 @@ export { Tick02Icon } from "@hugeicons/core-free-icons"
|
||||
export { TradeUpIcon } from "@hugeicons/core-free-icons"
|
||||
export { UndoIcon } from "@hugeicons/core-free-icons"
|
||||
export { UnfoldMoreIcon } from "@hugeicons/core-free-icons"
|
||||
export { Upload01Icon } from "@hugeicons/core-free-icons"
|
||||
export { UserCircle02Icon } from "@hugeicons/core-free-icons"
|
||||
export { UserGroupIcon } from "@hugeicons/core-free-icons"
|
||||
export { UserIcon } from "@hugeicons/core-free-icons"
|
||||
|
||||
@@ -24,7 +24,6 @@ export { BotIcon } from "lucide-react"
|
||||
export { Building2Icon } from "lucide-react"
|
||||
export { CalculatorIcon } from "lucide-react"
|
||||
export { CalendarIcon } from "lucide-react"
|
||||
export { CalendarPlusIcon } from "lucide-react"
|
||||
export { CameraIcon } from "lucide-react"
|
||||
export { CaptionsIcon } from "lucide-react"
|
||||
export { ChartBarIcon } from "lucide-react"
|
||||
@@ -42,15 +41,11 @@ export { ChevronsUpDownIcon } from "lucide-react"
|
||||
export { CircleAlertIcon } from "lucide-react"
|
||||
export { CircleCheckIcon } from "lucide-react"
|
||||
export { CircleDashedIcon } from "lucide-react"
|
||||
export { CircleDollarSignIcon } from "lucide-react"
|
||||
export { CircleHelpIcon } from "lucide-react"
|
||||
export { CircleIcon } from "lucide-react"
|
||||
export { CirclePlusIcon } from "lucide-react"
|
||||
export { CircleUserRoundIcon } from "lucide-react"
|
||||
export { ClipboardPasteIcon } from "lucide-react"
|
||||
export { Clock2Icon } from "lucide-react"
|
||||
export { ClockIcon } from "lucide-react"
|
||||
export { CloudCogIcon } from "lucide-react"
|
||||
export { CodeIcon } from "lucide-react"
|
||||
export { Columns3Icon } from "lucide-react"
|
||||
export { CommandIcon } from "lucide-react"
|
||||
@@ -77,7 +72,6 @@ export { FolderPlusIcon } from "lucide-react"
|
||||
export { FolderSearchIcon } from "lucide-react"
|
||||
export { FrameIcon } from "lucide-react"
|
||||
export { GalleryVerticalEndIcon } from "lucide-react"
|
||||
export { GitBranchIcon } from "lucide-react"
|
||||
export { GlobeIcon } from "lucide-react"
|
||||
export { GripVerticalIcon } from "lucide-react"
|
||||
export { HeartIcon } from "lucide-react"
|
||||
@@ -94,15 +88,12 @@ export { LayoutGridIcon } from "lucide-react"
|
||||
export { LayoutIcon } from "lucide-react"
|
||||
export { LifeBuoy } from "lucide-react"
|
||||
export { LifeBuoyIcon } from "lucide-react"
|
||||
export { LightbulbIcon } from "lucide-react"
|
||||
export { LinkIcon } from "lucide-react"
|
||||
export { ListFilterIcon } from "lucide-react"
|
||||
export { ListIcon } from "lucide-react"
|
||||
export { Loader2Icon } from "lucide-react"
|
||||
export { LoaderIcon } from "lucide-react"
|
||||
export { LockIcon } from "lucide-react"
|
||||
export { LogOutIcon } from "lucide-react"
|
||||
export { MailCheckIcon } from "lucide-react"
|
||||
export { MailIcon } from "lucide-react"
|
||||
export { MapIcon } from "lucide-react"
|
||||
export { MaximizeIcon } from "lucide-react"
|
||||
@@ -117,13 +108,10 @@ export { MonitorIcon } from "lucide-react"
|
||||
export { MoonIcon } from "lucide-react"
|
||||
export { MoreHorizontalIcon } from "lucide-react"
|
||||
export { MoreVerticalIcon } from "lucide-react"
|
||||
export { MousePointerIcon } from "lucide-react"
|
||||
export { OctagonXIcon } from "lucide-react"
|
||||
export { PaintbrushIcon } from "lucide-react"
|
||||
export { PaletteIcon } from "lucide-react"
|
||||
export { PanelLeftIcon } from "lucide-react"
|
||||
export { PaperclipIcon } from "lucide-react"
|
||||
export { PenToolIcon } from "lucide-react"
|
||||
export { PencilIcon } from "lucide-react"
|
||||
export { PieChartIcon } from "lucide-react"
|
||||
export { PlusIcon } from "lucide-react"
|
||||
@@ -132,7 +120,6 @@ export { RefreshCwIcon } from "lucide-react"
|
||||
export { RotateCwIcon } from "lucide-react"
|
||||
export { SaveIcon } from "lucide-react"
|
||||
export { ScissorsIcon } from "lucide-react"
|
||||
export { Search } from "lucide-react"
|
||||
export { SearchIcon } from "lucide-react"
|
||||
export { Send } from "lucide-react"
|
||||
export { SendIcon } from "lucide-react"
|
||||
@@ -149,7 +136,6 @@ export { StarIcon } from "lucide-react"
|
||||
export { StarOffIcon } from "lucide-react"
|
||||
export { SunIcon } from "lucide-react"
|
||||
export { TableIcon } from "lucide-react"
|
||||
export { TagIcon } from "lucide-react"
|
||||
export { TerminalIcon } from "lucide-react"
|
||||
export { TerminalSquareIcon } from "lucide-react"
|
||||
export { Trash2Icon } from "lucide-react"
|
||||
@@ -159,7 +145,6 @@ export { TrendingUpIcon } from "lucide-react"
|
||||
export { TriangleAlertIcon } from "lucide-react"
|
||||
export { UnderlineIcon } from "lucide-react"
|
||||
export { UploadCloudIcon } from "lucide-react"
|
||||
export { UploadIcon } from "lucide-react"
|
||||
export { UserIcon } from "lucide-react"
|
||||
export { UserRoundXIcon } from "lucide-react"
|
||||
export { UsersIcon } from "lucide-react"
|
||||
@@ -167,7 +152,6 @@ export { VideoIcon } from "lucide-react"
|
||||
export { VolumeOffIcon } from "lucide-react"
|
||||
export { VolumeX } from "lucide-react"
|
||||
export { WalletIcon } from "lucide-react"
|
||||
export { WandIcon } from "lucide-react"
|
||||
export { XIcon } from "lucide-react"
|
||||
export { ZapIcon } from "lucide-react"
|
||||
export { ZoomInIcon } from "lucide-react"
|
||||
|
||||
@@ -23,7 +23,6 @@ export { BookmarkIcon } from "@phosphor-icons/react"
|
||||
export { CalculatorIcon } from "@phosphor-icons/react"
|
||||
export { CalendarBlankIcon } from "@phosphor-icons/react"
|
||||
export { CalendarIcon } from "@phosphor-icons/react"
|
||||
export { CalendarPlusIcon } from "@phosphor-icons/react"
|
||||
export { CameraIcon } from "@phosphor-icons/react"
|
||||
export { CaretDoubleLeftIcon } from "@phosphor-icons/react"
|
||||
export { CaretDoubleRightIcon } from "@phosphor-icons/react"
|
||||
@@ -39,7 +38,6 @@ export { ChatCircleIcon } from "@phosphor-icons/react"
|
||||
export { CheckCircleIcon } from "@phosphor-icons/react"
|
||||
export { CheckIcon } from "@phosphor-icons/react"
|
||||
export { CircleDashedIcon } from "@phosphor-icons/react"
|
||||
export { CircleIcon } from "@phosphor-icons/react"
|
||||
export { ClipboardIcon } from "@phosphor-icons/react"
|
||||
export { ClockIcon } from "@phosphor-icons/react"
|
||||
export { CloudArrowUpIcon } from "@phosphor-icons/react"
|
||||
@@ -50,7 +48,6 @@ export { CopyIcon } from "@phosphor-icons/react"
|
||||
export { CreditCardIcon } from "@phosphor-icons/react"
|
||||
export { CropIcon } from "@phosphor-icons/react"
|
||||
export { CubeIcon } from "@phosphor-icons/react"
|
||||
export { CurrencyCircleDollarIcon } from "@phosphor-icons/react"
|
||||
export { DatabaseIcon } from "@phosphor-icons/react"
|
||||
export { DotsSixVerticalIcon } from "@phosphor-icons/react"
|
||||
export { DotsThreeIcon } from "@phosphor-icons/react"
|
||||
@@ -68,10 +65,8 @@ export { FolderIcon } from "@phosphor-icons/react"
|
||||
export { FolderOpenIcon } from "@phosphor-icons/react"
|
||||
export { FolderPlusIcon } from "@phosphor-icons/react"
|
||||
export { GearIcon } from "@phosphor-icons/react"
|
||||
export { GitBranchIcon } from "@phosphor-icons/react"
|
||||
export { GlobeIcon } from "@phosphor-icons/react"
|
||||
export { GridFourIcon } from "@phosphor-icons/react"
|
||||
export { HandPointingIcon } from "@phosphor-icons/react"
|
||||
export { HardDrivesIcon } from "@phosphor-icons/react"
|
||||
export { HeartIcon } from "@phosphor-icons/react"
|
||||
export { HouseIcon } from "@phosphor-icons/react"
|
||||
@@ -80,13 +75,10 @@ export { InfoIcon } from "@phosphor-icons/react"
|
||||
export { KeyboardIcon } from "@phosphor-icons/react"
|
||||
export { LayoutIcon } from "@phosphor-icons/react"
|
||||
export { LifebuoyIcon } from "@phosphor-icons/react"
|
||||
export { LightbulbIcon } from "@phosphor-icons/react"
|
||||
export { LightningIcon } from "@phosphor-icons/react"
|
||||
export { LinkIcon } from "@phosphor-icons/react"
|
||||
export { ListIcon } from "@phosphor-icons/react"
|
||||
export { ListPlusIcon } from "@phosphor-icons/react"
|
||||
export { LockIcon } from "@phosphor-icons/react"
|
||||
export { MagicWandIcon } from "@phosphor-icons/react"
|
||||
export { MagnifyingGlassIcon } from "@phosphor-icons/react"
|
||||
export { MagnifyingGlassMinusIcon } from "@phosphor-icons/react"
|
||||
export { MagnifyingGlassPlusIcon } from "@phosphor-icons/react"
|
||||
@@ -97,7 +89,6 @@ export { MonitorIcon } from "@phosphor-icons/react"
|
||||
export { MoonIcon } from "@phosphor-icons/react"
|
||||
export { PaletteIcon } from "@phosphor-icons/react"
|
||||
export { PaperPlaneTiltIcon } from "@phosphor-icons/react"
|
||||
export { PaperclipIcon } from "@phosphor-icons/react"
|
||||
export { PencilIcon } from "@phosphor-icons/react"
|
||||
export { PlusCircleIcon } from "@phosphor-icons/react"
|
||||
export { PlusIcon } from "@phosphor-icons/react"
|
||||
@@ -120,7 +111,6 @@ export { SquaresFourIcon } from "@phosphor-icons/react"
|
||||
export { StarIcon } from "@phosphor-icons/react"
|
||||
export { SunIcon } from "@phosphor-icons/react"
|
||||
export { TableIcon } from "@phosphor-icons/react"
|
||||
export { TagIcon } from "@phosphor-icons/react"
|
||||
export { TerminalIcon } from "@phosphor-icons/react"
|
||||
export { TextBIcon } from "@phosphor-icons/react"
|
||||
export { TextItalicIcon } from "@phosphor-icons/react"
|
||||
@@ -131,7 +121,6 @@ export { TrashIcon } from "@phosphor-icons/react"
|
||||
export { TrayIcon } from "@phosphor-icons/react"
|
||||
export { TrendDownIcon } from "@phosphor-icons/react"
|
||||
export { TrendUpIcon } from "@phosphor-icons/react"
|
||||
export { UploadIcon } from "@phosphor-icons/react"
|
||||
export { UserCircleIcon } from "@phosphor-icons/react"
|
||||
export { UserIcon } from "@phosphor-icons/react"
|
||||
export { UserMinusIcon } from "@phosphor-icons/react"
|
||||
|
||||
@@ -14,7 +14,6 @@ export { RiArrowRightUpLine } from "@remixicon/react"
|
||||
export { RiArrowUpDownLine } from "@remixicon/react"
|
||||
export { RiArrowUpLine } from "@remixicon/react"
|
||||
export { RiArrowUpSLine } from "@remixicon/react"
|
||||
export { RiAttachmentLine } from "@remixicon/react"
|
||||
export { RiBankCardLine } from "@remixicon/react"
|
||||
export { RiBankLine } from "@remixicon/react"
|
||||
export { RiBarChartLine } from "@remixicon/react"
|
||||
@@ -25,14 +24,12 @@ export { RiBookmarkLine } from "@remixicon/react"
|
||||
export { RiBox1Line } from "@remixicon/react"
|
||||
export { RiBox3Line } from "@remixicon/react"
|
||||
export { RiCalculatorLine } from "@remixicon/react"
|
||||
export { RiCalendarEventLine } from "@remixicon/react"
|
||||
export { RiCalendarLine } from "@remixicon/react"
|
||||
export { RiCameraLine } from "@remixicon/react"
|
||||
export { RiChat1Line } from "@remixicon/react"
|
||||
export { RiCheckLine } from "@remixicon/react"
|
||||
export { RiCheckboxCircleFill } from "@remixicon/react"
|
||||
export { RiCheckboxCircleLine } from "@remixicon/react"
|
||||
export { RiCircleLine } from "@remixicon/react"
|
||||
export { RiClipboardLine } from "@remixicon/react"
|
||||
export { RiCloseCircleLine } from "@remixicon/react"
|
||||
export { RiCloseLine } from "@remixicon/react"
|
||||
@@ -62,12 +59,10 @@ export { RiFolderAddLine } from "@remixicon/react"
|
||||
export { RiFolderLine } from "@remixicon/react"
|
||||
export { RiFolderOpenLine } from "@remixicon/react"
|
||||
export { RiGalleryLine } from "@remixicon/react"
|
||||
export { RiGitBranchLine } from "@remixicon/react"
|
||||
export { RiGlobalLine } from "@remixicon/react"
|
||||
export { RiGlobeLine } from "@remixicon/react"
|
||||
export { RiGridLine } from "@remixicon/react"
|
||||
export { RiGroupLine } from "@remixicon/react"
|
||||
export { RiHand } from "@remixicon/react"
|
||||
export { RiHardDriveLine } from "@remixicon/react"
|
||||
export { RiHeartLine } from "@remixicon/react"
|
||||
export { RiHomeLine } from "@remixicon/react"
|
||||
@@ -80,7 +75,6 @@ export { RiLayoutColumnLine } from "@remixicon/react"
|
||||
export { RiLayoutLeftLine } from "@remixicon/react"
|
||||
export { RiLayoutLine } from "@remixicon/react"
|
||||
export { RiLifebuoyLine } from "@remixicon/react"
|
||||
export { RiLightbulbLine } from "@remixicon/react"
|
||||
export { RiLineChartLine } from "@remixicon/react"
|
||||
export { RiLinksLine } from "@remixicon/react"
|
||||
export { RiListUnordered } from "@remixicon/react"
|
||||
@@ -88,12 +82,10 @@ export { RiLoader4Line } from "@remixicon/react"
|
||||
export { RiLoaderLine } from "@remixicon/react"
|
||||
export { RiLockLine } from "@remixicon/react"
|
||||
export { RiLogoutBoxLine } from "@remixicon/react"
|
||||
export { RiMagicLine } from "@remixicon/react"
|
||||
export { RiMailLine } from "@remixicon/react"
|
||||
export { RiMapLine } from "@remixicon/react"
|
||||
export { RiMenuLine } from "@remixicon/react"
|
||||
export { RiMicLine } from "@remixicon/react"
|
||||
export { RiMoneyDollarCircleLine } from "@remixicon/react"
|
||||
export { RiMoonLine } from "@remixicon/react"
|
||||
export { RiMore2Line } from "@remixicon/react"
|
||||
export { RiMoreLine } from "@remixicon/react"
|
||||
@@ -102,8 +94,6 @@ export { RiNotificationLine } from "@remixicon/react"
|
||||
export { RiPaletteLine } from "@remixicon/react"
|
||||
export { RiPencilLine } from "@remixicon/react"
|
||||
export { RiPieChartLine } from "@remixicon/react"
|
||||
export { RiPlayListAddLine } from "@remixicon/react"
|
||||
export { RiPriceTagLine } from "@remixicon/react"
|
||||
export { RiPulseLine } from "@remixicon/react"
|
||||
export { RiQuestionLine } from "@remixicon/react"
|
||||
export { RiRecordCircleLine } from "@remixicon/react"
|
||||
@@ -135,7 +125,6 @@ export { RiTimeLine } from "@remixicon/react"
|
||||
export { RiTranslate } from "@remixicon/react"
|
||||
export { RiUnderline } from "@remixicon/react"
|
||||
export { RiUploadCloudLine } from "@remixicon/react"
|
||||
export { RiUploadLine } from "@remixicon/react"
|
||||
export { RiUserLine } from "@remixicon/react"
|
||||
export { RiUserUnfollowLine } from "@remixicon/react"
|
||||
export { RiVideoLine } from "@remixicon/react"
|
||||
|
||||
@@ -20,10 +20,8 @@ export { IconBookmark } from "@tabler/icons-react"
|
||||
export { IconBox } from "@tabler/icons-react"
|
||||
export { IconBrandJavascript } from "@tabler/icons-react"
|
||||
export { IconBuildingBank } from "@tabler/icons-react"
|
||||
export { IconBulb } from "@tabler/icons-react"
|
||||
export { IconCalculator } from "@tabler/icons-react"
|
||||
export { IconCalendar } from "@tabler/icons-react"
|
||||
export { IconCalendarPlus } from "@tabler/icons-react"
|
||||
export { IconCamera } from "@tabler/icons-react"
|
||||
export { IconChartBar } from "@tabler/icons-react"
|
||||
export { IconChartLine } from "@tabler/icons-react"
|
||||
@@ -35,19 +33,15 @@ export { IconChevronRight } from "@tabler/icons-react"
|
||||
export { IconChevronUp } from "@tabler/icons-react"
|
||||
export { IconChevronsLeft } from "@tabler/icons-react"
|
||||
export { IconChevronsRight } from "@tabler/icons-react"
|
||||
export { IconCircle } from "@tabler/icons-react"
|
||||
export { IconCircleArrowLeft } from "@tabler/icons-react"
|
||||
export { IconCircleCheck } from "@tabler/icons-react"
|
||||
export { IconCircleCheckFilled } from "@tabler/icons-react"
|
||||
export { IconCircleDashed } from "@tabler/icons-react"
|
||||
export { IconCirclePlusFilled } from "@tabler/icons-react"
|
||||
export { IconClipboard } from "@tabler/icons-react"
|
||||
export { IconClock } from "@tabler/icons-react"
|
||||
export { IconClockHour2 } from "@tabler/icons-react"
|
||||
export { IconCloudCog } from "@tabler/icons-react"
|
||||
export { IconCloudUpload } from "@tabler/icons-react"
|
||||
export { IconCode } from "@tabler/icons-react"
|
||||
export { IconCoin } from "@tabler/icons-react"
|
||||
export { IconCommand } from "@tabler/icons-react"
|
||||
export { IconCopy } from "@tabler/icons-react"
|
||||
export { IconCornerUpLeft } from "@tabler/icons-react"
|
||||
@@ -72,7 +66,6 @@ export { IconFileCode } from "@tabler/icons-react"
|
||||
export { IconFileDescription } from "@tabler/icons-react"
|
||||
export { IconFileText } from "@tabler/icons-react"
|
||||
export { IconFileWord } from "@tabler/icons-react"
|
||||
export { IconFilterPlus } from "@tabler/icons-react"
|
||||
export { IconFlipHorizontal } from "@tabler/icons-react"
|
||||
export { IconFlipVertical } from "@tabler/icons-react"
|
||||
export { IconFolder } from "@tabler/icons-react"
|
||||
@@ -80,7 +73,6 @@ export { IconFolderOpen } from "@tabler/icons-react"
|
||||
export { IconFolderPlus } from "@tabler/icons-react"
|
||||
export { IconFolderSearch } from "@tabler/icons-react"
|
||||
export { IconFrame } from "@tabler/icons-react"
|
||||
export { IconGitBranch } from "@tabler/icons-react"
|
||||
export { IconGlobe } from "@tabler/icons-react"
|
||||
export { IconGripVertical } from "@tabler/icons-react"
|
||||
export { IconHeadphones } from "@tabler/icons-react"
|
||||
@@ -107,7 +99,6 @@ export { IconLoader } from "@tabler/icons-react"
|
||||
export { IconLock } from "@tabler/icons-react"
|
||||
export { IconLogout } from "@tabler/icons-react"
|
||||
export { IconMail } from "@tabler/icons-react"
|
||||
export { IconMailCheck } from "@tabler/icons-react"
|
||||
export { IconMap } from "@tabler/icons-react"
|
||||
export { IconMaximize } from "@tabler/icons-react"
|
||||
export { IconMenu } from "@tabler/icons-react"
|
||||
@@ -120,12 +111,10 @@ export { IconMoodSmile } from "@tabler/icons-react"
|
||||
export { IconMoon } from "@tabler/icons-react"
|
||||
export { IconNotification } from "@tabler/icons-react"
|
||||
export { IconPalette } from "@tabler/icons-react"
|
||||
export { IconPaperclip } from "@tabler/icons-react"
|
||||
export { IconPencil } from "@tabler/icons-react"
|
||||
export { IconPhoto } from "@tabler/icons-react"
|
||||
export { IconPlayerRecordFilled } from "@tabler/icons-react"
|
||||
export { IconPlus } from "@tabler/icons-react"
|
||||
export { IconPointer } from "@tabler/icons-react"
|
||||
export { IconRefresh } from "@tabler/icons-react"
|
||||
export { IconReport } from "@tabler/icons-react"
|
||||
export { IconRobot } from "@tabler/icons-react"
|
||||
@@ -148,7 +137,6 @@ export { IconStar } from "@tabler/icons-react"
|
||||
export { IconStarOff } from "@tabler/icons-react"
|
||||
export { IconSun } from "@tabler/icons-react"
|
||||
export { IconTable } from "@tabler/icons-react"
|
||||
export { IconTag } from "@tabler/icons-react"
|
||||
export { IconTerminal } from "@tabler/icons-react"
|
||||
export { IconTerminal2 } from "@tabler/icons-react"
|
||||
export { IconTextCaption } from "@tabler/icons-react"
|
||||
@@ -156,7 +144,6 @@ export { IconTrash } from "@tabler/icons-react"
|
||||
export { IconTrendingDown } from "@tabler/icons-react"
|
||||
export { IconTrendingUp } from "@tabler/icons-react"
|
||||
export { IconUnderline } from "@tabler/icons-react"
|
||||
export { IconUpload } from "@tabler/icons-react"
|
||||
export { IconUser } from "@tabler/icons-react"
|
||||
export { IconUserCircle } from "@tabler/icons-react"
|
||||
export { IconUserX } from "@tabler/icons-react"
|
||||
@@ -164,7 +151,6 @@ export { IconUsers } from "@tabler/icons-react"
|
||||
export { IconVideoPlus } from "@tabler/icons-react"
|
||||
export { IconVolume } from "@tabler/icons-react"
|
||||
export { IconWallet } from "@tabler/icons-react"
|
||||
export { IconWand } from "@tabler/icons-react"
|
||||
export { IconWaveSine } from "@tabler/icons-react"
|
||||
export { IconWorld } from "@tabler/icons-react"
|
||||
export { IconX } from "@tabler/icons-react"
|
||||
|
||||
@@ -39,8 +39,8 @@ export const addOptionsSchema = z.object({
|
||||
path: z.string().optional(),
|
||||
silent: z.boolean(),
|
||||
dryRun: z.boolean(),
|
||||
diff: z.string().optional(),
|
||||
view: z.string().optional(),
|
||||
diff: z.union([z.string(), z.literal(true)]).optional(),
|
||||
view: z.union([z.string(), z.literal(true)]).optional(),
|
||||
})
|
||||
|
||||
export const add = new Command()
|
||||
@@ -58,8 +58,8 @@ export const add = new Command()
|
||||
.option("-p, --path <path>", "the path to add the component to.")
|
||||
.option("-s, --silent", "mute output.", false)
|
||||
.option("--dry-run", "preview changes without writing files.", false)
|
||||
.option("--diff <path>", "show diff for a file.")
|
||||
.option("--view <path>", "show file contents.")
|
||||
.option("--diff [path]", "show diff for a file.")
|
||||
.option("--view [path]", "show file contents.")
|
||||
.action(async (components, opts) => {
|
||||
try {
|
||||
const options = addOptionsSchema.parse({
|
||||
|
||||
@@ -2,6 +2,8 @@ import type { DryRunFile, DryRunResult } from "@/src/utils/dry-run"
|
||||
import { diffWords, structuredPatch } from "diff"
|
||||
import { bold, cyan, dim, green, red, yellow } from "kleur/colors"
|
||||
|
||||
const MAX_OVERVIEW_FILES = 5
|
||||
|
||||
const BOX_TOP = dim("┌" + "─".repeat(46))
|
||||
const BOX_BOTTOM = dim("└" + "─".repeat(46))
|
||||
|
||||
@@ -57,17 +59,23 @@ export function formatDryRunResult(
|
||||
result: DryRunResult,
|
||||
componentNames: string[],
|
||||
options: {
|
||||
diff?: string
|
||||
view?: string
|
||||
diff?: string | true
|
||||
view?: string | true
|
||||
} = {}
|
||||
) {
|
||||
// --diff and --view get a focused output with just the file.
|
||||
if (options.diff) {
|
||||
return formatDiffOutput(result, componentNames, options.diff)
|
||||
if (typeof options.diff === "string") {
|
||||
return formatDiffOutput(result, componentNames, options.diff)
|
||||
}
|
||||
return formatDiffOverview(result, componentNames)
|
||||
}
|
||||
|
||||
if (options.view) {
|
||||
return formatViewOutput(result, componentNames, options.view)
|
||||
if (typeof options.view === "string") {
|
||||
return formatViewOutput(result, componentNames, options.view)
|
||||
}
|
||||
return formatViewOverview(result, componentNames)
|
||||
}
|
||||
|
||||
return formatSummaryOutput(result, componentNames)
|
||||
@@ -125,9 +133,9 @@ function formatSummaryOutput(result: DryRunResult, componentNames: string[]) {
|
||||
}
|
||||
|
||||
// Footer.
|
||||
lines.push(`${dim("│")} ${dim("Run with --diff <path> to view changes.")}`)
|
||||
lines.push(`${dim("│")} ${dim("Run with --diff to view changes.")}`)
|
||||
lines.push(
|
||||
`${dim("│")} ${dim("Run with --view <path> to view file contents.")}`
|
||||
`${dim("│")} ${dim("Run with --view to view file contents.")}`
|
||||
)
|
||||
lines.push(`${dim("└")} ${dim("Run without --dry-run to apply.")}`)
|
||||
|
||||
@@ -188,6 +196,87 @@ function formatDiffOutput(
|
||||
return lines.join("\n")
|
||||
}
|
||||
|
||||
// Overview output for --diff (no path).
|
||||
function formatDiffOverview(result: DryRunResult, componentNames: string[]) {
|
||||
const lines: string[] = []
|
||||
|
||||
lines.push(formatHeader(componentNames))
|
||||
lines.push(dim("│"))
|
||||
|
||||
const filesToDiff = result.files.slice(0, MAX_OVERVIEW_FILES)
|
||||
|
||||
if (filesToDiff.length === 0 && !result.css) {
|
||||
lines.push(`${dim("│")} ${dim("No changes.")}`)
|
||||
lines.push(dim("│"))
|
||||
} else {
|
||||
for (const file of filesToDiff) {
|
||||
formatFileDiff(file, lines)
|
||||
}
|
||||
|
||||
const total = result.files.length
|
||||
if (total > MAX_OVERVIEW_FILES) {
|
||||
lines.push(dim("│"))
|
||||
}
|
||||
}
|
||||
|
||||
lines.push(`${dim("└")} ${dim("Run without --dry-run to apply.")}`)
|
||||
|
||||
const total = result.files.length
|
||||
if (total > MAX_OVERVIEW_FILES) {
|
||||
lines.push(
|
||||
` ${dim(
|
||||
`Showing ${MAX_OVERVIEW_FILES} of ${total} files. Use --diff <path> to view a specific file.`
|
||||
)}`
|
||||
)
|
||||
}
|
||||
|
||||
return lines.join("\n")
|
||||
}
|
||||
|
||||
// Overview output for --view (no path).
|
||||
function formatViewOverview(result: DryRunResult, componentNames: string[]) {
|
||||
const lines: string[] = []
|
||||
|
||||
lines.push(formatHeader(componentNames))
|
||||
lines.push(dim("│"))
|
||||
|
||||
const filesToView = result.files.slice(0, MAX_OVERVIEW_FILES)
|
||||
|
||||
if (filesToView.length === 0 && !result.css) {
|
||||
lines.push(`${dim("│")} ${dim("No files.")}`)
|
||||
lines.push(dim("│"))
|
||||
} else {
|
||||
for (const file of filesToView) {
|
||||
const contentLines = file.content.split("\n")
|
||||
lines.push(
|
||||
`${dim("├")} ${bold(file.path)} ${dim("(")}${colorAction(
|
||||
file.action
|
||||
)}${dim(")")} ${dim(`${contentLines.length} lines`)}`
|
||||
)
|
||||
pushContentBox(lines, contentLines)
|
||||
lines.push(dim("│"))
|
||||
}
|
||||
|
||||
const total = result.files.length
|
||||
if (total > MAX_OVERVIEW_FILES) {
|
||||
lines.push(dim("│"))
|
||||
}
|
||||
}
|
||||
|
||||
lines.push(`${dim("└")} ${dim("Run without --dry-run to apply.")}`)
|
||||
|
||||
const total = result.files.length
|
||||
if (total > MAX_OVERVIEW_FILES) {
|
||||
lines.push(
|
||||
` ${dim(
|
||||
`Showing ${MAX_OVERVIEW_FILES} of ${total} files. Use --view <path> to view a specific file.`
|
||||
)}`
|
||||
)
|
||||
}
|
||||
|
||||
return lines.join("\n")
|
||||
}
|
||||
|
||||
// Format a single file's diff block.
|
||||
function formatFileDiff(file: DryRunFile, lines: string[]) {
|
||||
lines.push(
|
||||
|
||||
@@ -59,8 +59,8 @@ Accepts component names, registry-prefixed names (`@magicui/shimmer-button`), UR
|
||||
| `--path <path>` | `-p` | Target path for the component | — |
|
||||
| `--silent` | `-s` | Mute output | `false` |
|
||||
| `--dry-run` | | Preview all changes without writing files | `false` |
|
||||
| `--diff <path>` | | Show the diff for a specific file (implies `--dry-run`) | — |
|
||||
| `--view <path>` | | Show the full content of a specific file (implies `--dry-run`) | — |
|
||||
| `--diff [path]` | | Show diffs. Without a path, shows the first 5 files. With a path, shows that file only (implies `--dry-run`) | — |
|
||||
| `--view [path]` | | Show file contents. Without a path, shows the first 5 files. With a path, shows that file only (implies `--dry-run`) | — |
|
||||
|
||||
#### Dry-Run Mode
|
||||
|
||||
@@ -70,9 +70,15 @@ Use `--dry-run` to preview what `add` would do without writing any files. `--dif
|
||||
# Preview all changes.
|
||||
shadcn add button --dry-run
|
||||
|
||||
# Show diffs for all files (top 5).
|
||||
shadcn add button --diff
|
||||
|
||||
# Show the diff for a specific file.
|
||||
shadcn add button --diff button.tsx
|
||||
|
||||
# Show contents for all files (top 5).
|
||||
shadcn add button --view
|
||||
|
||||
# Show the full content of a specific file.
|
||||
shadcn add button --view button.tsx
|
||||
|
||||
|
||||
Reference in New Issue
Block a user