@ekkolyth/ui 0.1.18 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -188
- package/dist/base.css +6 -0
- package/dist/blocks.d.ts +2 -2
- package/dist/blocks.js +3 -3
- package/dist/convex.js +1 -1
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +3 -2
- package/dist/{icon-picker-ByfHyJ7i.js → icon-picker-CwavOWKf.js} +1075 -186
- package/dist/{index-DHF8OR1R.d.ts → index-BJs5qfKG.d.ts} +65 -1
- package/dist/index-CxGQ12zb.d.ts +17 -0
- package/dist/index.d.ts +130 -75
- package/dist/index.js +525 -537
- package/dist/layout.d.ts +2 -2
- package/dist/layout.js +2 -2
- package/dist/shiki-code-CLD9RZfj.js +46 -0
- package/dist/text.d.ts +8 -1
- package/dist/text.js +49 -12
- package/dist/themes/provider.d.ts +2 -1
- package/dist/themes/provider.js +4 -4
- package/dist/{toggle-B2PFPImC.js → toggle-Bpm-ggNe.js} +2 -1
- package/dist/{use-mobile-CqHXB_Nc.js → use-mobile-C-Ak14Ip.js} +5 -5
- package/dist/use-window-scroll-margin-BQMpLEeT.js +22 -0
- package/dist/use-window-scroll-margin-BeVjX6Le.d.ts +11 -0
- package/dist/virtual-grid-BNWXDxO1.js +72 -0
- package/package.json +3 -1
- package/dist/container-BBg21poC.js +0 -10
- package/dist/index-Bwp0YMmG.d.ts +0 -5
- package/dist/shiki-code-Bg__Vnt1.js +0 -29
- package/dist/use-mobile-BVGje-2e.d.ts +0 -4
- package/dist/{loading-screen-DB3youyT.js → loading-screen-DilmTJ3J.js} +1 -1
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { t as cn } from "./utils-C_uf36nf.js";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Slot } from "@radix-ui/react-slot";
|
|
4
4
|
import { cva } from "class-variance-authority";
|
|
5
|
-
import { Activity, Airplay, AlarmClock, AlarmClockCheck, AlarmClockMinus, AlarmClockOff, AlarmClockPlus, AlarmSmoke, Album, AlertCircle, Amphora, Anchor, Anvil, Aperture, AppWindow, AppWindowMac, Apple, Archive, ArchiveRestore, ArchiveX, ArrowBigDown, ArrowBigDownDash, ArrowBigLeft, ArrowBigLeftDash, ArrowBigRight, ArrowBigRightDash, ArrowBigUp, ArrowBigUpDash, ArrowDownFromLine, ArrowDownToLine, ArrowLeft, ArrowRight, ArrowUpFromLine, ArrowUpToLine, AtSign, Atom, Award, Axe, Baby, Backpack, Badge, BadgeAlert, BadgeCent, BadgeCheck, BadgeDollarSign, BadgeEuro, BadgeIndianRupee, BadgeInfo, BadgeJapaneseYen, BadgeMinus, BadgePercent, BadgePlus, BadgePoundSterling, BadgeQuestionMark, BadgeRussianRuble, BadgeSwissFranc, BadgeTurkishLira, BadgeX, BaggageClaim, Banana, Banknote, BanknoteArrowDown, BanknoteArrowUp, BanknoteX, BarChartHorizontalBig, Barcode, Barrel, Bath, Beaker, Bean, BeanOff, Beef, Beer, BeerOff, Bell, BellDot, BetweenHorizontalEnd, BetweenHorizontalStart, BetweenVerticalEnd, BetweenVerticalStart, Bike, Binoculars, Biohazard, Bird, Birdhouse, Bitcoin, Blend, BluetoothConnected, Bolt, Bomb, Bone, Book, BookA, BookAlert, BookCheck, BookCopy, BookHeart, BookImage, BookKey, BookLock, BookMarked, BookMinus, BookOpen, BookOpenCheck, BookPlus, BookSearch, BookText, BookType, BookUser, BookX, Bookmark, BookmarkCheck, BoomBox, Bot, BotMessageSquare, BotOff, BottleWine, BowArrow, Box, Boxes, Braces, Brackets, Brain, BrainCircuit, BrainCog, BriefcaseBusiness, BriefcaseConveyorBelt, Brush, BrushCleaning, Bug, BugOff, BugPlay, Building2, BusFront, CableCar, Cake, CakeSlice, Calculator, Calendar, Calendar1, CalendarArrowDown, CalendarArrowUp, CalendarCheck, CalendarCheck2, CalendarClock, CalendarCog, CalendarDays, CalendarFold, CalendarHeart, CalendarIcon, CalendarMinus, CalendarMinus2, CalendarOff, CalendarPlus, CalendarPlus2, CalendarRange, CalendarSearch, CalendarSync, CalendarX, CalendarX2, Calendars, Camera, CameraOff, Candy, CandyCane, CandyOff, CarFront, Caravan, Carrot, CassetteTape, Castle, Cat, Cctv, ChartArea, ChartCandlestick, ChartNoAxesGantt, ChartPie, Check, CheckCheck, ChefHat, Cherry, ChessBishop, ChessKing, ChessKnight, ChessPawn, ChessQueen, ChessRook, ChevronDown, ChevronDownIcon, ChevronLeftIcon, ChevronRight, ChevronRightIcon, ChevronUp, ChevronsDown, ChevronsLeft, ChevronsLeftRightEllipsis, ChevronsRight, ChevronsUp, Cigarette, CigaretteOff, Circle, CircleAlert, CircleArrowDown, CircleArrowLeft, CircleArrowOutDownLeft, CircleArrowOutDownRight, CircleArrowOutUpLeft, CircleArrowOutUpRight, CircleArrowRight, CircleArrowUp, CircleCheck, CircleCheckBig, CircleChevronDown, CircleChevronLeft, CircleChevronRight, CircleChevronUp, CircleDashed, CircleDivide, CircleDollarSign, CircleDot, CircleDotDashed, CircleEllipsis, CircleEqual, CircleFadingArrowUp, CircleFadingPlus, CircleGauge, CircleHelp, CircleMinus, CircleOff, CircleParking, CircleParkingOff, CirclePause, CirclePercent, CirclePile, CirclePlay, CirclePlus, CirclePoundSterling, CirclePower, CircleQuestionMark, CircleSlash, CircleSlash2, CircleSlashed, CircleSmall, CircleStar, CircleStop, CircleUser, CircleUserRound, CircleX, CircuitBoard, Citrus, Clapperboard, ClipboardCheck, ClipboardClock, Clock, Clock1, Clock10, Clock11, Clock12, Clock2, Clock3, Clock4, Clock5, Clock6, Clock7, Clock8, Clock9, ClockAlert, ClockArrowDown, ClockArrowUp, ClockCheck, ClockFading, ClockPlus, Cloud, CloudAlert, CloudBackup, CloudDownload, CloudSync, CloudUpload, Cloudy, Clover, Club, Code, CodeXml, Coffee, Cog, Coins, Combine, Compass, Computer, ConciergeBell, Contact, ContactRound, Contrast, Cookie, CookingPot, CopyCheck, Cpu, CreditCard, Croissant, Crop, Crosshair, Crown, Cuboid, CupSoda, Currency, Database, DatabaseBackup, Dessert, Diameter, Diamond, DiamondMinus, DiamondPercent, DiamondPlus, Dice1, Dice2, Dice3, Dice4, Dice5, Dice6, Dices, Diff, Disc2, DivideCircle, DnaOff, Dock, Dog, DollarSign, Donut, DoorClosed, DoorClosedLocked, DoorOpen, Download, DownloadCloud, DraftingCompass, Drill, Droplet, DropletOff, Drum, Drumstick, Eclipse, Edit, Edit3, Egg, EggFried, EggOff, EthernetPort, Euro, ExternalLink, Eye, EyeClosed, EyeOff, FastForward, Feather, File, FileArchive, FileAxis3d, FileBadge, FileBox, FileBraces, FileBracesCorner, FileChartColumn, FileChartColumnIncreasing, FileChartLine, FileChartPie, FileCheck, FileCheckCorner, FileClock, FileCode, FileCodeCorner, FileCog, FileDiff, FileDigit, FileDown, FileExclamationPoint, FileHeadphone, FileHeart, FileImage, FileInput, FileKey, FileLock, FileMinus, FileMinusCorner, FileMusic, FileOutput, FilePen, FilePenLine, FilePlay, FilePlus, FilePlusCorner, FileQuestionMark, FileScan, FileSearch, FileSearchCorner, FileSignal, FileSliders, FileSpreadsheet, FileStack, FileSymlink, FileTerminal, FileText, FileType, FileTypeCorner, FileUp, FileUser, FileVideoCamera, FileVolume, FileX, FileXCorner, Files, Film, Filter, FireExtinguisher, Fish, FishOff, FishSymbol, FishingHook, Flag, FlagOff, Flame, FlameKindling, Flashlight, FlashlightOff, FlaskConical, FlaskConicalOff, FlaskRound, FlipHorizontal2, FlipVertical2, Flower, Focus, Folder, FolderArchive, FolderCheck, FolderClock, FolderClosed, FolderCode, FolderCog, FolderDot, FolderDown, FolderGit, FolderGit2, FolderHeart, FolderInput, FolderKanban, FolderKey, FolderLock, FolderMinus, FolderOpen, FolderOpenDot, FolderOutput, FolderPen, FolderPlus, FolderRoot, FolderSearch, FolderSearch2, FolderSymlink, FolderSync, FolderTree, FolderUp, FolderX, Folders, Footprints, Forward, Frame, Fullscreen, GalleryHorizontal, GalleryHorizontalEnd, GalleryThumbnails, GalleryVertical, GalleryVerticalEnd, Gamepad, Gamepad2, GamepadDirectional, GanttChart, Gauge, GaugeCircle, Gavel, Gem, GeorgianLari, Ghost, Gift, GitBranch, GitMerge, GitPullRequest, GlassWater, Globe2, Goal, Gpu, GraduationCap, Grape, Grid2x2Check, Group, Guitar, Ham, Hamburger, Hammer, HandCoins, HandFist, HandHeart, HandPlatter, Handbag, Handshake, HardDriveDownload, HardDriveUpload, HardHat, Hash, HatGlasses, HdmiPort, HeadphoneOff, Headphones, Headset, Heart, HeartCrack, HeartMinus, HeartOff, HeartPlus, Heater, Helicopter, HelpCircle, Hexagon, History, Home, Hop, HopOff, Hospital, Hotel, Hourglass, HouseHeart, IceCreamBowl, IceCreamCone, Image, ImageDown, ImageMinus, ImageOff, ImagePlay, ImagePlus, ImageUp, ImageUpscale, Images, Import, Inbox, IndianRupee, Info, InspectionPanel, JapaneseYen, Joystick, Key, KeyboardMusic, LampCeiling, LandPlot, Landmark, LaptopMinimalCheck, Layers2, LayoutList, Leaf, LeafyGreen, Library, LibraryBig, LifeBuoy, Lightbulb, LightbulbOff, LineChart, Link, ListCheck, ListMusic, ListTree, LoaderCircle, Lock, Lollipop, Luggage, Mail, MailCheck, Mailbox, Mails, Map, MapMinus, MapPin, MapPinCheck, MapPinCheckInside, MapPinHouse, MapPinMinus, MapPinMinusInside, MapPinOff, MapPinPen, MapPinPlus, MapPinPlusInside, MapPinX, MapPinXInside, MapPinned, Martini, Medal, MemoryStick, Menu, Merge, MessageCircle, MessageCircleCode, MessageCircleDashed, MessageCircleHeart, MessageCircleMore, MessageCircleOff, MessageCirclePlus, MessageCircleQuestionMark, MessageCircleReply, MessageCircleWarning, MessageCircleX, MessageSquare, MessageSquareCode, MessageSquareDashed, MessageSquareDiff, MessageSquareDot, MessageSquareHeart, MessageSquareLock, MessageSquareMore, MessageSquareOff, MessageSquarePlus, MessageSquareQuote, MessageSquareReply, MessageSquareShare, MessageSquareText, MessageSquareWarning, MessageSquareX, MessagesSquare, Mic, Microscope, Microwave, Milestone, Milk, MilkOff, Minus, MinusCircle, MonitorCheck, Moon, MoreHorizontal, Mountain, Music, Music2, Music3, Music4, Newspaper, Nfc, Notebook, NotebookPen, NotebookTabs, NotebookText, NotepadText, NotepadTextDashed, Nut, NutOff, Omega, Orbit, Origami, Package, Package2, PackageOpen, PackageSearch, PaintBucket, PaintRoller, Paintbrush, PaintbrushVertical, Palette, Panda, Paperclip, Parentheses, PartyPopper, PauseCircle, PawPrint, PcCase, Pen, PenLine, PenOff, Pencil, PencilLine, PencilOff, PencilRuler, Percent, PercentCircle, PersonStanding, PhilippinePeso, Phone, Pickaxe, PieChart, PiggyBank, Pin, Pipette, Pizza, Plane, PlaneLanding, PlaneTakeoff, PlayCircle, Plug2, Plus, PlusCircle, PocketKnife, Podcast, Popcorn, Popsicle, PoundSterling, PowerCircle, Presentation, Projector, Proportions, Puzzle, Pyramid, QrCode, Rabbit, Radiation, Radio, RadioReceiver, RadioTower, Radius, Rainbow, Rat, Ratio, Receipt, ReceiptCent, ReceiptEuro, ReceiptIndianRupee, ReceiptJapaneseYen, ReceiptPoundSterling, ReceiptRussianRuble, ReceiptSwissFranc, ReceiptText, ReceiptTurkishLira, RectangleGoggles, Recycle, Redo2, RefreshCcwDot, Refrigerator, Repeat1, Repeat2, Rewind, Ribbon, Rocket, Rose, RotateCcw, RotateCcwSquare, RotateCw, RotateCwSquare, Rss, Ruler, RulerDimensionLine, RussianRuble, Sailboat, Salad, Sandwich, Satellite, SaudiRiyal, Save, SaveAll, SaveOff, Scale, Scan, ScanBarcode, ScanEye, ScanFace, ScanLine, ScanQrCode, ScanSearch, School, Scissors, ScissorsLineDashed, Scroll, ScrollText, Search, SearchAlert, SearchCheck, SearchCode, SearchSlash, SearchX, ServerCog, Settings, Settings2, Shapes, Share, Share2, Sheet, Shell, Shield, ShieldAlert, ShieldBan, ShieldCheck, ShieldEllipsis, ShieldHalf, ShieldMinus, ShieldOff, ShieldPlus, ShieldQuestionMark, ShieldX, Ship, ShipWheel, Shirt, ShoppingBag, ShoppingBasket, ShoppingCart, Shovel, ShowerHead, Shredder, Shrimp, Shuffle, Sigma, Signpost, SignpostBig, SkipBack, Skull, SlidersHorizontal, SmartphoneCharging, SmartphoneNfc, SmilePlus, Snail, Snowflake, SoapDispenserDroplet, Sofa, SolarPanel, Soup, Spade, Sparkle, Sparkles, Speaker, SplinePointer, Spool, Spotlight, SprayCan, Sprout, Square, SquareActivity, SquareArrowDown, SquareArrowDownLeft, SquareArrowDownRight, SquareArrowOutUpRight, SquareArrowUpRight, SquareBottomDashedScissors, SquareChartGantt, SquareCheck, SquareDashedBottom, SquareDashedBottomCode, SquareDashedMousePointer, SquareLibrary, SquareMinus, SquareMousePointer, SquarePercent, SquarePlay, SquarePlus, SquareScissors, SquareStack, SquareStar, Squirrel, Stamp, Star, StarHalf, StarOff, Stars, Stethoscope, Sticker, StickyNote, StopCircle, Store, Sun, SunDim, Sunrise, Sunset, SwatchBook, SwissFranc, Sword, Swords, Syringe, Table, Table2, TableCellsMerge, TableCellsSplit, TableColumnsSplit, TableProperties, TableRowsSplit, TabletSmartphone, Tag, Tags, Tally1, Tally2, Tally3, Tally4, Tally5, Tangent, Target, Telescope, Tent, TentTree, Terminal, TerminalSquare, TestTube, TestTubeDiagonal, TestTubes, Text, Theater, ThumbsDown, ThumbsUp, TicketPercent, Tickets, TicketsPlane, Timer, TimerOff, TimerReset, ToolCase, Toolbox, Torus, TowerControl, ToyBrick, Tractor, TrainFrontTunnel, Trash, Trash2, Trees, TrendingDown, Trophy, TurkishLira, Turtle, TvMinimalPlay, Undo2, Ungroup, Upload, UploadCloud, Usb, User, UserCircle2, UserRoundSearch, UserSearch, Users, UsersRound, Utensils, UtensilsCrossed, Vault, VectorSquare, Vegan, VenetianMask, Video, VideoOff, Videotape, View, Voicemail, Volleyball, Volume1, Vote, Wallet, WalletCards, WalletMinimal, Wand, WandSparkles, WashingMachine, Watch, Waypoints, Webcam, Webhook, WebhookOff, Wheat, WheatOff, Wifi, WifiCog, Wine, WineOff, Worm, Wrench, XCircle, Zap, ZapOff, ZoomIn, ZoomOut } from "lucide-react";
|
|
5
|
+
import { Combobox } from "@base-ui/react";
|
|
6
6
|
import * as React from "react";
|
|
7
|
+
import { useRef } from "react";
|
|
8
|
+
import { Activity, Airplay, AlarmClock, AlarmClockCheck, AlarmClockMinus, AlarmClockOff, AlarmClockPlus, AlarmSmoke, Album, AlertCircle, Ampersand, Ampersands, Amphora, Anchor, Anvil, Aperture, AppWindow, AppWindowMac, Apple, Archive, ArchiveRestore, ArchiveX, ArrowBigDown, ArrowBigDownDash, ArrowBigLeft, ArrowBigLeftDash, ArrowBigRight, ArrowBigRightDash, ArrowBigUp, ArrowBigUpDash, ArrowDownFromLine, ArrowDownToLine, ArrowLeft, ArrowRight, ArrowRightToLine, ArrowUpFromLine, ArrowUpToLine, Asterisk, AtSign, Atom, Award, Axe, Baby, Backpack, Badge, BadgeAlert, BadgeCent, BadgeCheck, BadgeDollarSign, BadgeEuro, BadgeIndianRupee, BadgeInfo, BadgeJapaneseYen, BadgeMinus, BadgePercent, BadgePlus, BadgePoundSterling, BadgeQuestionMark, BadgeRussianRuble, BadgeSwissFranc, BadgeTurkishLira, BadgeX, BaggageClaim, Banana, Banknote, BanknoteArrowDown, BanknoteArrowUp, BanknoteX, BarChartHorizontalBig, Barcode, Barrel, Bath, Beaker, Bean, BeanOff, Beef, Beer, BeerOff, Bell, BellDot, BetweenHorizontalEnd, BetweenHorizontalStart, BetweenVerticalEnd, BetweenVerticalStart, Bike, Binary, Binoculars, Biohazard, Bird, Birdhouse, Bitcoin, Blend, Blocks, BluetoothConnected, Bolt, Bomb, Bone, Book, BookA, BookAlert, BookCheck, BookCopy, BookDashed, BookDown, BookHeart, BookImage, BookKey, BookLock, BookMarked, BookMinus, BookOpen, BookOpenCheck, BookOpenText, BookPlus, BookSearch, BookText, BookType, BookUp, BookUp2, BookUser, BookX, Bookmark, BookmarkCheck, BoomBox, Bot, BotMessageSquare, BotOff, BottleWine, BowArrow, Box, Boxes, Braces, Brackets, Brain, BrainCircuit, BrainCog, BriefcaseBusiness, BriefcaseConveyorBelt, Brush, BrushCleaning, Bug, BugOff, BugPlay, Building2, BusFront, CableCar, Cake, CakeSlice, Calculator, Calendar, Calendar1, CalendarArrowDown, CalendarArrowUp, CalendarCheck, CalendarCheck2, CalendarClock, CalendarCog, CalendarDays, CalendarFold, CalendarHeart, CalendarIcon, CalendarMinus, CalendarMinus2, CalendarOff, CalendarPlus, CalendarPlus2, CalendarRange, CalendarSearch, CalendarSync, CalendarX, CalendarX2, Calendars, Camera, CameraOff, Candy, CandyCane, CandyOff, CarFront, Caravan, Carrot, CaseLower, CaseUpper, CassetteTape, Castle, Cat, Cctv, ChartArea, ChartCandlestick, ChartNoAxesGantt, ChartPie, Check, CheckCheck, CheckIcon, ChefHat, Cherry, ChessBishop, ChessKing, ChessKnight, ChessPawn, ChessQueen, ChessRook, ChevronDown, ChevronDownIcon, ChevronLeftIcon, ChevronRight, ChevronRightIcon, ChevronUp, ChevronsDown, ChevronsLeft, ChevronsLeftRightEllipsis, ChevronsRight, ChevronsUp, Cigarette, CigaretteOff, Circle, CircleAlert, CircleArrowDown, CircleArrowLeft, CircleArrowOutDownLeft, CircleArrowOutDownRight, CircleArrowOutUpLeft, CircleArrowOutUpRight, CircleArrowRight, CircleArrowUp, CircleCheck, CircleCheckBig, CircleChevronDown, CircleChevronLeft, CircleChevronRight, CircleChevronUp, CircleDashed, CircleDivide, CircleDollarSign, CircleDot, CircleDotDashed, CircleEllipsis, CircleEqual, CircleFadingArrowUp, CircleFadingPlus, CircleGauge, CircleHelp, CircleMinus, CircleOff, CircleParking, CircleParkingOff, CirclePause, CirclePercent, CirclePile, CirclePlay, CirclePlus, CirclePoundSterling, CirclePower, CircleQuestionMark, CircleSlash, CircleSlash2, CircleSlashed, CircleSmall, CircleStar, CircleStop, CircleUser, CircleUserRound, CircleX, CircuitBoard, Citrus, Clapperboard, ClipboardCheck, ClipboardClock, Clock, Clock1, Clock10, Clock11, Clock12, Clock2, Clock3, Clock4, Clock5, Clock6, Clock7, Clock8, Clock9, ClockAlert, ClockArrowDown, ClockArrowUp, ClockCheck, ClockFading, ClockPlus, Cloud, CloudAlert, CloudBackup, CloudCheck, CloudCog, CloudDownload, CloudSync, CloudUpload, Cloudy, Clover, Club, Code, CodeXml, Coffee, Cog, Coins, Combine, Command, Compass, Component, Computer, ConciergeBell, Construction, Contact, ContactRound, Container, Contrast, Cookie, CookingPot, CopyCheck, CopySlash, CornerDownRight, Cpu, CreditCard, Croissant, Crop, Crosshair, Crown, Cuboid, CupSoda, Currency, Database, DatabaseBackup, DatabaseZap, Dessert, Diameter, Diamond, DiamondMinus, DiamondPercent, DiamondPlus, Dice1, Dice2, Dice3, Dice4, Dice5, Dice6, Dices, Diff, Disc2, Divide, DivideCircle, DnaOff, Dock, Dog, DollarSign, Donut, DoorClosed, DoorClosedLocked, DoorOpen, Download, DownloadCloud, DraftingCompass, Drill, Droplet, DropletOff, Drum, Drumstick, Dumbbell, EarthLock, Eclipse, Edit, Edit3, Egg, EggFried, EggOff, Ellipsis, Equal, EqualNot, EthernetPort, Euro, ExternalLink, Eye, EyeClosed, EyeOff, FastForward, Feather, File, FileArchive, FileAxis3d, FileBadge, FileBox, FileBraces, FileBracesCorner, FileChartColumn, FileChartColumnIncreasing, FileChartLine, FileChartPie, FileCheck, FileCheckCorner, FileClock, FileCode, FileCodeCorner, FileCog, FileDiff, FileDigit, FileDown, FileExclamationPoint, FileHeadphone, FileHeart, FileImage, FileInput, FileKey, FileLock, FileMinus, FileMinusCorner, FileMusic, FileOutput, FilePen, FilePenLine, FilePlay, FilePlus, FilePlusCorner, FileQuestionMark, FileScan, FileSearch, FileSearchCorner, FileSignal, FileSliders, FileSpreadsheet, FileStack, FileSymlink, FileTerminal, FileText, FileType, FileTypeCorner, FileUp, FileUser, FileVideoCamera, FileVolume, FileX, FileXCorner, Files, Film, Filter, FireExtinguisher, Fish, FishOff, FishSymbol, FishingHook, Flag, FlagOff, FlagTriangleLeft, FlagTriangleRight, Flame, FlameKindling, Flashlight, FlashlightOff, FlaskConical, FlaskConicalOff, FlaskRound, FlipHorizontal2, FlipVertical2, Flower, Focus, Folder, FolderArchive, FolderCheck, FolderClock, FolderClosed, FolderCode, FolderCog, FolderDot, FolderDown, FolderGit, FolderGit2, FolderHeart, FolderInput, FolderKanban, FolderKey, FolderLock, FolderMinus, FolderOpen, FolderOpenDot, FolderOutput, FolderPen, FolderPlus, FolderRoot, FolderSearch, FolderSearch2, FolderSymlink, FolderSync, FolderTree, FolderUp, FolderX, Folders, Footprints, Form, Forward, Frame, Fullscreen, GalleryHorizontal, GalleryHorizontalEnd, GalleryThumbnails, GalleryVertical, GalleryVerticalEnd, Gamepad, Gamepad2, GamepadDirectional, GanttChart, Gauge, GaugeCircle, Gavel, Gem, GeorgianLari, Ghost, Gift, GitBranch, GitBranchMinus, GitBranchPlus, GitCommitHorizontal, GitCommitVertical, GitCompare, GitCompareArrows, GitFork, GitGraph, GitMerge, GitPullRequest, GitPullRequestArrow, GitPullRequestClosed, GitPullRequestCreate, GitPullRequestCreateArrow, GitPullRequestDraft, GlassWater, Globe2, GlobeLock, Goal, Gpu, GraduationCap, Grape, Grid2x2Check, Group, Guitar, Ham, Hamburger, Hammer, HandCoins, HandFist, HandHeart, HandPlatter, Handbag, Handshake, HardDrive, HardDriveDownload, HardDriveUpload, HardHat, Hash, HatGlasses, HdmiPort, HeadphoneOff, Headphones, Headset, Heart, HeartCrack, HeartMinus, HeartOff, HeartPlus, Heater, Helicopter, HelpCircle, Hexagon, History, Home, Hop, HopOff, Hospital, Hotel, Hourglass, HouseHeart, IceCreamBowl, IceCreamCone, Image, ImageDown, ImageIcon, ImageMinus, ImageOff, ImagePlay, ImagePlus, ImageUp, ImageUpscale, Images, Import, Inbox, IndianRupee, Info, InspectionPanel, JapaneseYen, Joystick, Kanban, Key, Keyboard, KeyboardMusic, KeyboardOff, LampCeiling, LandPlot, Landmark, LaptopMinimalCheck, Layers2, LayoutList, Leaf, LeafyGreen, Library, LibraryBig, LifeBuoy, Lightbulb, LightbulbOff, LineChart, Link, ListCheck, ListIndentDecrease, ListIndentIncrease, ListMusic, ListTree, Loader2Icon, LoaderCircle, Lock, Lollipop, Luggage, Mail, MailCheck, Mailbox, Mails, Map, MapMinus, MapPin, MapPinCheck, MapPinCheckInside, MapPinHouse, MapPinMinus, MapPinMinusInside, MapPinOff, MapPinPen, MapPinPlus, MapPinPlusInside, MapPinX, MapPinXInside, MapPinned, Martini, Medal, MemoryStick, Menu, Merge, MessageCircle, MessageCircleCode, MessageCircleDashed, MessageCircleHeart, MessageCircleMore, MessageCircleOff, MessageCirclePlus, MessageCircleQuestionMark, MessageCircleReply, MessageCircleWarning, MessageCircleX, MessageSquare, MessageSquareCode, MessageSquareDashed, MessageSquareDiff, MessageSquareDot, MessageSquareHeart, MessageSquareLock, MessageSquareMore, MessageSquareOff, MessageSquarePlus, MessageSquareQuote, MessageSquareReply, MessageSquareShare, MessageSquareText, MessageSquareWarning, MessageSquareX, MessagesSquare, Mic, Microscope, Microwave, Milestone, Milk, MilkOff, Minus, MinusCircle, MonitorCheck, MonitorCloud, Moon, MoreHorizontal, Mountain, Music, Music2, Music3, Music4, Network, Newspaper, Nfc, Notebook, NotebookPen, NotebookTabs, NotebookText, NotepadText, NotepadTextDashed, Nut, NutOff, Omega, Option, Orbit, Origami, Package, Package2, PackageCheck, PackageMinus, PackageOpen, PackagePlus, PackageSearch, PackageX, PaintBucket, PaintRoller, Paintbrush, PaintbrushVertical, Palette, Panda, PanelTop, PanelsTopLeft, Paperclip, Parentheses, PartyPopper, PauseCircle, PawPrint, PcCase, Pen, PenLine, PenOff, Pencil, PencilLine, PencilOff, PencilRuler, Percent, PercentCircle, PersonStanding, PhilippinePeso, Phone, Pi, Pickaxe, PieChart, PiggyBank, Pin, Pipette, Pizza, Plane, PlaneLanding, PlaneTakeoff, PlayCircle, Plug, Plug2, Plus, PlusCircle, PocketKnife, Podcast, Popcorn, Popsicle, PoundSterling, PowerCircle, Presentation, Projector, Proportions, Puzzle, Pyramid, QrCode, Rabbit, Radiation, Radical, Radio, RadioReceiver, RadioTower, Radius, Rainbow, Rat, Ratio, Receipt, ReceiptCent, ReceiptEuro, ReceiptIndianRupee, ReceiptJapaneseYen, ReceiptPoundSterling, ReceiptRussianRuble, ReceiptSwissFranc, ReceiptText, ReceiptTurkishLira, RectangleCircle, RectangleEllipsis, RectangleGoggles, Recycle, Redo2, RefreshCcwDot, Refrigerator, Regex, Repeat1, Repeat2, Rewind, Ribbon, Rocket, Rose, RotateCcw, RotateCcwSquare, RotateCw, RotateCwSquare, Router, Rss, Ruler, RulerDimensionLine, RussianRuble, Sailboat, Salad, Sandwich, Satellite, SaudiRiyal, Save, SaveAll, SaveOff, Scale, Scan, ScanBarcode, ScanEye, ScanFace, ScanLine, ScanQrCode, ScanSearch, School, Scissors, ScissorsLineDashed, Scroll, ScrollText, Search, SearchAlert, SearchCheck, SearchCode, SearchSlash, SearchX, Server, ServerCog, ServerCrash, ServerOff, Settings, Settings2, Shapes, Share, Share2, Sheet, Shell, Shield, ShieldAlert, ShieldBan, ShieldCheck, ShieldEllipsis, ShieldHalf, ShieldMinus, ShieldOff, ShieldPlus, ShieldQuestionMark, ShieldUser, ShieldX, Ship, ShipWheel, Shirt, ShoppingBag, ShoppingBasket, ShoppingCart, Shovel, ShowerHead, Shredder, Shrimp, Shuffle, Sigma, Signpost, SignpostBig, SkipBack, Skull, Slash, SlidersHorizontal, SmartphoneCharging, SmartphoneNfc, SmilePlus, Snail, Snowflake, SoapDispenserDroplet, Sofa, SolarPanel, Soup, Spade, Sparkle, Sparkles, Speaker, SpellCheck, SpellCheck2, SplinePointer, Split, Spool, Spotlight, SprayCan, Sprout, Square, SquareActivity, SquareArrowDown, SquareArrowDownLeft, SquareArrowDownRight, SquareArrowOutUpRight, SquareArrowUpRight, SquareAsterisk, SquareBottomDashedScissors, SquareChartGantt, SquareCheck, SquareChevronRight, SquareCode, SquareDashedBottom, SquareDashedBottomCode, SquareDashedKanban, SquareDashedMousePointer, SquareDashedTopSolid, SquareDot, SquareFunction, SquareKanban, SquareLibrary, SquareMinus, SquareMousePointer, SquarePercent, SquarePi, SquarePlay, SquarePlus, SquareRadical, SquareRoundCorner, SquareScissors, SquareSlash, SquareStack, SquareStar, SquareTerminal, SquircleDashed, Squirrel, Stamp, Star, StarHalf, StarOff, Stars, Stethoscope, Sticker, StickyNote, StopCircle, Store, Sun, SunDim, Sunrise, Sunset, SwatchBook, SwissFranc, Sword, Swords, Syringe, Table, Table2, TableCellsMerge, TableCellsSplit, TableColumnsSplit, TableProperties, TableRowsSplit, TabletSmartphone, Tag, Tags, Tally1, Tally2, Tally3, Tally4, Tally5, Tangent, Target, Telescope, Tent, TentTree, Terminal, TerminalSquare, TestTube, TestTubeDiagonal, TestTubes, Text, Theater, ThumbsDown, ThumbsUp, TicketPercent, Tickets, TicketsPlane, Timer, TimerOff, TimerReset, ToggleLeft, ToggleRight, ToolCase, Toolbox, Torus, TowerControl, ToyBrick, Tractor, TrainFrontTunnel, Trash, Trash2, Trees, TrendingDown, TriangleAlert, Trophy, TurkishLira, Turtle, TvMinimalPlay, Undo2, Ungroup, Unplug, Upload, UploadCloud, Usb, User, UserCircle2, UserRoundSearch, UserSearch, Users, UsersRound, Utensils, UtensilsCrossed, Variable, Vault, VectorSquare, Vegan, VenetianMask, Video, VideoOff, Videotape, View, Voicemail, Volleyball, Volume1, Vote, Wallet, WalletCards, WalletMinimal, Wand, WandSparkles, WashingMachine, Watch, Waypoints, Webcam, Webhook, WebhookOff, Wheat, WheatOff, Wifi, WifiCog, Wine, WineOff, Workflow, Worm, Wrench, XCircle, XIcon, Zap, ZapOff, ZoomIn, ZoomOut } from "lucide-react";
|
|
9
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
7
10
|
import { DayPicker, getDefaultClassNames } from "react-day-picker";
|
|
8
11
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
9
12
|
import { useDebouncedCallback } from "@tanstack/react-pacer";
|
|
10
13
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
11
|
-
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
12
14
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
13
15
|
//#region ../core/src/utils/theme-color.ts
|
|
14
16
|
const THEME_COLORS = [
|
|
@@ -105,12 +107,6 @@ function ColorPicker({ value, onValueChange, className }) {
|
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
//#endregion
|
|
108
|
-
//#region ../core/src/forms/validate.ts
|
|
109
|
-
const validate = (schema) => ({ value }) => {
|
|
110
|
-
const result = schema.safeParse(value);
|
|
111
|
-
return result.success ? void 0 : result.error.issues[0]?.message;
|
|
112
|
-
};
|
|
113
|
-
//#endregion
|
|
114
110
|
//#region src/components/ui/button/index.tsx
|
|
115
111
|
const buttonVariants = cva("inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-hidden focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
116
112
|
variants: {
|
|
@@ -152,103 +148,264 @@ function Button({ className, variant = "default", size = "default", asChild = fa
|
|
|
152
148
|
});
|
|
153
149
|
}
|
|
154
150
|
//#endregion
|
|
155
|
-
//#region src/components/ui/
|
|
156
|
-
function
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
className: cn("size-4", className),
|
|
201
|
-
...props
|
|
202
|
-
});
|
|
203
|
-
if (orientation === "right") return /* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
204
|
-
className: cn("size-4", className),
|
|
205
|
-
...props
|
|
206
|
-
});
|
|
207
|
-
return /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
208
|
-
className: cn("size-4", className),
|
|
209
|
-
...props
|
|
210
|
-
});
|
|
211
|
-
},
|
|
212
|
-
DayButton: CalendarDayButton,
|
|
213
|
-
WeekNumber: ({ children, ...props }) => {
|
|
214
|
-
return /* @__PURE__ */ jsx("td", {
|
|
215
|
-
...props,
|
|
216
|
-
children: /* @__PURE__ */ jsx("div", {
|
|
217
|
-
className: "flex size-(--cell-size) items-center justify-center text-center",
|
|
218
|
-
children
|
|
219
|
-
})
|
|
220
|
-
});
|
|
221
|
-
},
|
|
222
|
-
...components
|
|
223
|
-
},
|
|
224
|
-
formatters: {
|
|
225
|
-
formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
|
|
226
|
-
...formatters
|
|
151
|
+
//#region src/components/ui/input/index.tsx
|
|
152
|
+
function Input({ className, type, ...props }) {
|
|
153
|
+
return /* @__PURE__ */ jsx("input", {
|
|
154
|
+
className: cn("h-9 w-full min-w-0 rounded-md bg-input px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:ring-[3px] aria-invalid:ring-destructive/40", className),
|
|
155
|
+
"data-slot": "input",
|
|
156
|
+
type,
|
|
157
|
+
...props
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/components/ui/textarea/index.tsx
|
|
162
|
+
function Textarea({ className, ...props }) {
|
|
163
|
+
return /* @__PURE__ */ jsx("textarea", {
|
|
164
|
+
className: cn("flex field-sizing-content min-h-16 w-full rounded-md bg-input px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px] aria-invalid:ring-destructive/40 md:text-sm", className),
|
|
165
|
+
"data-slot": "textarea",
|
|
166
|
+
...props
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
//#endregion
|
|
170
|
+
//#region src/components/ui/input-group/index.tsx
|
|
171
|
+
function InputGroup({ className, ...props }) {
|
|
172
|
+
return /* @__PURE__ */ jsx("div", {
|
|
173
|
+
className: cn("group/input-group relative flex w-full items-center rounded-md bg-input shadow-xs transition-[color,box-shadow] outline-none", "h-9 min-w-0 has-[>textarea]:h-auto", "has-[>[data-align=inline-start]]:[&>input]:pl-2", "has-[>[data-align=inline-end]]:[&>input]:pr-2", "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3", "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3", "has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50", "has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/40", className),
|
|
174
|
+
"data-slot": "input-group",
|
|
175
|
+
role: "group",
|
|
176
|
+
...props
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
const inputGroupAddonVariants = cva("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
|
|
180
|
+
variants: { align: {
|
|
181
|
+
"inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
|
|
182
|
+
"inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
|
|
183
|
+
"block-start": "order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3",
|
|
184
|
+
"block-end": "order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"
|
|
185
|
+
} },
|
|
186
|
+
defaultVariants: { align: "inline-start" }
|
|
187
|
+
});
|
|
188
|
+
function InputGroupAddon({ className, align = "inline-start", ...props }) {
|
|
189
|
+
return /* @__PURE__ */ jsx("div", {
|
|
190
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
191
|
+
"data-align": align,
|
|
192
|
+
"data-slot": "input-group-addon",
|
|
193
|
+
onClick: (e) => {
|
|
194
|
+
if (e.target.closest("button")) return;
|
|
195
|
+
e.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
227
196
|
},
|
|
228
|
-
|
|
197
|
+
role: "group",
|
|
229
198
|
...props
|
|
230
199
|
});
|
|
231
200
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
201
|
+
const inputGroupButtonVariants = cva("flex items-center gap-2 text-sm shadow-none", {
|
|
202
|
+
variants: { size: {
|
|
203
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
|
|
204
|
+
sm: "h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5",
|
|
205
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
206
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
207
|
+
} },
|
|
208
|
+
defaultVariants: { size: "xs" }
|
|
209
|
+
});
|
|
210
|
+
function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }) {
|
|
238
211
|
return /* @__PURE__ */ jsx(Button, {
|
|
239
|
-
className: cn(
|
|
240
|
-
"data-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
212
|
+
className: cn(inputGroupButtonVariants({ size }), className),
|
|
213
|
+
"data-size": size,
|
|
214
|
+
type,
|
|
215
|
+
variant,
|
|
216
|
+
...props
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
function InputGroupText({ className, ...props }) {
|
|
220
|
+
return /* @__PURE__ */ jsx("span", {
|
|
221
|
+
className: cn("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
|
|
222
|
+
...props
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
function InputGroupInput({ className, ...props }) {
|
|
226
|
+
return /* @__PURE__ */ jsx(Input, {
|
|
227
|
+
className: cn("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent", className),
|
|
228
|
+
"data-slot": "input-group-control",
|
|
229
|
+
...props
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
function InputGroupTextarea({ className, ...props }) {
|
|
233
|
+
return /* @__PURE__ */ jsx(Textarea, {
|
|
234
|
+
className: cn("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent", className),
|
|
235
|
+
"data-slot": "input-group-control",
|
|
248
236
|
...props
|
|
249
237
|
});
|
|
250
238
|
}
|
|
251
239
|
//#endregion
|
|
240
|
+
//#region src/lib/portal-container.ts
|
|
241
|
+
const PortalContainerContext = React.createContext(null);
|
|
242
|
+
function usePortalContainer() {
|
|
243
|
+
return React.useContext(PortalContainerContext);
|
|
244
|
+
}
|
|
245
|
+
//#endregion
|
|
246
|
+
//#region src/components/ui/combobox/index.tsx
|
|
247
|
+
const Combobox$1 = Combobox.Root;
|
|
248
|
+
function ComboboxValue({ ...props }) {
|
|
249
|
+
return /* @__PURE__ */ jsx(Combobox.Value, {
|
|
250
|
+
"data-slot": "combobox-value",
|
|
251
|
+
...props
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
function ComboboxTrigger({ className, children, showChevron = true, ...props }) {
|
|
255
|
+
return /* @__PURE__ */ jsxs(Combobox.Trigger, {
|
|
256
|
+
className: cn("[&_svg:not([class*='size-'])]:size-4", className),
|
|
257
|
+
"data-slot": "combobox-trigger",
|
|
258
|
+
...props,
|
|
259
|
+
children: [children, showChevron && /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
260
|
+
className: "pointer-events-none size-4 shrink-0 text-muted-foreground",
|
|
261
|
+
"data-slot": "combobox-trigger-icon"
|
|
262
|
+
})]
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
function ComboboxClear({ className, ...props }) {
|
|
266
|
+
return /* @__PURE__ */ jsx(Combobox.Clear, {
|
|
267
|
+
className: cn(className),
|
|
268
|
+
"data-slot": "combobox-clear",
|
|
269
|
+
render: /* @__PURE__ */ jsx(InputGroupButton, {
|
|
270
|
+
size: "icon-xs",
|
|
271
|
+
variant: "ghost"
|
|
272
|
+
}),
|
|
273
|
+
...props,
|
|
274
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "pointer-events-none" })
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
function ComboboxInput({ className, children, disabled = false, showTrigger = true, showClear = false, ...props }) {
|
|
278
|
+
return /* @__PURE__ */ jsxs(InputGroup, {
|
|
279
|
+
className: cn("w-auto", className),
|
|
280
|
+
children: [
|
|
281
|
+
/* @__PURE__ */ jsx(Combobox.Input, {
|
|
282
|
+
render: /* @__PURE__ */ jsx(InputGroupInput, { disabled }),
|
|
283
|
+
...props
|
|
284
|
+
}),
|
|
285
|
+
/* @__PURE__ */ jsxs(InputGroupAddon, {
|
|
286
|
+
align: "inline-end",
|
|
287
|
+
children: [showTrigger && /* @__PURE__ */ jsx(InputGroupButton, {
|
|
288
|
+
asChild: true,
|
|
289
|
+
className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",
|
|
290
|
+
"data-slot": "input-group-button",
|
|
291
|
+
disabled,
|
|
292
|
+
size: "icon-xs",
|
|
293
|
+
variant: "ghost",
|
|
294
|
+
children: /* @__PURE__ */ jsx(ComboboxTrigger, {})
|
|
295
|
+
}), showClear && /* @__PURE__ */ jsx(ComboboxClear, { disabled })]
|
|
296
|
+
}),
|
|
297
|
+
children
|
|
298
|
+
]
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
function ComboboxContent({ className, side = "bottom", sideOffset = 6, align = "start", alignOffset = 0, anchor, ...props }) {
|
|
302
|
+
const portalContainer = usePortalContainer();
|
|
303
|
+
return /* @__PURE__ */ jsx(Combobox.Portal, {
|
|
304
|
+
className: "contents",
|
|
305
|
+
container: portalContainer ?? void 0,
|
|
306
|
+
children: /* @__PURE__ */ jsx(Combobox.Positioner, {
|
|
307
|
+
align,
|
|
308
|
+
alignOffset,
|
|
309
|
+
anchor,
|
|
310
|
+
className: "pointer-events-auto isolate z-50",
|
|
311
|
+
side,
|
|
312
|
+
sideOffset,
|
|
313
|
+
children: /* @__PURE__ */ jsx(Combobox.Popup, {
|
|
314
|
+
className: cn("group/combobox-content relative max-h-96 w-fit max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
315
|
+
"data-chips": !!anchor,
|
|
316
|
+
"data-slot": "combobox-content",
|
|
317
|
+
...props
|
|
318
|
+
})
|
|
319
|
+
})
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
function ComboboxList({ className, ...props }) {
|
|
323
|
+
return /* @__PURE__ */ jsx(Combobox.List, {
|
|
324
|
+
className: cn("max-h-[min(calc(--spacing(96)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto p-1 data-empty:p-0", className),
|
|
325
|
+
"data-slot": "combobox-list",
|
|
326
|
+
...props
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
function ComboboxItem({ className, children, ...props }) {
|
|
330
|
+
return /* @__PURE__ */ jsxs(Combobox.Item, {
|
|
331
|
+
className: cn("relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
332
|
+
"data-slot": "combobox-item",
|
|
333
|
+
...props,
|
|
334
|
+
children: [children, /* @__PURE__ */ jsx(Combobox.ItemIndicator, {
|
|
335
|
+
"data-slot": "combobox-item-indicator",
|
|
336
|
+
render: /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }),
|
|
337
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "pointer-events-none size-4 pointer-coarse:size-5" })
|
|
338
|
+
})]
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
function ComboboxGroup({ className, ...props }) {
|
|
342
|
+
return /* @__PURE__ */ jsx(Combobox.Group, {
|
|
343
|
+
className: cn(className),
|
|
344
|
+
"data-slot": "combobox-group",
|
|
345
|
+
...props
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
function ComboboxLabel({ className, ...props }) {
|
|
349
|
+
return /* @__PURE__ */ jsx(Combobox.GroupLabel, {
|
|
350
|
+
className: cn("px-2 py-1.5 text-xs text-muted-foreground pointer-coarse:px-3 pointer-coarse:py-2 pointer-coarse:text-sm", className),
|
|
351
|
+
"data-slot": "combobox-label",
|
|
352
|
+
...props
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
function ComboboxCollection({ ...props }) {
|
|
356
|
+
return /* @__PURE__ */ jsx(Combobox.Collection, {
|
|
357
|
+
"data-slot": "combobox-collection",
|
|
358
|
+
...props
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
function ComboboxEmpty({ className, ...props }) {
|
|
362
|
+
return /* @__PURE__ */ jsx(Combobox.Empty, {
|
|
363
|
+
className: cn("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex", className),
|
|
364
|
+
"data-slot": "combobox-empty",
|
|
365
|
+
...props
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
function ComboboxSeparator({ className, ...props }) {
|
|
369
|
+
return /* @__PURE__ */ jsx(Combobox.Separator, {
|
|
370
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
371
|
+
"data-slot": "combobox-separator",
|
|
372
|
+
...props
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
function ComboboxChips({ className, ...props }) {
|
|
376
|
+
return /* @__PURE__ */ jsx(Combobox.Chips, {
|
|
377
|
+
className: cn("flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border border-transparent bg-input bg-clip-padding px-2.5 py-1.5 text-sm shadow-xs transition-[color,box-shadow] focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-[3px] has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1.5 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40", className),
|
|
378
|
+
"data-slot": "combobox-chips",
|
|
379
|
+
...props
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
function ComboboxChip({ className, children, showRemove = true, ...props }) {
|
|
383
|
+
return /* @__PURE__ */ jsxs(Combobox.Chip, {
|
|
384
|
+
className: cn("group inline-flex w-fit shrink-0 items-center gap-1 overflow-hidden rounded-md border py-0.5 pr-0.5 pl-2 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 [&>svg]:pointer-events-none [&>svg]:size-3", className),
|
|
385
|
+
"data-slot": "combobox-chip",
|
|
386
|
+
...props,
|
|
387
|
+
children: [children, showRemove && /* @__PURE__ */ jsx(Combobox.ChipRemove, {
|
|
388
|
+
className: "-ml-1 opacity-0 group-hover:opacity-100 focus:opacity-100",
|
|
389
|
+
"data-slot": "combobox-chip-remove",
|
|
390
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
391
|
+
size: "icon-xs",
|
|
392
|
+
variant: "ghost"
|
|
393
|
+
}),
|
|
394
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "pointer-events-none" })
|
|
395
|
+
})]
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
function ComboboxChipsInput({ className, children, ...props }) {
|
|
399
|
+
return /* @__PURE__ */ jsx(Combobox.Input, {
|
|
400
|
+
className: cn("min-w-16 flex-1 outline-none", className),
|
|
401
|
+
"data-slot": "combobox-chip-input",
|
|
402
|
+
...props
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
function useComboboxAnchor() {
|
|
406
|
+
return React.useRef(null);
|
|
407
|
+
}
|
|
408
|
+
//#endregion
|
|
252
409
|
//#region src/components/ui/field/index.tsx
|
|
253
410
|
const BasicField = React.forwardRef(({ className, orientation = "vertical", "data-invalid": dataInvalid, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
254
411
|
className: cn("grid gap-2", orientation === "vertical" && "grid-cols-1", orientation === "horizontal" && "grid-cols-[auto_minmax(0,1fr)] items-center gap-x-4", orientation === "responsive" && "grid-cols-1 @sm:grid-cols-[auto_minmax(0,1fr)] @sm:items-center @sm:gap-x-4", className),
|
|
@@ -343,91 +500,546 @@ const FieldTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
343
500
|
}));
|
|
344
501
|
FieldTitle.displayName = "FieldTitle";
|
|
345
502
|
//#endregion
|
|
346
|
-
//#region src/components/ui/
|
|
347
|
-
function
|
|
348
|
-
return /* @__PURE__ */ jsx(
|
|
349
|
-
|
|
350
|
-
"
|
|
351
|
-
|
|
352
|
-
...props
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
//#endregion
|
|
356
|
-
//#region src/components/ui/textarea/index.tsx
|
|
357
|
-
function Textarea({ className, ...props }) {
|
|
358
|
-
return /* @__PURE__ */ jsx("textarea", {
|
|
359
|
-
className: cn("flex field-sizing-content min-h-16 w-full rounded-md bg-input px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px] aria-invalid:ring-destructive/40 md:text-sm", className),
|
|
360
|
-
"data-slot": "textarea",
|
|
503
|
+
//#region src/components/ui/spinner/index.tsx
|
|
504
|
+
function Spinner({ className, ...props }) {
|
|
505
|
+
return /* @__PURE__ */ jsx(Loader2Icon, {
|
|
506
|
+
"aria-label": "Loading",
|
|
507
|
+
className: cn("size-4 animate-spin", className),
|
|
508
|
+
role: "status",
|
|
361
509
|
...props
|
|
362
510
|
});
|
|
363
511
|
}
|
|
364
512
|
//#endregion
|
|
365
|
-
//#region src/components/
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
const inputGroupAddonVariants = cva("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
|
|
375
|
-
variants: { align: {
|
|
376
|
-
"inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
|
|
377
|
-
"inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
|
|
378
|
-
"block-start": "order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3",
|
|
379
|
-
"block-end": "order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"
|
|
380
|
-
} },
|
|
381
|
-
defaultVariants: { align: "inline-start" }
|
|
382
|
-
});
|
|
383
|
-
function InputGroupAddon({ className, align = "inline-start", ...props }) {
|
|
384
|
-
return /* @__PURE__ */ jsx("div", {
|
|
385
|
-
className: cn(inputGroupAddonVariants({ align }), className),
|
|
386
|
-
"data-align": align,
|
|
387
|
-
"data-slot": "input-group-addon",
|
|
388
|
-
onClick: (e) => {
|
|
389
|
-
if (e.target.closest("button")) return;
|
|
390
|
-
e.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
513
|
+
//#region src/components/blocks/combobox-field/index.tsx
|
|
514
|
+
const COMMIT_ON_BLUR_REASONS = /* @__PURE__ */ new Set(["outside-press", "focus-out"]);
|
|
515
|
+
const anchorVariants = cva("", {
|
|
516
|
+
variants: {
|
|
517
|
+
anchor: {
|
|
518
|
+
button: "w-full justify-between font-normal",
|
|
519
|
+
ghost: "w-fit",
|
|
520
|
+
input: "",
|
|
521
|
+
chips: ""
|
|
391
522
|
},
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
402
|
-
} },
|
|
403
|
-
defaultVariants: { size: "xs" }
|
|
523
|
+
size: {
|
|
524
|
+
sm: "",
|
|
525
|
+
default: ""
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
defaultVariants: {
|
|
529
|
+
anchor: "button",
|
|
530
|
+
size: "default"
|
|
531
|
+
}
|
|
404
532
|
});
|
|
405
|
-
function
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
533
|
+
function toChipItems(picked) {
|
|
534
|
+
if (picked == null) return [];
|
|
535
|
+
const entries = Array.isArray(picked) ? picked : [picked];
|
|
536
|
+
const out = [];
|
|
537
|
+
for (const entry of entries) if (entry.kind === "item") out.push(entry.item);
|
|
538
|
+
return out;
|
|
539
|
+
}
|
|
540
|
+
function ComboboxField(props) {
|
|
541
|
+
const { anchor, chipClassName, chipStyle, commitOnBlur, externallyFiltered, splitOn, items, itemToLabel, itemToKey, label, description, error, onBlur, placeholder, searchPlaceholder, emptyText = "No results.", creatable, className, renderChip, renderItem, inputId: inputIdProp, onQueryChange, showTriggerChevron, triggerClassName, triggerIcon, triggerLabel, size, clearable, loading, disabled } = props;
|
|
542
|
+
const multiple = props.multiple === true;
|
|
543
|
+
const selected = React.useMemo(() => {
|
|
544
|
+
if (props.multiple) return props.value;
|
|
545
|
+
return props.value == null ? [] : [props.value];
|
|
546
|
+
}, [props.multiple, props.value]);
|
|
547
|
+
const isSingleInputAnchor = anchor === "input" && !multiple;
|
|
548
|
+
const emitChange = (next) => {
|
|
549
|
+
if (props.multiple) {
|
|
550
|
+
props.onChange([...next]);
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
const [first] = next;
|
|
554
|
+
props.onChange(first ?? null);
|
|
555
|
+
};
|
|
556
|
+
const chipsAnchor = useComboboxAnchor();
|
|
557
|
+
const generatedId = React.useId();
|
|
558
|
+
const inputId = inputIdProp ?? generatedId;
|
|
559
|
+
const errorId = `${inputId}-error`;
|
|
560
|
+
const descId = description ? `${inputId}-desc` : void 0;
|
|
561
|
+
const describedBy = [descId, error ? errorId : void 0].filter(Boolean).join(" ") || void 0;
|
|
562
|
+
const [query, setQuery] = React.useState(() => isSingleInputAnchor && selected[0] !== void 0 ? itemToLabel(selected[0]) : "");
|
|
563
|
+
const [open, setOpen] = React.useState(false);
|
|
564
|
+
const keepOpenForCreateRef = React.useRef(false);
|
|
565
|
+
const createQueueRef = React.useRef(Promise.resolve());
|
|
566
|
+
const lastSyncedValueKeyRef = React.useRef(isSingleInputAnchor && selected[0] !== void 0 ? itemToKey(selected[0]) : null);
|
|
567
|
+
React.useEffect(() => {
|
|
568
|
+
if (!isSingleInputAnchor) return;
|
|
569
|
+
const nextKey = selected[0] !== void 0 ? itemToKey(selected[0]) : null;
|
|
570
|
+
if (nextKey === lastSyncedValueKeyRef.current) return;
|
|
571
|
+
lastSyncedValueKeyRef.current = nextKey;
|
|
572
|
+
setQuery(selected[0] !== void 0 ? itemToLabel(selected[0]) : "");
|
|
573
|
+
}, [
|
|
574
|
+
isSingleInputAnchor,
|
|
575
|
+
itemToKey,
|
|
576
|
+
itemToLabel,
|
|
577
|
+
selected
|
|
578
|
+
]);
|
|
579
|
+
const trimmed = query.trim();
|
|
580
|
+
const exact = items.some((item) => itemToLabel(item).toLowerCase() === trimmed.toLowerCase());
|
|
581
|
+
const showCreate = Boolean(creatable && !exact && (trimmed || creatable.showWhenEmpty));
|
|
582
|
+
const createLabel = React.useCallback((q) => creatable?.label?.(q) ?? `Create "${q}"`, [creatable]);
|
|
583
|
+
const wrappedItems = React.useMemo(() => {
|
|
584
|
+
const real = items.map((item) => ({
|
|
585
|
+
item,
|
|
586
|
+
kind: "item"
|
|
587
|
+
}));
|
|
588
|
+
if (!showCreate) return real;
|
|
589
|
+
return [{
|
|
590
|
+
kind: "create",
|
|
591
|
+
query: trimmed
|
|
592
|
+
}, ...real];
|
|
593
|
+
}, [
|
|
594
|
+
items,
|
|
595
|
+
showCreate,
|
|
596
|
+
trimmed
|
|
597
|
+
]);
|
|
598
|
+
const selectedInternal = React.useMemo(() => {
|
|
599
|
+
const wrapped = selected.map((item) => ({
|
|
600
|
+
item,
|
|
601
|
+
kind: "item"
|
|
602
|
+
}));
|
|
603
|
+
if (multiple) return wrapped;
|
|
604
|
+
return wrapped[0] ?? null;
|
|
605
|
+
}, [multiple, selected]);
|
|
606
|
+
const itemToStringLabel = React.useCallback((wrapped) => wrapped.kind === "create" ? createLabel(wrapped.query) : itemToLabel(wrapped.item), [createLabel, itemToLabel]);
|
|
607
|
+
const isItemEqualToValue = React.useCallback((a, b) => a.kind === "item" && b.kind === "item" && itemToKey(a.item) === itemToKey(b.item), [itemToKey]);
|
|
608
|
+
const enqueueCreate = (parts) => {
|
|
609
|
+
if (!creatable) return;
|
|
610
|
+
for (const part of parts) {
|
|
611
|
+
const name = part.trim();
|
|
612
|
+
if (!name) continue;
|
|
613
|
+
createQueueRef.current = createQueueRef.current.then(() => creatable.onCreate(name).catch(() => {}));
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
const setInputValue = (nextQuery) => {
|
|
617
|
+
setQuery(nextQuery);
|
|
618
|
+
onQueryChange?.(nextQuery);
|
|
619
|
+
};
|
|
620
|
+
const handleInputValueChange = (nextQuery) => {
|
|
621
|
+
if (splitOn && creatable && nextQuery.includes(splitOn)) {
|
|
622
|
+
const parts = nextQuery.split(splitOn);
|
|
623
|
+
const remainder = parts.pop() ?? "";
|
|
624
|
+
setInputValue(remainder);
|
|
625
|
+
enqueueCreate(parts);
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
setInputValue(nextQuery);
|
|
629
|
+
};
|
|
630
|
+
const handleCommitOnBlur = () => {
|
|
631
|
+
const trimmedQuery = query.trim();
|
|
632
|
+
if (!trimmedQuery) return;
|
|
633
|
+
if (isSingleInputAnchor && selected[0] !== void 0 && trimmedQuery === itemToStringLabel({
|
|
634
|
+
item: selected[0],
|
|
635
|
+
kind: "item"
|
|
636
|
+
})) return;
|
|
637
|
+
enqueueCreate([query]);
|
|
638
|
+
setQuery("");
|
|
639
|
+
};
|
|
640
|
+
const closePopup = () => {
|
|
641
|
+
setOpen(false);
|
|
642
|
+
onBlur?.();
|
|
643
|
+
};
|
|
644
|
+
const handleOpenChange = (nextOpen, eventDetails) => {
|
|
645
|
+
if (!nextOpen && keepOpenForCreateRef.current) {
|
|
646
|
+
eventDetails.cancel();
|
|
647
|
+
return;
|
|
648
|
+
}
|
|
649
|
+
if (!nextOpen) {
|
|
650
|
+
if (isSingleInputAnchor && commitOnBlur && creatable && COMMIT_ON_BLUR_REASONS.has(eventDetails.reason)) handleCommitOnBlur();
|
|
651
|
+
closePopup();
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
setOpen(nextOpen);
|
|
655
|
+
};
|
|
656
|
+
const runCreate = (created, closeWhenDone) => {
|
|
657
|
+
if (!creatable) return;
|
|
658
|
+
keepOpenForCreateRef.current = true;
|
|
659
|
+
creatable.onCreate(created).then(() => {
|
|
660
|
+
keepOpenForCreateRef.current = false;
|
|
661
|
+
setQuery("");
|
|
662
|
+
if (closeWhenDone) closePopup();
|
|
663
|
+
}, () => {
|
|
664
|
+
keepOpenForCreateRef.current = false;
|
|
665
|
+
});
|
|
666
|
+
};
|
|
667
|
+
const handleValueChange = (next, eventDetails) => {
|
|
668
|
+
if (Array.isArray(next)) {
|
|
669
|
+
const creating = next.find((entry) => entry.kind === "create");
|
|
670
|
+
if (creating?.kind === "create") {
|
|
671
|
+
runCreate(creating.query, false);
|
|
672
|
+
setQuery("");
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
675
|
+
const picked = [];
|
|
676
|
+
for (const entry of next) if (entry.kind === "item") picked.push(entry.item);
|
|
677
|
+
emitChange(picked);
|
|
678
|
+
setQuery("");
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
if (next?.kind === "create") {
|
|
682
|
+
eventDetails.cancel();
|
|
683
|
+
runCreate(next.query, true);
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
if (next == null) {
|
|
687
|
+
emitChange([]);
|
|
688
|
+
setQuery("");
|
|
689
|
+
closePopup();
|
|
690
|
+
return;
|
|
691
|
+
}
|
|
692
|
+
emitChange([next.item]);
|
|
693
|
+
setQuery("");
|
|
694
|
+
setOpen(false);
|
|
695
|
+
};
|
|
696
|
+
const triggerLabelText = typeof triggerLabel === "string" ? triggerLabel : void 0;
|
|
697
|
+
const [firstSelected] = selected;
|
|
698
|
+
const selectedLabel = firstSelected === void 0 ? void 0 : itemToLabel(firstSelected);
|
|
699
|
+
const chipFill = (item) => renderChip ? renderChip(item) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
700
|
+
"aria-hidden": true,
|
|
701
|
+
className: "size-2 shrink-0 rounded-full bg-current"
|
|
702
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
703
|
+
className: "truncate",
|
|
704
|
+
children: itemToLabel(item)
|
|
705
|
+
})] });
|
|
706
|
+
const popupList = loading ? /* @__PURE__ */ jsx("div", {
|
|
707
|
+
className: "flex w-full items-center justify-center py-2",
|
|
708
|
+
children: /* @__PURE__ */ jsx(Spinner, {})
|
|
709
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(ComboboxEmpty, { children: emptyText }), /* @__PURE__ */ jsx(ComboboxList, { children: (wrapped) => wrapped.kind === "create" ? /* @__PURE__ */ jsx(ComboboxItem, {
|
|
710
|
+
value: wrapped,
|
|
711
|
+
children: createLabel(wrapped.query)
|
|
712
|
+
}, "__combobox-field-create__") : /* @__PURE__ */ jsx(ComboboxItem, {
|
|
713
|
+
value: wrapped,
|
|
714
|
+
children: renderItem ? renderItem(wrapped.item) : itemToLabel(wrapped.item)
|
|
715
|
+
}, itemToKey(wrapped.item)) })] });
|
|
716
|
+
return /* @__PURE__ */ jsxs(BasicField, {
|
|
717
|
+
className,
|
|
718
|
+
"data-invalid": error ? true : void 0,
|
|
719
|
+
children: [
|
|
720
|
+
label && /* @__PURE__ */ jsx(FieldLabel, {
|
|
721
|
+
htmlFor: inputId,
|
|
722
|
+
children: label
|
|
723
|
+
}),
|
|
724
|
+
/* @__PURE__ */ jsxs(Combobox$1, {
|
|
725
|
+
autoHighlight: true,
|
|
726
|
+
disabled,
|
|
727
|
+
filter: externallyFiltered ? null : void 0,
|
|
728
|
+
inputValue: query,
|
|
729
|
+
isItemEqualToValue,
|
|
730
|
+
items: wrappedItems,
|
|
731
|
+
itemToStringLabel,
|
|
732
|
+
multiple,
|
|
733
|
+
onInputValueChange: handleInputValueChange,
|
|
734
|
+
onOpenChange: handleOpenChange,
|
|
735
|
+
onValueChange: handleValueChange,
|
|
736
|
+
open,
|
|
737
|
+
value: selectedInternal,
|
|
738
|
+
children: [
|
|
739
|
+
(anchor === "button" || anchor === "ghost") && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(ComboboxTrigger, {
|
|
740
|
+
"aria-describedby": describedBy,
|
|
741
|
+
"aria-invalid": error ? true : void 0,
|
|
742
|
+
"aria-label": label ? void 0 : triggerLabelText ?? placeholder ?? searchPlaceholder,
|
|
743
|
+
className: cn(anchorVariants({
|
|
744
|
+
anchor,
|
|
745
|
+
size
|
|
746
|
+
}), triggerClassName),
|
|
747
|
+
disabled,
|
|
748
|
+
id: inputId,
|
|
749
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
750
|
+
size,
|
|
751
|
+
variant: anchor === "ghost" ? "ghost" : "outline"
|
|
752
|
+
}),
|
|
753
|
+
showChevron: showTriggerChevron ?? anchor === "button",
|
|
754
|
+
children: [triggerIcon, /* @__PURE__ */ jsx("span", {
|
|
755
|
+
className: "min-w-0 truncate",
|
|
756
|
+
children: triggerLabel ?? selectedLabel ?? placeholder
|
|
757
|
+
})]
|
|
758
|
+
}), /* @__PURE__ */ jsxs(ComboboxContent, {
|
|
759
|
+
className: "flex max-h-none flex-col-reverse gap-2 overflow-visible bg-transparent shadow-none ring-0",
|
|
760
|
+
side: "top",
|
|
761
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
762
|
+
className: "rounded-md bg-popover shadow-md ring-1 ring-foreground/10",
|
|
763
|
+
children: /* @__PURE__ */ jsx(ComboboxInput, {
|
|
764
|
+
"aria-label": searchPlaceholder ?? label ?? placeholder,
|
|
765
|
+
disabled,
|
|
766
|
+
placeholder: searchPlaceholder,
|
|
767
|
+
showTrigger: false
|
|
768
|
+
})
|
|
769
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
770
|
+
className: "max-h-96 overflow-hidden rounded-md bg-popover shadow-md ring-1 ring-foreground/10",
|
|
771
|
+
children: popupList
|
|
772
|
+
})]
|
|
773
|
+
})] }),
|
|
774
|
+
anchor === "input" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(ComboboxInput, {
|
|
775
|
+
"aria-describedby": describedBy,
|
|
776
|
+
"aria-invalid": error ? true : void 0,
|
|
777
|
+
"aria-label": label ? void 0 : placeholder ?? searchPlaceholder,
|
|
778
|
+
className: anchorVariants({
|
|
779
|
+
anchor,
|
|
780
|
+
size
|
|
781
|
+
}),
|
|
782
|
+
disabled,
|
|
783
|
+
id: inputId,
|
|
784
|
+
onBlur: commitOnBlur && creatable ? handleCommitOnBlur : void 0,
|
|
785
|
+
placeholder,
|
|
786
|
+
showClear: clearable
|
|
787
|
+
}), /* @__PURE__ */ jsx(ComboboxContent, { children: popupList })] }),
|
|
788
|
+
anchor === "chips" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(ComboboxChips, {
|
|
789
|
+
className: anchorVariants({
|
|
790
|
+
anchor,
|
|
791
|
+
size
|
|
792
|
+
}),
|
|
793
|
+
ref: chipsAnchor,
|
|
794
|
+
children: [/* @__PURE__ */ jsx(ComboboxValue, { children: (picked) => {
|
|
795
|
+
const chips = toChipItems(picked);
|
|
796
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [chips.map((item) => /* @__PURE__ */ jsx(ComboboxChip, {
|
|
797
|
+
className: chipClassName?.(item),
|
|
798
|
+
style: chipStyle?.(item),
|
|
799
|
+
children: chipFill(item)
|
|
800
|
+
}, itemToKey(item))), /* @__PURE__ */ jsx(ComboboxChipsInput, {
|
|
801
|
+
"aria-describedby": describedBy,
|
|
802
|
+
"aria-invalid": error ? true : void 0,
|
|
803
|
+
"aria-label": label ? void 0 : placeholder ?? searchPlaceholder,
|
|
804
|
+
disabled,
|
|
805
|
+
id: inputId,
|
|
806
|
+
onBlur: commitOnBlur && creatable ? handleCommitOnBlur : void 0,
|
|
807
|
+
placeholder: chips.length > 0 ? "" : placeholder
|
|
808
|
+
})] });
|
|
809
|
+
} }), /* @__PURE__ */ jsx(ComboboxTrigger, {
|
|
810
|
+
className: "ml-auto",
|
|
811
|
+
disabled,
|
|
812
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
813
|
+
size: "icon-xs",
|
|
814
|
+
variant: "ghost"
|
|
815
|
+
})
|
|
816
|
+
})]
|
|
817
|
+
}), /* @__PURE__ */ jsx(ComboboxContent, {
|
|
818
|
+
anchor: chipsAnchor,
|
|
819
|
+
children: popupList
|
|
820
|
+
})] })
|
|
821
|
+
]
|
|
822
|
+
}),
|
|
823
|
+
description && /* @__PURE__ */ jsx(FieldDescription, {
|
|
824
|
+
id: descId,
|
|
825
|
+
children: description
|
|
826
|
+
}),
|
|
827
|
+
error && /* @__PURE__ */ jsx("div", {
|
|
828
|
+
className: "text-destructive text-sm font-normal",
|
|
829
|
+
id: errorId,
|
|
830
|
+
children: error
|
|
831
|
+
})
|
|
832
|
+
]
|
|
412
833
|
});
|
|
413
834
|
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
835
|
+
//#endregion
|
|
836
|
+
//#region src/components/ui/progress/index.tsx
|
|
837
|
+
function Progress({ className, value, ...props }) {
|
|
838
|
+
return /* @__PURE__ */ jsx(ProgressPrimitive.Root, {
|
|
839
|
+
className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className),
|
|
840
|
+
"data-slot": "progress",
|
|
841
|
+
value,
|
|
842
|
+
...props,
|
|
843
|
+
children: /* @__PURE__ */ jsx(ProgressPrimitive.Indicator, {
|
|
844
|
+
className: "bg-primary h-full w-full flex-1 transition-all",
|
|
845
|
+
"data-slot": "progress-indicator",
|
|
846
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
847
|
+
})
|
|
418
848
|
});
|
|
419
849
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
850
|
+
//#endregion
|
|
851
|
+
//#region src/components/blocks/dropzone/index.tsx
|
|
852
|
+
function Dropzone({ accept, multiple = false, variant = "file", onFiles, progress, fileName, previewUrl, error, invalid, className }) {
|
|
853
|
+
const inputRef = useRef(null);
|
|
854
|
+
const selectFiles = (files) => {
|
|
855
|
+
const accepted = files.filter((file) => {
|
|
856
|
+
const rules = (accept ?? (variant === "image" ? "image/*" : "")).split(",").map((rule) => rule.trim().toLowerCase()).filter(Boolean);
|
|
857
|
+
return rules.length === 0 || rules.some((rule) => {
|
|
858
|
+
if (rule.startsWith(".")) return file.name.toLowerCase().endsWith(rule);
|
|
859
|
+
if (rule.endsWith("/*")) return file.type.toLowerCase().startsWith(rule.slice(0, -1));
|
|
860
|
+
return file.type.toLowerCase() === rule;
|
|
861
|
+
});
|
|
862
|
+
});
|
|
863
|
+
if (accepted.length) onFiles(multiple ? accepted : accepted.slice(0, 1));
|
|
864
|
+
};
|
|
865
|
+
const Icon = variant === "image" ? ImageIcon : Upload;
|
|
866
|
+
const dropCopy = multiple ? "Drop files or click to upload" : variant === "image" ? "Drop an image or click to upload" : "Drop a file or click to upload";
|
|
867
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
868
|
+
className: "space-y-2",
|
|
869
|
+
children: [
|
|
870
|
+
/* @__PURE__ */ jsx("input", {
|
|
871
|
+
accept: accept ?? (variant === "image" ? "image/*" : void 0),
|
|
872
|
+
"aria-label": dropCopy,
|
|
873
|
+
className: "sr-only",
|
|
874
|
+
multiple,
|
|
875
|
+
name: "files",
|
|
876
|
+
onChange: (event) => {
|
|
877
|
+
selectFiles(Array.from(event.currentTarget.files ?? []));
|
|
878
|
+
event.currentTarget.value = "";
|
|
879
|
+
},
|
|
880
|
+
ref: inputRef,
|
|
881
|
+
tabIndex: -1,
|
|
882
|
+
type: "file"
|
|
883
|
+
}),
|
|
884
|
+
/* @__PURE__ */ jsxs("button", {
|
|
885
|
+
"aria-invalid": invalid,
|
|
886
|
+
className: cn("flex w-full flex-col items-center justify-center gap-2 rounded-lg border p-6 transition-colors hover:bg-muted/50", className),
|
|
887
|
+
"data-invalid": invalid,
|
|
888
|
+
onClick: () => inputRef.current?.click(),
|
|
889
|
+
onDragOver: (event) => event.preventDefault(),
|
|
890
|
+
onDrop: (event) => {
|
|
891
|
+
event.preventDefault();
|
|
892
|
+
selectFiles(Array.from(event.dataTransfer.files));
|
|
893
|
+
},
|
|
894
|
+
type: "button",
|
|
895
|
+
children: [/* @__PURE__ */ jsx(Icon, { className: "size-8 text-muted-foreground" }), /* @__PURE__ */ jsx("span", {
|
|
896
|
+
className: "text-sm text-muted-foreground",
|
|
897
|
+
children: dropCopy
|
|
898
|
+
})]
|
|
899
|
+
}),
|
|
900
|
+
fileName && /* @__PURE__ */ jsx("span", {
|
|
901
|
+
className: "block text-xs text-muted-foreground truncate max-w-52",
|
|
902
|
+
children: fileName
|
|
903
|
+
}),
|
|
904
|
+
previewUrl && variant === "image" && /* @__PURE__ */ jsxs("div", {
|
|
905
|
+
className: "flex items-center gap-2",
|
|
906
|
+
children: [/* @__PURE__ */ jsx("img", {
|
|
907
|
+
alt: "Preview",
|
|
908
|
+
className: "size-10 rounded object-cover",
|
|
909
|
+
src: previewUrl
|
|
910
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
911
|
+
className: "text-xs text-muted-foreground truncate max-w-52",
|
|
912
|
+
children: previewUrl
|
|
913
|
+
})]
|
|
914
|
+
}),
|
|
915
|
+
previewUrl && variant === "file" && /* @__PURE__ */ jsx("div", {
|
|
916
|
+
className: "flex items-center gap-2",
|
|
917
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
918
|
+
className: "text-xs text-muted-foreground truncate max-w-52",
|
|
919
|
+
children: fileName ?? "Uploaded file"
|
|
920
|
+
})
|
|
921
|
+
}),
|
|
922
|
+
progress != null && /* @__PURE__ */ jsxs("div", {
|
|
923
|
+
className: "space-y-1",
|
|
924
|
+
children: [/* @__PURE__ */ jsx(Progress, {
|
|
925
|
+
className: "h-2",
|
|
926
|
+
value: progress
|
|
927
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
928
|
+
className: "text-xs text-muted-foreground",
|
|
929
|
+
children: [
|
|
930
|
+
"Uploading: ",
|
|
931
|
+
progress,
|
|
932
|
+
"%"
|
|
933
|
+
]
|
|
934
|
+
})]
|
|
935
|
+
}),
|
|
936
|
+
error && /* @__PURE__ */ jsx("div", {
|
|
937
|
+
className: "text-destructive text-sm font-normal",
|
|
938
|
+
children: error
|
|
939
|
+
})
|
|
940
|
+
]
|
|
941
|
+
});
|
|
942
|
+
}
|
|
943
|
+
//#endregion
|
|
944
|
+
//#region ../core/src/forms/validate.ts
|
|
945
|
+
const validate = (schema) => ({ value }) => {
|
|
946
|
+
const result = schema.safeParse(value);
|
|
947
|
+
return result.success ? void 0 : result.error.issues[0]?.message;
|
|
948
|
+
};
|
|
949
|
+
//#endregion
|
|
950
|
+
//#region src/components/ui/calendar/index.tsx
|
|
951
|
+
function Calendar$1({ className, classNames, showOutsideDays = true, captionLayout = "label", buttonVariant = "ghost", formatters, components, ...props }) {
|
|
952
|
+
const defaultClassNames = getDefaultClassNames();
|
|
953
|
+
return /* @__PURE__ */ jsx(DayPicker, {
|
|
954
|
+
captionLayout,
|
|
955
|
+
className: cn("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent", String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`, String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`, className),
|
|
956
|
+
classNames: {
|
|
957
|
+
root: cn("w-fit", defaultClassNames.root),
|
|
958
|
+
months: cn("flex gap-4 flex-col md:flex-row relative", defaultClassNames.months),
|
|
959
|
+
month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
|
|
960
|
+
nav: cn("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between", defaultClassNames.nav),
|
|
961
|
+
button_previous: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none", defaultClassNames.button_previous),
|
|
962
|
+
button_next: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none", defaultClassNames.button_next),
|
|
963
|
+
month_caption: cn("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)", defaultClassNames.month_caption),
|
|
964
|
+
dropdowns: cn("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5", defaultClassNames.dropdowns),
|
|
965
|
+
dropdown_root: cn("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md", defaultClassNames.dropdown_root),
|
|
966
|
+
dropdown: cn("absolute bg-popover inset-0 opacity-0", defaultClassNames.dropdown),
|
|
967
|
+
caption_label: cn("select-none font-medium", captionLayout === "label" ? "text-sm" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5", defaultClassNames.caption_label),
|
|
968
|
+
table: "w-full border-collapse",
|
|
969
|
+
weekdays: cn("flex", defaultClassNames.weekdays),
|
|
970
|
+
weekday: cn("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none", defaultClassNames.weekday),
|
|
971
|
+
week: cn("flex w-full mt-2", defaultClassNames.week),
|
|
972
|
+
week_number_header: cn("select-none w-(--cell-size)", defaultClassNames.week_number_header),
|
|
973
|
+
week_number: cn("text-[0.8rem] select-none text-muted-foreground", defaultClassNames.week_number),
|
|
974
|
+
day: cn("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none", defaultClassNames.day),
|
|
975
|
+
range_start: cn("rounded-l-md bg-accent", defaultClassNames.range_start),
|
|
976
|
+
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
977
|
+
range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
|
|
978
|
+
today: cn("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none", defaultClassNames.today),
|
|
979
|
+
outside: cn("text-muted-foreground aria-selected:text-muted-foreground", defaultClassNames.outside),
|
|
980
|
+
disabled: cn("text-muted-foreground opacity-50", defaultClassNames.disabled),
|
|
981
|
+
hidden: cn("invisible", defaultClassNames.hidden),
|
|
982
|
+
...classNames
|
|
983
|
+
},
|
|
984
|
+
components: {
|
|
985
|
+
Root: ({ className, rootRef, ...props }) => {
|
|
986
|
+
return /* @__PURE__ */ jsx("div", {
|
|
987
|
+
className: cn(className),
|
|
988
|
+
"data-slot": "calendar",
|
|
989
|
+
ref: rootRef,
|
|
990
|
+
...props
|
|
991
|
+
});
|
|
992
|
+
},
|
|
993
|
+
Chevron: ({ className, orientation, ...props }) => {
|
|
994
|
+
if (orientation === "left") return /* @__PURE__ */ jsx(ChevronLeftIcon, {
|
|
995
|
+
className: cn("size-4", className),
|
|
996
|
+
...props
|
|
997
|
+
});
|
|
998
|
+
if (orientation === "right") return /* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
999
|
+
className: cn("size-4", className),
|
|
1000
|
+
...props
|
|
1001
|
+
});
|
|
1002
|
+
return /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
1003
|
+
className: cn("size-4", className),
|
|
1004
|
+
...props
|
|
1005
|
+
});
|
|
1006
|
+
},
|
|
1007
|
+
DayButton: CalendarDayButton,
|
|
1008
|
+
WeekNumber: ({ children, ...props }) => {
|
|
1009
|
+
return /* @__PURE__ */ jsx("td", {
|
|
1010
|
+
...props,
|
|
1011
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
1012
|
+
className: "flex size-(--cell-size) items-center justify-center text-center",
|
|
1013
|
+
children
|
|
1014
|
+
})
|
|
1015
|
+
});
|
|
1016
|
+
},
|
|
1017
|
+
...components
|
|
1018
|
+
},
|
|
1019
|
+
formatters: {
|
|
1020
|
+
formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
|
|
1021
|
+
...formatters
|
|
1022
|
+
},
|
|
1023
|
+
showOutsideDays,
|
|
424
1024
|
...props
|
|
425
1025
|
});
|
|
426
1026
|
}
|
|
427
|
-
function
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
1027
|
+
function CalendarDayButton({ className, day, modifiers, ...props }) {
|
|
1028
|
+
const defaultClassNames = getDefaultClassNames();
|
|
1029
|
+
const ref = React.useRef(null);
|
|
1030
|
+
React.useEffect(() => {
|
|
1031
|
+
if (modifiers.focused) ref.current?.focus();
|
|
1032
|
+
}, [modifiers.focused]);
|
|
1033
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
1034
|
+
className: cn("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70", defaultClassNames.day, className),
|
|
1035
|
+
"data-day": day.date.toLocaleDateString(),
|
|
1036
|
+
"data-range-end": modifiers.range_end,
|
|
1037
|
+
"data-range-middle": modifiers.range_middle,
|
|
1038
|
+
"data-range-start": modifiers.range_start,
|
|
1039
|
+
"data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
|
|
1040
|
+
ref,
|
|
1041
|
+
size: "icon",
|
|
1042
|
+
variant: "ghost",
|
|
431
1043
|
...props
|
|
432
1044
|
});
|
|
433
1045
|
}
|
|
@@ -609,21 +1221,6 @@ function Label({ className, ...props }) {
|
|
|
609
1221
|
});
|
|
610
1222
|
}
|
|
611
1223
|
//#endregion
|
|
612
|
-
//#region src/components/ui/progress/index.tsx
|
|
613
|
-
function Progress({ className, value, ...props }) {
|
|
614
|
-
return /* @__PURE__ */ jsx(ProgressPrimitive.Root, {
|
|
615
|
-
className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className),
|
|
616
|
-
"data-slot": "progress",
|
|
617
|
-
value,
|
|
618
|
-
...props,
|
|
619
|
-
children: /* @__PURE__ */ jsx(ProgressPrimitive.Indicator, {
|
|
620
|
-
className: "bg-primary h-full w-full flex-1 transition-all",
|
|
621
|
-
"data-slot": "progress-indicator",
|
|
622
|
-
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
623
|
-
})
|
|
624
|
-
});
|
|
625
|
-
}
|
|
626
|
-
//#endregion
|
|
627
1224
|
//#region src/components/ui/tabs/index.tsx
|
|
628
1225
|
function Tabs({ className, ...props }) {
|
|
629
1226
|
return /* @__PURE__ */ jsx(TabsPrimitive.Root, {
|
|
@@ -654,7 +1251,7 @@ function TabsContent({ className, ...props }) {
|
|
|
654
1251
|
});
|
|
655
1252
|
}
|
|
656
1253
|
//#endregion
|
|
657
|
-
//#region ../core/src/
|
|
1254
|
+
//#region ../core/src/utils/picker-icons.ts
|
|
658
1255
|
const CATEGORIES = {
|
|
659
1256
|
ListMusic: ["multimedia"],
|
|
660
1257
|
Activity: [
|
|
@@ -697,6 +1294,8 @@ const CATEGORIES = {
|
|
|
697
1294
|
],
|
|
698
1295
|
Album: ["photography", "multimedia"],
|
|
699
1296
|
AlertCircle: ["notifications"],
|
|
1297
|
+
Ampersand: ["text", "development"],
|
|
1298
|
+
Ampersands: ["text", "development"],
|
|
700
1299
|
Amphora: ["food-beverage", "gaming"],
|
|
701
1300
|
Anchor: ["transportation", "text"],
|
|
702
1301
|
Anvil: [
|
|
@@ -751,12 +1350,18 @@ const CATEGORIES = {
|
|
|
751
1350
|
],
|
|
752
1351
|
ArrowLeft: ["arrows"],
|
|
753
1352
|
ArrowRight: ["arrows"],
|
|
1353
|
+
ArrowRightToLine: ["arrows", "development"],
|
|
754
1354
|
ArrowUpFromLine: [
|
|
755
1355
|
"arrows",
|
|
756
1356
|
"files",
|
|
757
1357
|
"development"
|
|
758
1358
|
],
|
|
759
1359
|
ArrowUpToLine: ["arrows", "files"],
|
|
1360
|
+
Asterisk: [
|
|
1361
|
+
"text",
|
|
1362
|
+
"math",
|
|
1363
|
+
"development"
|
|
1364
|
+
],
|
|
760
1365
|
AtSign: ["text", "account"],
|
|
761
1366
|
Atom: ["science"],
|
|
762
1367
|
Award: [
|
|
@@ -845,6 +1450,7 @@ const CATEGORIES = {
|
|
|
845
1450
|
"tools"
|
|
846
1451
|
],
|
|
847
1452
|
Bike: ["transportation"],
|
|
1453
|
+
Binary: ["text", "development"],
|
|
848
1454
|
Binoculars: [
|
|
849
1455
|
"navigation",
|
|
850
1456
|
"nature",
|
|
@@ -868,6 +1474,11 @@ const CATEGORIES = {
|
|
|
868
1474
|
"tools",
|
|
869
1475
|
"development"
|
|
870
1476
|
],
|
|
1477
|
+
Blocks: [
|
|
1478
|
+
"development",
|
|
1479
|
+
"layout",
|
|
1480
|
+
"shapes"
|
|
1481
|
+
],
|
|
871
1482
|
BluetoothConnected: ["connectivity", "devices"],
|
|
872
1483
|
Bolt: ["tools", "home"],
|
|
873
1484
|
Bomb: ["security", "tools"],
|
|
@@ -897,6 +1508,8 @@ const CATEGORIES = {
|
|
|
897
1508
|
"text",
|
|
898
1509
|
"gaming"
|
|
899
1510
|
],
|
|
1511
|
+
BookDashed: ["development"],
|
|
1512
|
+
BookDown: ["development"],
|
|
900
1513
|
BookHeart: [
|
|
901
1514
|
"social",
|
|
902
1515
|
"text",
|
|
@@ -941,6 +1554,7 @@ const CATEGORIES = {
|
|
|
941
1554
|
"development",
|
|
942
1555
|
"gaming"
|
|
943
1556
|
],
|
|
1557
|
+
BookOpenText: ["text", "development"],
|
|
944
1558
|
BookPlus: [
|
|
945
1559
|
"development",
|
|
946
1560
|
"text",
|
|
@@ -957,6 +1571,8 @@ const CATEGORIES = {
|
|
|
957
1571
|
"design",
|
|
958
1572
|
"gaming"
|
|
959
1573
|
],
|
|
1574
|
+
BookUp: ["development"],
|
|
1575
|
+
BookUp2: ["development"],
|
|
960
1576
|
BookUser: [
|
|
961
1577
|
"account",
|
|
962
1578
|
"connectivity",
|
|
@@ -1059,6 +1675,8 @@ const CATEGORIES = {
|
|
|
1059
1675
|
"nature"
|
|
1060
1676
|
],
|
|
1061
1677
|
Carrot: ["food-beverage"],
|
|
1678
|
+
CaseLower: ["text", "development"],
|
|
1679
|
+
CaseUpper: ["text", "development"],
|
|
1062
1680
|
CassetteTape: [
|
|
1063
1681
|
"connectivity",
|
|
1064
1682
|
"devices",
|
|
@@ -1234,6 +1852,8 @@ const CATEGORIES = {
|
|
|
1234
1852
|
Cloud: ["weather"],
|
|
1235
1853
|
CloudAlert: ["development"],
|
|
1236
1854
|
CloudBackup: ["arrows", "files"],
|
|
1855
|
+
CloudCheck: ["development"],
|
|
1856
|
+
CloudCog: ["development"],
|
|
1237
1857
|
CloudDownload: ["arrows", "files"],
|
|
1238
1858
|
CloudSync: ["arrows", "files"],
|
|
1239
1859
|
CloudUpload: ["arrows", "files"],
|
|
@@ -1246,13 +1866,16 @@ const CATEGORIES = {
|
|
|
1246
1866
|
Cog: ["account"],
|
|
1247
1867
|
Coins: ["gaming"],
|
|
1248
1868
|
Combine: ["development", "files"],
|
|
1869
|
+
Command: ["development"],
|
|
1249
1870
|
Compass: ["navigation", "travel"],
|
|
1871
|
+
Component: ["design", "development"],
|
|
1250
1872
|
Computer: [
|
|
1251
1873
|
"devices",
|
|
1252
1874
|
"development",
|
|
1253
1875
|
"gaming"
|
|
1254
1876
|
],
|
|
1255
1877
|
ConciergeBell: ["travel"],
|
|
1878
|
+
Construction: ["development"],
|
|
1256
1879
|
Contact: [
|
|
1257
1880
|
"account",
|
|
1258
1881
|
"connectivity",
|
|
@@ -1265,6 +1888,11 @@ const CATEGORIES = {
|
|
|
1265
1888
|
"communication",
|
|
1266
1889
|
"social"
|
|
1267
1890
|
],
|
|
1891
|
+
Container: [
|
|
1892
|
+
"development",
|
|
1893
|
+
"transportation",
|
|
1894
|
+
"mail"
|
|
1895
|
+
],
|
|
1268
1896
|
Contrast: [
|
|
1269
1897
|
"photography",
|
|
1270
1898
|
"accessibility",
|
|
@@ -1273,6 +1901,16 @@ const CATEGORIES = {
|
|
|
1273
1901
|
Cookie: ["account", "food-beverage"],
|
|
1274
1902
|
CookingPot: ["food-beverage", "home"],
|
|
1275
1903
|
CopyCheck: ["text", "notifications"],
|
|
1904
|
+
CopySlash: [
|
|
1905
|
+
"text",
|
|
1906
|
+
"development",
|
|
1907
|
+
"math"
|
|
1908
|
+
],
|
|
1909
|
+
CornerDownRight: [
|
|
1910
|
+
"arrows",
|
|
1911
|
+
"text",
|
|
1912
|
+
"development"
|
|
1913
|
+
],
|
|
1276
1914
|
Cpu: ["devices"],
|
|
1277
1915
|
CreditCard: ["account", "finance"],
|
|
1278
1916
|
Croissant: ["food-beverage"],
|
|
@@ -1294,6 +1932,7 @@ const CATEGORIES = {
|
|
|
1294
1932
|
"development",
|
|
1295
1933
|
"photography"
|
|
1296
1934
|
],
|
|
1935
|
+
DatabaseZap: ["devices", "development"],
|
|
1297
1936
|
Dessert: ["food-beverage"],
|
|
1298
1937
|
Diameter: [
|
|
1299
1938
|
"shapes",
|
|
@@ -1329,6 +1968,7 @@ const CATEGORIES = {
|
|
|
1329
1968
|
Dices: ["gaming"],
|
|
1330
1969
|
Diff: ["development", "files"],
|
|
1331
1970
|
Disc2: ["devices", "multimedia"],
|
|
1971
|
+
Divide: ["math", "development"],
|
|
1332
1972
|
DivideCircle: ["math"],
|
|
1333
1973
|
DnaOff: ["medical", "food-beverage"],
|
|
1334
1974
|
Dock: [
|
|
@@ -1371,6 +2011,12 @@ const CATEGORIES = {
|
|
|
1371
2011
|
DropletOff: ["weather", "gaming"],
|
|
1372
2012
|
Drum: ["multimedia", "devices"],
|
|
1373
2013
|
Drumstick: ["food-beverage"],
|
|
2014
|
+
Dumbbell: ["navigation", "sports"],
|
|
2015
|
+
EarthLock: [
|
|
2016
|
+
"security",
|
|
2017
|
+
"development",
|
|
2018
|
+
"devices"
|
|
2019
|
+
],
|
|
1374
2020
|
Eclipse: [
|
|
1375
2021
|
"science",
|
|
1376
2022
|
"design",
|
|
@@ -1387,6 +2033,9 @@ const CATEGORIES = {
|
|
|
1387
2033
|
Egg: ["food-beverage", "animals"],
|
|
1388
2034
|
EggFried: ["food-beverage"],
|
|
1389
2035
|
EggOff: ["food-beverage"],
|
|
2036
|
+
Ellipsis: ["layout", "development"],
|
|
2037
|
+
Equal: ["math", "development"],
|
|
2038
|
+
EqualNot: ["math", "development"],
|
|
1390
2039
|
EthernetPort: [
|
|
1391
2040
|
"communication",
|
|
1392
2041
|
"devices",
|
|
@@ -1488,6 +2137,8 @@ const CATEGORIES = {
|
|
|
1488
2137
|
FishingHook: ["sports", "travel"],
|
|
1489
2138
|
Flag: ["account", "social"],
|
|
1490
2139
|
FlagOff: ["account", "social"],
|
|
2140
|
+
FlagTriangleLeft: ["development", "navigation"],
|
|
2141
|
+
FlagTriangleRight: ["development", "navigation"],
|
|
1491
2142
|
Flame: [
|
|
1492
2143
|
"weather",
|
|
1493
2144
|
"social",
|
|
@@ -1548,6 +2199,7 @@ const CATEGORIES = {
|
|
|
1548
2199
|
FolderX: ["files"],
|
|
1549
2200
|
Folders: ["files"],
|
|
1550
2201
|
Footprints: ["navigation"],
|
|
2202
|
+
Form: ["development"],
|
|
1551
2203
|
Forward: ["mail"],
|
|
1552
2204
|
Frame: ["design", "photography"],
|
|
1553
2205
|
Fullscreen: [
|
|
@@ -1622,10 +2274,28 @@ const CATEGORIES = {
|
|
|
1622
2274
|
Ghost: ["gaming"],
|
|
1623
2275
|
Gift: ["gaming", "account"],
|
|
1624
2276
|
GitBranch: ["development"],
|
|
2277
|
+
GitBranchMinus: ["development"],
|
|
2278
|
+
GitBranchPlus: ["development"],
|
|
2279
|
+
GitCommitHorizontal: ["development", "navigation"],
|
|
2280
|
+
GitCommitVertical: ["development", "navigation"],
|
|
2281
|
+
GitCompare: ["development"],
|
|
2282
|
+
GitCompareArrows: ["development", "arrows"],
|
|
2283
|
+
GitFork: ["development"],
|
|
2284
|
+
GitGraph: ["development"],
|
|
1625
2285
|
GitMerge: ["development"],
|
|
1626
2286
|
GitPullRequest: ["development"],
|
|
2287
|
+
GitPullRequestArrow: ["development", "arrows"],
|
|
2288
|
+
GitPullRequestClosed: ["development"],
|
|
2289
|
+
GitPullRequestCreate: ["development"],
|
|
2290
|
+
GitPullRequestCreateArrow: ["development", "arrows"],
|
|
2291
|
+
GitPullRequestDraft: ["development"],
|
|
1627
2292
|
GlassWater: ["food-beverage"],
|
|
1628
2293
|
Globe2: ["navigation"],
|
|
2294
|
+
GlobeLock: [
|
|
2295
|
+
"security",
|
|
2296
|
+
"development",
|
|
2297
|
+
"devices"
|
|
2298
|
+
],
|
|
1629
2299
|
Goal: ["gaming"],
|
|
1630
2300
|
Gpu: ["devices", "gaming"],
|
|
1631
2301
|
GraduationCap: ["buildings"],
|
|
@@ -1657,6 +2327,7 @@ const CATEGORIES = {
|
|
|
1657
2327
|
"finance",
|
|
1658
2328
|
"security"
|
|
1659
2329
|
],
|
|
2330
|
+
HardDrive: ["development", "devices"],
|
|
1660
2331
|
HardDriveDownload: [
|
|
1661
2332
|
"development",
|
|
1662
2333
|
"devices",
|
|
@@ -1818,8 +2489,23 @@ const CATEGORIES = {
|
|
|
1818
2489
|
InspectionPanel: ["tools"],
|
|
1819
2490
|
JapaneseYen: ["finance"],
|
|
1820
2491
|
Joystick: ["gaming", "devices"],
|
|
2492
|
+
Kanban: [
|
|
2493
|
+
"charts",
|
|
2494
|
+
"development",
|
|
2495
|
+
"design"
|
|
2496
|
+
],
|
|
1821
2497
|
Key: ["security", "account"],
|
|
2498
|
+
Keyboard: [
|
|
2499
|
+
"text",
|
|
2500
|
+
"devices",
|
|
2501
|
+
"development"
|
|
2502
|
+
],
|
|
1822
2503
|
KeyboardMusic: ["multimedia", "devices"],
|
|
2504
|
+
KeyboardOff: [
|
|
2505
|
+
"devices",
|
|
2506
|
+
"text",
|
|
2507
|
+
"development"
|
|
2508
|
+
],
|
|
1823
2509
|
LampCeiling: ["home"],
|
|
1824
2510
|
LandPlot: [
|
|
1825
2511
|
"design",
|
|
@@ -1871,6 +2557,8 @@ const CATEGORIES = {
|
|
|
1871
2557
|
LineChart: ["charts"],
|
|
1872
2558
|
Link: ["text", "account"],
|
|
1873
2559
|
ListCheck: ["text"],
|
|
2560
|
+
ListIndentDecrease: ["text", "development"],
|
|
2561
|
+
ListIndentIncrease: ["text", "development"],
|
|
1874
2562
|
ListTree: [
|
|
1875
2563
|
"files",
|
|
1876
2564
|
"text",
|
|
@@ -2016,6 +2704,11 @@ const CATEGORIES = {
|
|
|
2016
2704
|
],
|
|
2017
2705
|
MinusCircle: ["math"],
|
|
2018
2706
|
MonitorCheck: ["connectivity", "devices"],
|
|
2707
|
+
MonitorCloud: [
|
|
2708
|
+
"connectivity",
|
|
2709
|
+
"devices",
|
|
2710
|
+
"development"
|
|
2711
|
+
],
|
|
2019
2712
|
Moon: ["accessibility"],
|
|
2020
2713
|
MoreHorizontal: ["layout", "development"],
|
|
2021
2714
|
Mountain: ["nature", "gaming"],
|
|
@@ -2023,6 +2716,7 @@ const CATEGORIES = {
|
|
|
2023
2716
|
Music2: ["multimedia", "files"],
|
|
2024
2717
|
Music3: ["multimedia", "files"],
|
|
2025
2718
|
Music4: ["multimedia", "files"],
|
|
2719
|
+
Network: ["development"],
|
|
2026
2720
|
Newspaper: ["multimedia", "communication"],
|
|
2027
2721
|
Nfc: [
|
|
2028
2722
|
"communication",
|
|
@@ -2052,12 +2746,17 @@ const CATEGORIES = {
|
|
|
2052
2746
|
"text",
|
|
2053
2747
|
"science"
|
|
2054
2748
|
],
|
|
2749
|
+
Option: ["development"],
|
|
2055
2750
|
Orbit: ["science"],
|
|
2056
2751
|
Origami: ["animals", "design"],
|
|
2057
2752
|
Package: ["files", "development"],
|
|
2058
2753
|
Package2: ["files", "development"],
|
|
2754
|
+
PackageCheck: ["development"],
|
|
2755
|
+
PackageMinus: ["development"],
|
|
2059
2756
|
PackageOpen: ["files", "development"],
|
|
2757
|
+
PackagePlus: ["development"],
|
|
2060
2758
|
PackageSearch: ["files", "development"],
|
|
2759
|
+
PackageX: ["development"],
|
|
2061
2760
|
PaintBucket: ["design", "tools"],
|
|
2062
2761
|
PaintRoller: [
|
|
2063
2762
|
"text",
|
|
@@ -2085,6 +2784,16 @@ const CATEGORIES = {
|
|
|
2085
2784
|
"photography"
|
|
2086
2785
|
],
|
|
2087
2786
|
Panda: ["animals"],
|
|
2787
|
+
PanelsTopLeft: [
|
|
2788
|
+
"layout",
|
|
2789
|
+
"design",
|
|
2790
|
+
"development"
|
|
2791
|
+
],
|
|
2792
|
+
PanelTop: [
|
|
2793
|
+
"layout",
|
|
2794
|
+
"design",
|
|
2795
|
+
"development"
|
|
2796
|
+
],
|
|
2088
2797
|
Paperclip: [
|
|
2089
2798
|
"text",
|
|
2090
2799
|
"design",
|
|
@@ -2158,6 +2867,7 @@ const CATEGORIES = {
|
|
|
2158
2867
|
"devices",
|
|
2159
2868
|
"communication"
|
|
2160
2869
|
],
|
|
2870
|
+
Pi: ["development", "math"],
|
|
2161
2871
|
Pickaxe: ["tools", "gaming"],
|
|
2162
2872
|
PieChart: ["charts", "files"],
|
|
2163
2873
|
PiggyBank: ["finance"],
|
|
@@ -2176,6 +2886,7 @@ const CATEGORIES = {
|
|
|
2176
2886
|
PlaneLanding: ["transportation", "travel"],
|
|
2177
2887
|
PlaneTakeoff: ["transportation", "travel"],
|
|
2178
2888
|
PlayCircle: ["multimedia"],
|
|
2889
|
+
Plug: ["devices", "development"],
|
|
2179
2890
|
Plug2: ["devices", "development"],
|
|
2180
2891
|
Plus: [
|
|
2181
2892
|
"math",
|
|
@@ -2225,6 +2936,7 @@ const CATEGORIES = {
|
|
|
2225
2936
|
QrCode: ["development", "social"],
|
|
2226
2937
|
Rabbit: ["animals"],
|
|
2227
2938
|
Radiation: ["science"],
|
|
2939
|
+
Radical: ["development", "math"],
|
|
2228
2940
|
Radio: [
|
|
2229
2941
|
"devices",
|
|
2230
2942
|
"multimedia",
|
|
@@ -2259,6 +2971,8 @@ const CATEGORIES = {
|
|
|
2259
2971
|
ReceiptSwissFranc: ["finance", "travel"],
|
|
2260
2972
|
ReceiptText: ["finance", "travel"],
|
|
2261
2973
|
ReceiptTurkishLira: ["finance", "travel"],
|
|
2974
|
+
RectangleCircle: ["development", "text"],
|
|
2975
|
+
RectangleEllipsis: ["text", "development"],
|
|
2262
2976
|
RectangleGoggles: [
|
|
2263
2977
|
"devices",
|
|
2264
2978
|
"gaming",
|
|
@@ -2269,6 +2983,7 @@ const CATEGORIES = {
|
|
|
2269
2983
|
Redo2: ["text", "arrows"],
|
|
2270
2984
|
RefreshCcwDot: ["arrows", "development"],
|
|
2271
2985
|
Refrigerator: ["food-beverage", "home"],
|
|
2986
|
+
Regex: ["text", "development"],
|
|
2272
2987
|
Repeat1: ["multimedia"],
|
|
2273
2988
|
Repeat2: [
|
|
2274
2989
|
"arrows",
|
|
@@ -2313,6 +3028,12 @@ const CATEGORIES = {
|
|
|
2313
3028
|
"tools",
|
|
2314
3029
|
"arrows"
|
|
2315
3030
|
],
|
|
3031
|
+
Router: [
|
|
3032
|
+
"development",
|
|
3033
|
+
"devices",
|
|
3034
|
+
"connectivity",
|
|
3035
|
+
"home"
|
|
3036
|
+
],
|
|
2316
3037
|
Rss: ["development", "social"],
|
|
2317
3038
|
Ruler: [
|
|
2318
3039
|
"tools",
|
|
@@ -2399,7 +3120,10 @@ const CATEGORIES = {
|
|
|
2399
3120
|
],
|
|
2400
3121
|
SearchSlash: ["text", "social"],
|
|
2401
3122
|
SearchX: ["text", "social"],
|
|
3123
|
+
Server: ["development", "devices"],
|
|
2402
3124
|
ServerCog: ["development", "devices"],
|
|
3125
|
+
ServerCrash: ["development", "devices"],
|
|
3126
|
+
ServerOff: ["development", "devices"],
|
|
2403
3127
|
Settings: ["account"],
|
|
2404
3128
|
Settings2: ["account"],
|
|
2405
3129
|
Shapes: ["shapes", "gaming"],
|
|
@@ -2478,6 +3202,11 @@ const CATEGORIES = {
|
|
|
2478
3202
|
"development",
|
|
2479
3203
|
"gaming"
|
|
2480
3204
|
],
|
|
3205
|
+
ShieldUser: [
|
|
3206
|
+
"account",
|
|
3207
|
+
"security",
|
|
3208
|
+
"development"
|
|
3209
|
+
],
|
|
2481
3210
|
ShieldX: [
|
|
2482
3211
|
"account",
|
|
2483
3212
|
"security",
|
|
@@ -2526,6 +3255,7 @@ const CATEGORIES = {
|
|
|
2526
3255
|
],
|
|
2527
3256
|
SkipBack: ["multimedia", "arrows"],
|
|
2528
3257
|
Skull: ["gaming"],
|
|
3258
|
+
Slash: ["development", "math"],
|
|
2529
3259
|
SlidersHorizontal: ["account"],
|
|
2530
3260
|
SmartphoneCharging: ["connectivity", "devices"],
|
|
2531
3261
|
SmartphoneNfc: [
|
|
@@ -2559,12 +3289,15 @@ const CATEGORIES = {
|
|
|
2559
3289
|
"weather"
|
|
2560
3290
|
],
|
|
2561
3291
|
Speaker: ["multimedia", "devices"],
|
|
3292
|
+
SpellCheck: ["text", "development"],
|
|
3293
|
+
SpellCheck2: ["text", "development"],
|
|
2562
3294
|
SplinePointer: [
|
|
2563
3295
|
"arrows",
|
|
2564
3296
|
"cursors",
|
|
2565
3297
|
"design",
|
|
2566
3298
|
"tools"
|
|
2567
3299
|
],
|
|
3300
|
+
Split: ["development", "arrows"],
|
|
2568
3301
|
Spool: [
|
|
2569
3302
|
"communication",
|
|
2570
3303
|
"tools",
|
|
@@ -2594,6 +3327,12 @@ const CATEGORIES = {
|
|
|
2594
3327
|
SquareArrowDownRight: ["arrows", "gaming"],
|
|
2595
3328
|
SquareArrowOutUpRight: ["arrows", "social"],
|
|
2596
3329
|
SquareArrowUpRight: ["arrows", "social"],
|
|
3330
|
+
SquareAsterisk: [
|
|
3331
|
+
"text",
|
|
3332
|
+
"security",
|
|
3333
|
+
"math",
|
|
3334
|
+
"development"
|
|
3335
|
+
],
|
|
2597
3336
|
SquareBottomDashedScissors: [
|
|
2598
3337
|
"text",
|
|
2599
3338
|
"design",
|
|
@@ -2608,14 +3347,37 @@ const CATEGORIES = {
|
|
|
2608
3347
|
"design"
|
|
2609
3348
|
],
|
|
2610
3349
|
SquareCheck: ["notifications"],
|
|
3350
|
+
SquareChevronRight: [
|
|
3351
|
+
"arrows",
|
|
3352
|
+
"navigation",
|
|
3353
|
+
"development"
|
|
3354
|
+
],
|
|
3355
|
+
SquareCode: ["text", "development"],
|
|
2611
3356
|
SquareDashedBottom: ["development", "files"],
|
|
2612
3357
|
SquareDashedBottomCode: ["development", "files"],
|
|
3358
|
+
SquareDashedKanban: [
|
|
3359
|
+
"charts",
|
|
3360
|
+
"development",
|
|
3361
|
+
"design"
|
|
3362
|
+
],
|
|
2613
3363
|
SquareDashedMousePointer: [
|
|
2614
3364
|
"arrows",
|
|
2615
3365
|
"cursors",
|
|
2616
3366
|
"development",
|
|
2617
3367
|
"tools"
|
|
2618
3368
|
],
|
|
3369
|
+
SquareDashedTopSolid: [
|
|
3370
|
+
"design",
|
|
3371
|
+
"development",
|
|
3372
|
+
"layout"
|
|
3373
|
+
],
|
|
3374
|
+
SquareDot: ["development"],
|
|
3375
|
+
SquareFunction: ["development", "math"],
|
|
3376
|
+
SquareKanban: [
|
|
3377
|
+
"charts",
|
|
3378
|
+
"development",
|
|
3379
|
+
"design"
|
|
3380
|
+
],
|
|
2619
3381
|
SquareLibrary: [
|
|
2620
3382
|
"text",
|
|
2621
3383
|
"photography",
|
|
@@ -2642,6 +3404,7 @@ const CATEGORIES = {
|
|
|
2642
3404
|
"shopping",
|
|
2643
3405
|
"math"
|
|
2644
3406
|
],
|
|
3407
|
+
SquarePi: ["development", "math"],
|
|
2645
3408
|
SquarePlay: ["arrows", "multimedia"],
|
|
2646
3409
|
SquarePlus: [
|
|
2647
3410
|
"math",
|
|
@@ -2649,6 +3412,12 @@ const CATEGORIES = {
|
|
|
2649
3412
|
"development",
|
|
2650
3413
|
"text"
|
|
2651
3414
|
],
|
|
3415
|
+
SquareRadical: ["development", "math"],
|
|
3416
|
+
SquareRoundCorner: [
|
|
3417
|
+
"design",
|
|
3418
|
+
"development",
|
|
3419
|
+
"layout"
|
|
3420
|
+
],
|
|
2652
3421
|
SquareScissors: [
|
|
2653
3422
|
"text",
|
|
2654
3423
|
"design",
|
|
@@ -2656,12 +3425,19 @@ const CATEGORIES = {
|
|
|
2656
3425
|
"files",
|
|
2657
3426
|
"development"
|
|
2658
3427
|
],
|
|
3428
|
+
SquareSlash: ["development", "math"],
|
|
2659
3429
|
SquareStack: [
|
|
2660
3430
|
"text",
|
|
2661
3431
|
"files",
|
|
2662
3432
|
"development"
|
|
2663
3433
|
],
|
|
2664
3434
|
SquareStar: ["sports", "gaming"],
|
|
3435
|
+
SquareTerminal: ["development"],
|
|
3436
|
+
SquircleDashed: [
|
|
3437
|
+
"development",
|
|
3438
|
+
"shapes",
|
|
3439
|
+
"design"
|
|
3440
|
+
],
|
|
2665
3441
|
Squirrel: ["animals"],
|
|
2666
3442
|
Stamp: [
|
|
2667
3443
|
"design",
|
|
@@ -2785,6 +3561,16 @@ const CATEGORIES = {
|
|
|
2785
3561
|
Timer: ["time"],
|
|
2786
3562
|
TimerOff: ["time"],
|
|
2787
3563
|
TimerReset: ["time"],
|
|
3564
|
+
ToggleLeft: [
|
|
3565
|
+
"layout",
|
|
3566
|
+
"account",
|
|
3567
|
+
"development"
|
|
3568
|
+
],
|
|
3569
|
+
ToggleRight: [
|
|
3570
|
+
"layout",
|
|
3571
|
+
"account",
|
|
3572
|
+
"development"
|
|
3573
|
+
],
|
|
2788
3574
|
ToolCase: [
|
|
2789
3575
|
"tools",
|
|
2790
3576
|
"development",
|
|
@@ -2809,12 +3595,18 @@ const CATEGORIES = {
|
|
|
2809
3595
|
Trash2: ["files", "mail"],
|
|
2810
3596
|
Trees: ["nature", "sustainability"],
|
|
2811
3597
|
TrendingDown: ["charts", "arrows"],
|
|
3598
|
+
TriangleAlert: [
|
|
3599
|
+
"notifications",
|
|
3600
|
+
"shapes",
|
|
3601
|
+
"development"
|
|
3602
|
+
],
|
|
2812
3603
|
Trophy: ["sports", "gaming"],
|
|
2813
3604
|
TurkishLira: ["finance"],
|
|
2814
3605
|
Turtle: ["animals"],
|
|
2815
3606
|
TvMinimalPlay: ["devices", "multimedia"],
|
|
2816
3607
|
Undo2: ["text", "arrows"],
|
|
2817
3608
|
Ungroup: ["shapes", "files"],
|
|
3609
|
+
Unplug: ["devices", "development"],
|
|
2818
3610
|
Upload: ["arrows", "files"],
|
|
2819
3611
|
UploadCloud: ["arrows", "files"],
|
|
2820
3612
|
Usb: [
|
|
@@ -2838,6 +3630,7 @@ const CATEGORIES = {
|
|
|
2838
3630
|
"travel",
|
|
2839
3631
|
"navigation"
|
|
2840
3632
|
],
|
|
3633
|
+
Variable: ["development", "math"],
|
|
2841
3634
|
Vault: [
|
|
2842
3635
|
"security",
|
|
2843
3636
|
"travel",
|
|
@@ -2940,6 +3733,7 @@ const CATEGORIES = {
|
|
|
2940
3733
|
],
|
|
2941
3734
|
Wine: ["food-beverage"],
|
|
2942
3735
|
WineOff: ["food-beverage"],
|
|
3736
|
+
Workflow: ["development"],
|
|
2943
3737
|
Worm: ["animals", "security"],
|
|
2944
3738
|
Wrench: [
|
|
2945
3739
|
"account",
|
|
@@ -2992,6 +3786,8 @@ const MAP = {
|
|
|
2992
3786
|
AlarmSmoke,
|
|
2993
3787
|
Album,
|
|
2994
3788
|
AlertCircle,
|
|
3789
|
+
Ampersand,
|
|
3790
|
+
Ampersands,
|
|
2995
3791
|
Amphora,
|
|
2996
3792
|
Anchor,
|
|
2997
3793
|
Anvil,
|
|
@@ -3014,8 +3810,10 @@ const MAP = {
|
|
|
3014
3810
|
ArrowDownToLine,
|
|
3015
3811
|
ArrowLeft,
|
|
3016
3812
|
ArrowRight,
|
|
3813
|
+
ArrowRightToLine,
|
|
3017
3814
|
ArrowUpFromLine,
|
|
3018
3815
|
ArrowUpToLine,
|
|
3816
|
+
Asterisk,
|
|
3019
3817
|
AtSign,
|
|
3020
3818
|
Atom,
|
|
3021
3819
|
Award,
|
|
@@ -3063,12 +3861,14 @@ const MAP = {
|
|
|
3063
3861
|
BetweenVerticalEnd,
|
|
3064
3862
|
BetweenVerticalStart,
|
|
3065
3863
|
Bike,
|
|
3864
|
+
Binary,
|
|
3066
3865
|
Binoculars,
|
|
3067
3866
|
Biohazard,
|
|
3068
3867
|
Bird,
|
|
3069
3868
|
Birdhouse,
|
|
3070
3869
|
Bitcoin,
|
|
3071
3870
|
Blend,
|
|
3871
|
+
Blocks,
|
|
3072
3872
|
BluetoothConnected,
|
|
3073
3873
|
Bolt,
|
|
3074
3874
|
Bomb,
|
|
@@ -3078,6 +3878,8 @@ const MAP = {
|
|
|
3078
3878
|
BookAlert,
|
|
3079
3879
|
BookCheck,
|
|
3080
3880
|
BookCopy,
|
|
3881
|
+
BookDashed,
|
|
3882
|
+
BookDown,
|
|
3081
3883
|
BookHeart,
|
|
3082
3884
|
BookImage,
|
|
3083
3885
|
BookKey,
|
|
@@ -3086,10 +3888,13 @@ const MAP = {
|
|
|
3086
3888
|
BookMinus,
|
|
3087
3889
|
BookOpen,
|
|
3088
3890
|
BookOpenCheck,
|
|
3891
|
+
BookOpenText,
|
|
3089
3892
|
BookPlus,
|
|
3090
3893
|
BookSearch,
|
|
3091
3894
|
BookText,
|
|
3092
3895
|
BookType,
|
|
3896
|
+
BookUp,
|
|
3897
|
+
BookUp2,
|
|
3093
3898
|
BookUser,
|
|
3094
3899
|
BookX,
|
|
3095
3900
|
Bookmark,
|
|
@@ -3150,6 +3955,8 @@ const MAP = {
|
|
|
3150
3955
|
CarFront,
|
|
3151
3956
|
Caravan,
|
|
3152
3957
|
Carrot,
|
|
3958
|
+
CaseLower,
|
|
3959
|
+
CaseUpper,
|
|
3153
3960
|
CassetteTape,
|
|
3154
3961
|
Castle,
|
|
3155
3962
|
Cat,
|
|
@@ -3253,6 +4060,8 @@ const MAP = {
|
|
|
3253
4060
|
Cloud,
|
|
3254
4061
|
CloudAlert,
|
|
3255
4062
|
CloudBackup,
|
|
4063
|
+
CloudCheck,
|
|
4064
|
+
CloudCog,
|
|
3256
4065
|
CloudDownload,
|
|
3257
4066
|
CloudSync,
|
|
3258
4067
|
CloudUpload,
|
|
@@ -3265,15 +4074,21 @@ const MAP = {
|
|
|
3265
4074
|
Cog,
|
|
3266
4075
|
Coins,
|
|
3267
4076
|
Combine,
|
|
4077
|
+
Command,
|
|
3268
4078
|
Compass,
|
|
4079
|
+
Component,
|
|
3269
4080
|
Computer,
|
|
3270
4081
|
ConciergeBell,
|
|
4082
|
+
Construction,
|
|
3271
4083
|
Contact,
|
|
3272
4084
|
ContactRound,
|
|
4085
|
+
Container,
|
|
3273
4086
|
Contrast,
|
|
3274
4087
|
Cookie,
|
|
3275
4088
|
CookingPot,
|
|
3276
4089
|
CopyCheck,
|
|
4090
|
+
CopySlash,
|
|
4091
|
+
CornerDownRight,
|
|
3277
4092
|
Cpu,
|
|
3278
4093
|
CreditCard,
|
|
3279
4094
|
Croissant,
|
|
@@ -3285,6 +4100,7 @@ const MAP = {
|
|
|
3285
4100
|
Currency,
|
|
3286
4101
|
Database,
|
|
3287
4102
|
DatabaseBackup,
|
|
4103
|
+
DatabaseZap,
|
|
3288
4104
|
Dessert,
|
|
3289
4105
|
Diameter,
|
|
3290
4106
|
Diamond,
|
|
@@ -3300,6 +4116,7 @@ const MAP = {
|
|
|
3300
4116
|
Dices,
|
|
3301
4117
|
Diff,
|
|
3302
4118
|
Disc2,
|
|
4119
|
+
Divide,
|
|
3303
4120
|
DivideCircle,
|
|
3304
4121
|
DnaOff,
|
|
3305
4122
|
Dock,
|
|
@@ -3317,12 +4134,17 @@ const MAP = {
|
|
|
3317
4134
|
DropletOff,
|
|
3318
4135
|
Drum,
|
|
3319
4136
|
Drumstick,
|
|
4137
|
+
Dumbbell,
|
|
4138
|
+
EarthLock,
|
|
3320
4139
|
Eclipse,
|
|
3321
4140
|
Edit,
|
|
3322
4141
|
Edit3,
|
|
3323
4142
|
Egg,
|
|
3324
4143
|
EggFried,
|
|
3325
4144
|
EggOff,
|
|
4145
|
+
Ellipsis,
|
|
4146
|
+
Equal,
|
|
4147
|
+
EqualNot,
|
|
3326
4148
|
EthernetPort,
|
|
3327
4149
|
Euro,
|
|
3328
4150
|
ExternalLink,
|
|
@@ -3396,6 +4218,8 @@ const MAP = {
|
|
|
3396
4218
|
FishingHook,
|
|
3397
4219
|
Flag,
|
|
3398
4220
|
FlagOff,
|
|
4221
|
+
FlagTriangleLeft,
|
|
4222
|
+
FlagTriangleRight,
|
|
3399
4223
|
Flame,
|
|
3400
4224
|
FlameKindling,
|
|
3401
4225
|
Flashlight,
|
|
@@ -3439,6 +4263,7 @@ const MAP = {
|
|
|
3439
4263
|
FolderX,
|
|
3440
4264
|
Folders,
|
|
3441
4265
|
Footprints,
|
|
4266
|
+
Form,
|
|
3442
4267
|
Forward,
|
|
3443
4268
|
Frame,
|
|
3444
4269
|
Fullscreen,
|
|
@@ -3459,10 +4284,24 @@ const MAP = {
|
|
|
3459
4284
|
Ghost,
|
|
3460
4285
|
Gift,
|
|
3461
4286
|
GitBranch,
|
|
4287
|
+
GitBranchMinus,
|
|
4288
|
+
GitBranchPlus,
|
|
4289
|
+
GitCommitHorizontal,
|
|
4290
|
+
GitCommitVertical,
|
|
4291
|
+
GitCompare,
|
|
4292
|
+
GitCompareArrows,
|
|
4293
|
+
GitFork,
|
|
4294
|
+
GitGraph,
|
|
3462
4295
|
GitMerge,
|
|
3463
4296
|
GitPullRequest,
|
|
4297
|
+
GitPullRequestArrow,
|
|
4298
|
+
GitPullRequestClosed,
|
|
4299
|
+
GitPullRequestCreate,
|
|
4300
|
+
GitPullRequestCreateArrow,
|
|
4301
|
+
GitPullRequestDraft,
|
|
3464
4302
|
GlassWater,
|
|
3465
4303
|
Globe2,
|
|
4304
|
+
GlobeLock,
|
|
3466
4305
|
Goal,
|
|
3467
4306
|
Gpu,
|
|
3468
4307
|
GraduationCap,
|
|
@@ -3479,6 +4318,7 @@ const MAP = {
|
|
|
3479
4318
|
HandPlatter,
|
|
3480
4319
|
Handbag,
|
|
3481
4320
|
Handshake,
|
|
4321
|
+
HardDrive,
|
|
3482
4322
|
HardDriveDownload,
|
|
3483
4323
|
HardDriveUpload,
|
|
3484
4324
|
HardHat,
|
|
@@ -3523,8 +4363,11 @@ const MAP = {
|
|
|
3523
4363
|
InspectionPanel,
|
|
3524
4364
|
JapaneseYen,
|
|
3525
4365
|
Joystick,
|
|
4366
|
+
Kanban,
|
|
3526
4367
|
Key,
|
|
4368
|
+
Keyboard,
|
|
3527
4369
|
KeyboardMusic,
|
|
4370
|
+
KeyboardOff,
|
|
3528
4371
|
LampCeiling,
|
|
3529
4372
|
LandPlot,
|
|
3530
4373
|
Landmark,
|
|
@@ -3541,6 +4384,8 @@ const MAP = {
|
|
|
3541
4384
|
LineChart,
|
|
3542
4385
|
Link,
|
|
3543
4386
|
ListCheck,
|
|
4387
|
+
ListIndentDecrease,
|
|
4388
|
+
ListIndentIncrease,
|
|
3544
4389
|
ListTree,
|
|
3545
4390
|
LoaderCircle,
|
|
3546
4391
|
Lock,
|
|
@@ -3607,6 +4452,7 @@ const MAP = {
|
|
|
3607
4452
|
Minus,
|
|
3608
4453
|
MinusCircle,
|
|
3609
4454
|
MonitorCheck,
|
|
4455
|
+
MonitorCloud,
|
|
3610
4456
|
Moon,
|
|
3611
4457
|
MoreHorizontal,
|
|
3612
4458
|
Mountain,
|
|
@@ -3614,6 +4460,7 @@ const MAP = {
|
|
|
3614
4460
|
Music2,
|
|
3615
4461
|
Music3,
|
|
3616
4462
|
Music4,
|
|
4463
|
+
Network,
|
|
3617
4464
|
Newspaper,
|
|
3618
4465
|
Nfc,
|
|
3619
4466
|
Notebook,
|
|
@@ -3625,18 +4472,25 @@ const MAP = {
|
|
|
3625
4472
|
Nut,
|
|
3626
4473
|
NutOff,
|
|
3627
4474
|
Omega,
|
|
4475
|
+
Option,
|
|
3628
4476
|
Orbit,
|
|
3629
4477
|
Origami,
|
|
3630
4478
|
Package,
|
|
3631
4479
|
Package2,
|
|
4480
|
+
PackageCheck,
|
|
4481
|
+
PackageMinus,
|
|
3632
4482
|
PackageOpen,
|
|
4483
|
+
PackagePlus,
|
|
3633
4484
|
PackageSearch,
|
|
4485
|
+
PackageX,
|
|
3634
4486
|
PaintBucket,
|
|
3635
4487
|
PaintRoller,
|
|
3636
4488
|
Paintbrush,
|
|
3637
4489
|
PaintbrushVertical,
|
|
3638
4490
|
Palette,
|
|
3639
4491
|
Panda,
|
|
4492
|
+
PanelsTopLeft,
|
|
4493
|
+
PanelTop,
|
|
3640
4494
|
Paperclip,
|
|
3641
4495
|
Parentheses,
|
|
3642
4496
|
PartyPopper,
|
|
@@ -3655,6 +4509,7 @@ const MAP = {
|
|
|
3655
4509
|
PersonStanding,
|
|
3656
4510
|
PhilippinePeso,
|
|
3657
4511
|
Phone,
|
|
4512
|
+
Pi,
|
|
3658
4513
|
Pickaxe,
|
|
3659
4514
|
PieChart,
|
|
3660
4515
|
PiggyBank,
|
|
@@ -3665,6 +4520,7 @@ const MAP = {
|
|
|
3665
4520
|
PlaneLanding,
|
|
3666
4521
|
PlaneTakeoff,
|
|
3667
4522
|
PlayCircle,
|
|
4523
|
+
Plug,
|
|
3668
4524
|
Plug2,
|
|
3669
4525
|
Plus,
|
|
3670
4526
|
PlusCircle,
|
|
@@ -3682,6 +4538,7 @@ const MAP = {
|
|
|
3682
4538
|
QrCode,
|
|
3683
4539
|
Rabbit,
|
|
3684
4540
|
Radiation,
|
|
4541
|
+
Radical,
|
|
3685
4542
|
Radio,
|
|
3686
4543
|
RadioReceiver,
|
|
3687
4544
|
RadioTower,
|
|
@@ -3699,11 +4556,14 @@ const MAP = {
|
|
|
3699
4556
|
ReceiptSwissFranc,
|
|
3700
4557
|
ReceiptText,
|
|
3701
4558
|
ReceiptTurkishLira,
|
|
4559
|
+
RectangleCircle,
|
|
4560
|
+
RectangleEllipsis,
|
|
3702
4561
|
RectangleGoggles,
|
|
3703
4562
|
Recycle,
|
|
3704
4563
|
Redo2,
|
|
3705
4564
|
RefreshCcwDot,
|
|
3706
4565
|
Refrigerator,
|
|
4566
|
+
Regex,
|
|
3707
4567
|
Repeat1,
|
|
3708
4568
|
Repeat2,
|
|
3709
4569
|
Rewind,
|
|
@@ -3714,6 +4574,7 @@ const MAP = {
|
|
|
3714
4574
|
RotateCcwSquare,
|
|
3715
4575
|
RotateCw,
|
|
3716
4576
|
RotateCwSquare,
|
|
4577
|
+
Router,
|
|
3717
4578
|
Rss,
|
|
3718
4579
|
Ruler,
|
|
3719
4580
|
RulerDimensionLine,
|
|
@@ -3745,7 +4606,10 @@ const MAP = {
|
|
|
3745
4606
|
SearchCode,
|
|
3746
4607
|
SearchSlash,
|
|
3747
4608
|
SearchX,
|
|
4609
|
+
Server,
|
|
3748
4610
|
ServerCog,
|
|
4611
|
+
ServerCrash,
|
|
4612
|
+
ServerOff,
|
|
3749
4613
|
Settings,
|
|
3750
4614
|
Settings2,
|
|
3751
4615
|
Shapes,
|
|
@@ -3763,6 +4627,7 @@ const MAP = {
|
|
|
3763
4627
|
ShieldOff,
|
|
3764
4628
|
ShieldPlus,
|
|
3765
4629
|
ShieldQuestionMark,
|
|
4630
|
+
ShieldUser,
|
|
3766
4631
|
ShieldX,
|
|
3767
4632
|
Ship,
|
|
3768
4633
|
ShipWheel,
|
|
@@ -3780,6 +4645,7 @@ const MAP = {
|
|
|
3780
4645
|
SignpostBig,
|
|
3781
4646
|
SkipBack,
|
|
3782
4647
|
Skull,
|
|
4648
|
+
Slash,
|
|
3783
4649
|
SlidersHorizontal,
|
|
3784
4650
|
SmartphoneCharging,
|
|
3785
4651
|
SmartphoneNfc,
|
|
@@ -3794,7 +4660,10 @@ const MAP = {
|
|
|
3794
4660
|
Sparkle,
|
|
3795
4661
|
Sparkles,
|
|
3796
4662
|
Speaker,
|
|
4663
|
+
SpellCheck,
|
|
4664
|
+
SpellCheck2,
|
|
3797
4665
|
SplinePointer,
|
|
4666
|
+
Split,
|
|
3798
4667
|
Spool,
|
|
3799
4668
|
Spotlight,
|
|
3800
4669
|
SprayCan,
|
|
@@ -3806,21 +4675,35 @@ const MAP = {
|
|
|
3806
4675
|
SquareArrowDownRight,
|
|
3807
4676
|
SquareArrowOutUpRight,
|
|
3808
4677
|
SquareArrowUpRight,
|
|
4678
|
+
SquareAsterisk,
|
|
3809
4679
|
SquareBottomDashedScissors,
|
|
3810
4680
|
SquareChartGantt,
|
|
3811
4681
|
SquareCheck,
|
|
4682
|
+
SquareChevronRight,
|
|
4683
|
+
SquareCode,
|
|
3812
4684
|
SquareDashedBottom,
|
|
3813
4685
|
SquareDashedBottomCode,
|
|
4686
|
+
SquareDashedKanban,
|
|
3814
4687
|
SquareDashedMousePointer,
|
|
4688
|
+
SquareDashedTopSolid,
|
|
4689
|
+
SquareDot,
|
|
4690
|
+
SquareFunction,
|
|
4691
|
+
SquareKanban,
|
|
3815
4692
|
SquareLibrary,
|
|
3816
4693
|
SquareMinus,
|
|
3817
4694
|
SquareMousePointer,
|
|
3818
4695
|
SquarePercent,
|
|
4696
|
+
SquarePi,
|
|
3819
4697
|
SquarePlay,
|
|
3820
4698
|
SquarePlus,
|
|
4699
|
+
SquareRadical,
|
|
4700
|
+
SquareRoundCorner,
|
|
3821
4701
|
SquareScissors,
|
|
4702
|
+
SquareSlash,
|
|
3822
4703
|
SquareStack,
|
|
3823
4704
|
SquareStar,
|
|
4705
|
+
SquareTerminal,
|
|
4706
|
+
SquircleDashed,
|
|
3824
4707
|
Squirrel,
|
|
3825
4708
|
Stamp,
|
|
3826
4709
|
Star,
|
|
@@ -3876,6 +4759,8 @@ const MAP = {
|
|
|
3876
4759
|
Timer,
|
|
3877
4760
|
TimerOff,
|
|
3878
4761
|
TimerReset,
|
|
4762
|
+
ToggleLeft,
|
|
4763
|
+
ToggleRight,
|
|
3879
4764
|
ToolCase,
|
|
3880
4765
|
Toolbox,
|
|
3881
4766
|
Torus,
|
|
@@ -3887,12 +4772,14 @@ const MAP = {
|
|
|
3887
4772
|
Trash2,
|
|
3888
4773
|
Trees,
|
|
3889
4774
|
TrendingDown,
|
|
4775
|
+
TriangleAlert,
|
|
3890
4776
|
Trophy,
|
|
3891
4777
|
TurkishLira,
|
|
3892
4778
|
Turtle,
|
|
3893
4779
|
TvMinimalPlay,
|
|
3894
4780
|
Undo2,
|
|
3895
4781
|
Ungroup,
|
|
4782
|
+
Unplug,
|
|
3896
4783
|
Upload,
|
|
3897
4784
|
UploadCloud,
|
|
3898
4785
|
Usb,
|
|
@@ -3904,6 +4791,7 @@ const MAP = {
|
|
|
3904
4791
|
UsersRound,
|
|
3905
4792
|
Utensils,
|
|
3906
4793
|
UtensilsCrossed,
|
|
4794
|
+
Variable,
|
|
3907
4795
|
Vault,
|
|
3908
4796
|
VectorSquare,
|
|
3909
4797
|
Vegan,
|
|
@@ -3933,6 +4821,7 @@ const MAP = {
|
|
|
3933
4821
|
WifiCog,
|
|
3934
4822
|
Wine,
|
|
3935
4823
|
WineOff,
|
|
4824
|
+
Workflow,
|
|
3936
4825
|
Worm,
|
|
3937
4826
|
Wrench,
|
|
3938
4827
|
XCircle,
|
|
@@ -4075,4 +4964,4 @@ function IconPicker({ value, onValueChange, valueColor = "white", onColorChange,
|
|
|
4075
4964
|
});
|
|
4076
4965
|
}
|
|
4077
4966
|
//#endregion
|
|
4078
|
-
export {
|
|
4967
|
+
export { InputGroupText as $, FieldSet as A, ComboboxInput as B, FieldContent as C, FieldLabel as D, FieldGroup as E, ComboboxChipsInput as F, ComboboxTrigger as G, ComboboxLabel as H, ComboboxCollection as I, PortalContainerContext as J, ComboboxValue as K, ComboboxContent as L, Combobox$1 as M, ComboboxChip as N, FieldLegend as O, ComboboxChips as P, InputGroupInput as Q, ComboboxEmpty as R, BasicField as S, FieldError as T, ComboboxList as U, ComboboxItem as V, ComboboxSeparator as W, InputGroupAddon as X, InputGroup as Y, InputGroupButton as Z, validate as _, Tabs as a, ColorPicker as at, ComboboxField as b, TabsTrigger as c, colorPalette as ct, Popover as d, InputGroupTextarea as et, PopoverAnchor as f, CalendarDayButton as g, Calendar$1 as h, getIconCategories as i, buttonVariants as it, FieldTitle as j, FieldSeparator as k, Label as l, getContrastForeground as lt, PopoverTrigger as m, getStaticIcon as n, Input as nt, TabsContent as o, THEME_COLORS as ot, PopoverContent as p, useComboboxAnchor as q, PICKER_ICON_NAMES as r, Button as rt, TabsList as s, coerceThemeColor as st, IconPicker as t, Textarea as tt, Field as u, resolveColorHex as ut, Dropzone as v, FieldDescription as w, Spinner as x, Progress as y, ComboboxGroup as z };
|