@reinvented/design 0.3.0 → 1.0.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/package.json +55 -21
- package/src/components/blocks/auth/auth-card/AuthCard.tsx +62 -0
- package/src/components/blocks/auth/auth-card/index.ts +1 -0
- package/src/components/blocks/auth/index.ts +3 -0
- package/src/components/blocks/auth/social-login/SocialLoginGroup.tsx +75 -0
- package/src/components/blocks/auth/social-login/index.ts +1 -0
- package/src/components/blocks/auth/two-factor/TwoFactorForm.tsx +59 -0
- package/src/components/blocks/auth/two-factor/index.ts +1 -0
- package/src/components/blocks/communication/activity-item/ActivityItem.tsx +17 -0
- package/src/components/blocks/communication/activity-item/ActivityItemAvatar.tsx +21 -0
- package/src/components/blocks/communication/activity-item/ActivityItemContent.tsx +16 -0
- package/src/components/blocks/communication/activity-item/index.ts +3 -0
- package/src/components/blocks/communication/chat-bubble/ChatBubble.tsx +21 -0
- package/src/components/blocks/communication/chat-bubble/ChatBubbleAvatar.tsx +19 -0
- package/src/components/blocks/communication/chat-bubble/ChatBubbleMessage.tsx +35 -0
- package/src/components/blocks/communication/chat-bubble/ChatBubbleTimestamp.tsx +15 -0
- package/src/components/blocks/communication/chat-bubble/index.ts +4 -0
- package/src/components/blocks/communication/index.ts +2 -0
- package/src/components/blocks/content/article-header/ArticleHeader.tsx +73 -0
- package/src/components/blocks/content/article-header/index.ts +1 -0
- package/src/components/blocks/content/author-card/AuthorCard.tsx +46 -0
- package/src/components/blocks/content/author-card/index.ts +1 -0
- package/src/components/blocks/content/index.ts +3 -0
- package/src/components/blocks/content/rich-text/RichTextContent.tsx +27 -0
- package/src/components/blocks/content/rich-text/index.ts +1 -0
- package/src/components/blocks/data-management/index.ts +2 -0
- package/src/components/blocks/data-management/kanban/KanbanBoard.tsx +10 -0
- package/src/components/blocks/data-management/kanban/KanbanCard.tsx +102 -0
- package/src/components/blocks/data-management/kanban/KanbanColumn.tsx +41 -0
- package/src/components/blocks/data-management/kanban/index.ts +3 -0
- package/src/components/blocks/data-management/tree-view/TreeItem.tsx +68 -0
- package/src/components/blocks/data-management/tree-view/TreeView.tsx +10 -0
- package/src/components/blocks/data-management/tree-view/index.ts +2 -0
- package/src/components/blocks/data-viz/financial-ticker/FinancialTicker.tsx +35 -0
- package/src/components/blocks/data-viz/financial-ticker/index.ts +1 -0
- package/src/components/blocks/data-viz/index.ts +3 -0
- package/src/components/blocks/data-viz/kpi-card/KpiCard.tsx +61 -0
- package/src/components/blocks/data-viz/kpi-card/index.ts +1 -0
- package/src/components/blocks/data-viz/stat-grid/StatGrid.tsx +28 -0
- package/src/components/blocks/data-viz/stat-grid/index.ts +1 -0
- package/src/components/blocks/ecommerce/index.ts +3 -0
- package/src/components/blocks/ecommerce/pricing-tier/PricingFeatureList.tsx +27 -0
- package/src/components/blocks/ecommerce/pricing-tier/PricingHeader.tsx +25 -0
- package/src/components/blocks/ecommerce/pricing-tier/PricingTier.tsx +31 -0
- package/src/components/blocks/ecommerce/pricing-tier/index.ts +3 -0
- package/src/components/blocks/ecommerce/product-card/ProductCard.tsx +17 -0
- package/src/components/blocks/ecommerce/product-card/ProductCardContent.tsx +15 -0
- package/src/components/blocks/ecommerce/product-card/ProductCardImage.tsx +20 -0
- package/src/components/blocks/ecommerce/product-card/ProductCardPrice.tsx +20 -0
- package/src/components/blocks/ecommerce/product-card/index.ts +4 -0
- package/src/components/blocks/ecommerce/rating-summary/RatingStars.tsx +32 -0
- package/src/components/blocks/ecommerce/rating-summary/index.ts +1 -0
- package/src/components/blocks/feedback/empty-state/EmptyState.tsx +53 -0
- package/src/components/blocks/feedback/empty-state/index.ts +1 -0
- package/src/components/blocks/feedback/error-state/ErrorState.tsx +50 -0
- package/src/components/blocks/feedback/error-state/index.ts +1 -0
- package/src/components/blocks/feedback/index.ts +3 -0
- package/src/components/blocks/feedback/not-found/NotFoundState.tsx +47 -0
- package/src/components/blocks/feedback/not-found/index.ts +1 -0
- package/src/components/blocks/filtering/faceted-sidebar/FacetedGroup.tsx +32 -0
- package/src/components/blocks/filtering/faceted-sidebar/FacetedSidebar.tsx +26 -0
- package/src/components/blocks/filtering/faceted-sidebar/index.ts +2 -0
- package/src/components/blocks/filtering/filter-bar/FilterBar.tsx +85 -0
- package/src/components/blocks/filtering/filter-bar/index.ts +1 -0
- package/src/components/blocks/filtering/index.ts +3 -0
- package/src/components/blocks/filtering/search-result/SearchResultItem.tsx +70 -0
- package/src/components/blocks/filtering/search-result/index.ts +1 -0
- package/src/components/blocks/index.ts +21 -0
- package/src/components/blocks/marketing/cta-block/CtaBlock.tsx +80 -0
- package/src/components/blocks/marketing/cta-block/index.ts +1 -0
- package/src/components/blocks/marketing/feature-grid/FeatureGrid.tsx +47 -0
- package/src/components/blocks/marketing/feature-grid/index.ts +1 -0
- package/src/components/blocks/marketing/hero-section/HeroSection.tsx +89 -0
- package/src/components/blocks/marketing/hero-section/index.ts +1 -0
- package/src/components/blocks/marketing/index.ts +4 -0
- package/src/components/blocks/marketing/testimonial-card/TestimonialCard.tsx +71 -0
- package/src/components/blocks/marketing/testimonial-card/index.ts +1 -0
- package/src/components/blocks/media/call-controls/CallControlButton.tsx +52 -0
- package/src/components/blocks/media/call-controls/CallControls.tsx +10 -0
- package/src/components/blocks/media/call-controls/index.ts +2 -0
- package/src/components/blocks/media/index.ts +2 -0
- package/src/components/blocks/media/media-player/MediaPlayer.tsx +20 -0
- package/src/components/blocks/media/media-player/MediaPlayerControls.tsx +16 -0
- package/src/components/blocks/media/media-player/MediaPlayerScrubber.tsx +29 -0
- package/src/components/blocks/media/media-player/MediaPlayerVideo.tsx +25 -0
- package/src/components/blocks/media/media-player/index.ts +4 -0
- package/src/components/blocks/navigation/app-sidebar/AppSidebar.tsx +32 -0
- package/src/components/blocks/navigation/app-sidebar/NavItem.tsx +43 -0
- package/src/components/blocks/navigation/app-sidebar/index.ts +2 -0
- package/src/components/blocks/navigation/context-switcher/ContextSwitcher.tsx +77 -0
- package/src/components/blocks/navigation/context-switcher/index.ts +1 -0
- package/src/components/blocks/navigation/index.ts +3 -0
- package/src/components/blocks/navigation/top-navbar/TopNavbar.tsx +47 -0
- package/src/components/blocks/navigation/top-navbar/index.ts +1 -0
- package/src/components/blocks/onboarding/index.ts +2 -0
- package/src/components/blocks/onboarding/onboarding-welcome/OnboardingWelcome.tsx +74 -0
- package/src/components/blocks/onboarding/onboarding-welcome/index.ts +1 -0
- package/src/components/blocks/onboarding/step-wizard/StepWizard.tsx +72 -0
- package/src/components/blocks/onboarding/step-wizard/index.ts +1 -0
- package/src/components/blocks/profiles/connection-list/ConnectionItem.tsx +35 -0
- package/src/components/blocks/profiles/connection-list/ConnectionList.tsx +16 -0
- package/src/components/blocks/profiles/connection-list/index.ts +2 -0
- package/src/components/blocks/profiles/index.ts +3 -0
- package/src/components/blocks/profiles/profile-header/ProfileHeader.tsx +88 -0
- package/src/components/blocks/profiles/profile-header/index.ts +1 -0
- package/src/components/blocks/profiles/profile-stats/ProfileStats.tsx +20 -0
- package/src/components/blocks/profiles/profile-stats/index.ts +1 -0
- package/src/components/blocks/scheduling/booking-slot/BookingSlot.tsx +44 -0
- package/src/components/blocks/scheduling/booking-slot/index.ts +1 -0
- package/src/components/blocks/scheduling/event-card/EventCard.tsx +85 -0
- package/src/components/blocks/scheduling/event-card/index.ts +1 -0
- package/src/components/blocks/scheduling/index.ts +3 -0
- package/src/components/blocks/scheduling/timeline-row/TimelineRow.tsx +82 -0
- package/src/components/blocks/scheduling/timeline-row/index.ts +1 -0
- package/src/components/blocks/settings/billing-usage/BillingUsage.tsx +49 -0
- package/src/components/blocks/settings/billing-usage/index.ts +1 -0
- package/src/components/blocks/settings/index.ts +3 -0
- package/src/components/blocks/settings/integration-card/IntegrationCard.tsx +62 -0
- package/src/components/blocks/settings/integration-card/index.ts +1 -0
- package/src/components/blocks/settings/settings-section/SettingsSection.tsx +23 -0
- package/src/components/blocks/settings/settings-section/index.ts +1 -0
- package/src/components/ui/accordion.tsx +56 -0
- package/src/components/ui/alert-dialog.tsx +141 -0
- package/src/components/ui/alert.tsx +59 -0
- package/src/components/ui/aspect-ratio.tsx +5 -0
- package/src/components/ui/avatar.tsx +50 -0
- package/src/components/ui/badge.tsx +36 -0
- package/src/components/ui/breadcrumb.tsx +115 -0
- package/src/components/ui/button.tsx +56 -0
- package/src/components/ui/calendar.tsx +211 -0
- package/src/components/ui/card.tsx +79 -0
- package/src/components/ui/carousel.tsx +262 -0
- package/src/components/ui/chart.tsx +367 -0
- package/src/components/ui/checkbox.tsx +28 -0
- package/src/components/ui/collapsible.tsx +11 -0
- package/src/components/ui/command.tsx +153 -0
- package/src/components/ui/component-placeholder.tsx +38 -0
- package/src/components/ui/context-menu.tsx +198 -0
- package/src/components/ui/dialog.tsx +122 -0
- package/src/components/ui/drawer.tsx +116 -0
- package/src/components/ui/dropdown-menu.tsx +200 -0
- package/src/components/ui/form.tsx +176 -0
- package/src/components/ui/hover-card.tsx +27 -0
- package/src/components/ui/input-otp.tsx +69 -0
- package/src/components/ui/input.tsx +22 -0
- package/src/components/ui/label.tsx +24 -0
- package/src/components/ui/menubar.tsx +256 -0
- package/src/components/ui/navigation-menu.tsx +128 -0
- package/src/components/ui/pagination.tsx +117 -0
- package/src/components/ui/popover.tsx +29 -0
- package/src/components/ui/progress.tsx +28 -0
- package/src/components/ui/radio-group.tsx +42 -0
- package/src/components/ui/resizable.tsx +45 -0
- package/src/components/ui/scroll-area.tsx +46 -0
- package/src/components/ui/select.tsx +160 -0
- package/src/components/ui/separator.tsx +29 -0
- package/src/components/ui/sheet.tsx +140 -0
- package/src/components/ui/skeleton.tsx +15 -0
- package/src/components/ui/slider.tsx +26 -0
- package/src/components/ui/sonner.tsx +45 -0
- package/src/components/ui/switch.tsx +27 -0
- package/src/components/ui/table.tsx +117 -0
- package/src/components/ui/tabs.tsx +53 -0
- package/src/components/ui/textarea.tsx +22 -0
- package/src/components/ui/toast.tsx +127 -0
- package/src/components/ui/toaster.tsx +33 -0
- package/src/components/ui/toggle-group.tsx +61 -0
- package/src/components/ui/toggle.tsx +45 -0
- package/src/components/ui/tooltip.tsx +28 -0
- package/src/hooks/use-toast.ts +194 -0
- package/src/index.ts +53 -56
- package/src/styles/index.css +6 -0
- package/src/styles/tokens.css +30 -18
- package/tailwind.config.js +120 -98
- package/tsconfig.json +2 -2
- package/src/components/ui/accordion/Accordion.vue +0 -13
- package/src/components/ui/accordion/AccordionContent.vue +0 -20
- package/src/components/ui/accordion/AccordionItem.vue +0 -15
- package/src/components/ui/accordion/AccordionTrigger.vue +0 -25
- package/src/components/ui/accordion/index.ts +0 -4
- package/src/components/ui/alert/Alert.vue +0 -38
- package/src/components/ui/alert/AlertDescription.vue +0 -12
- package/src/components/ui/alert/AlertTitle.vue +0 -12
- package/src/components/ui/alert/index.ts +0 -3
- package/src/components/ui/alert-dialog/AlertDialog.vue +0 -13
- package/src/components/ui/alert-dialog/AlertDialogAction.vue +0 -21
- package/src/components/ui/alert-dialog/AlertDialogCancel.vue +0 -21
- package/src/components/ui/alert-dialog/AlertDialogContent.vue +0 -39
- package/src/components/ui/alert-dialog/AlertDialogDescription.vue +0 -15
- package/src/components/ui/alert-dialog/AlertDialogFooter.vue +0 -12
- package/src/components/ui/alert-dialog/AlertDialogHeader.vue +0 -12
- package/src/components/ui/alert-dialog/AlertDialogTitle.vue +0 -15
- package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +0 -11
- package/src/components/ui/alert-dialog/index.ts +0 -9
- package/src/components/ui/avatar/Avatar.vue +0 -14
- package/src/components/ui/avatar/index.ts +0 -1
- package/src/components/ui/badge/Badge.vue +0 -27
- package/src/components/ui/badge/index.ts +0 -1
- package/src/components/ui/breadcrumb/Breadcrumb.vue +0 -6
- package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +0 -12
- package/src/components/ui/breadcrumb/BreadcrumbItem.vue +0 -6
- package/src/components/ui/breadcrumb/BreadcrumbLink.vue +0 -20
- package/src/components/ui/breadcrumb/BreadcrumbList.vue +0 -6
- package/src/components/ui/breadcrumb/BreadcrumbPage.vue +0 -6
- package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +0 -11
- package/src/components/ui/breadcrumb/index.ts +0 -7
- package/src/components/ui/button/Button.vue +0 -65
- package/src/components/ui/button/index.ts +0 -1
- package/src/components/ui/card/Card.vue +0 -13
- package/src/components/ui/card/CardContent.vue +0 -7
- package/src/components/ui/card/CardDescription.vue +0 -7
- package/src/components/ui/card/CardFooter.vue +0 -7
- package/src/components/ui/card/CardHeader.vue +0 -9
- package/src/components/ui/card/CardTitle.vue +0 -7
- package/src/components/ui/card/index.ts +0 -6
- package/src/components/ui/checkbox/Checkbox.vue +0 -25
- package/src/components/ui/checkbox/index.ts +0 -1
- package/src/components/ui/collapsible/Collapsible.vue +0 -13
- package/src/components/ui/collapsible/index.ts +0 -2
- package/src/components/ui/command/Command.vue +0 -16
- package/src/components/ui/command/CommandEmpty.vue +0 -5
- package/src/components/ui/command/CommandGroup.vue +0 -22
- package/src/components/ui/command/CommandInput.vue +0 -21
- package/src/components/ui/command/CommandItem.vue +0 -22
- package/src/components/ui/command/CommandList.vue +0 -17
- package/src/components/ui/command/CommandSeparator.vue +0 -5
- package/src/components/ui/command/index.ts +0 -7
- package/src/components/ui/context-menu/ContextMenuContent.vue +0 -24
- package/src/components/ui/context-menu/ContextMenuItem.vue +0 -16
- package/src/components/ui/context-menu/ContextMenuLabel.vue +0 -9
- package/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -9
- package/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -14
- package/src/components/ui/context-menu/index.ts +0 -9
- package/src/components/ui/dialog/Dialog.vue +0 -14
- package/src/components/ui/dialog/DialogClose.vue +0 -12
- package/src/components/ui/dialog/DialogContent.vue +0 -48
- package/src/components/ui/dialog/DialogDescription.vue +0 -23
- package/src/components/ui/dialog/DialogFooter.vue +0 -12
- package/src/components/ui/dialog/DialogHeader.vue +0 -12
- package/src/components/ui/dialog/DialogScrollContent.vue +0 -47
- package/src/components/ui/dialog/DialogTitle.vue +0 -23
- package/src/components/ui/dialog/DialogTrigger.vue +0 -12
- package/src/components/ui/dialog/index.ts +0 -9
- package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -13
- package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -28
- package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -33
- package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
- package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -27
- package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -23
- package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -13
- package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -27
- package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -13
- package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -12
- package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -13
- package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -27
- package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -23
- package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -11
- package/src/components/ui/dropdown-menu/index.ts +0 -14
- package/src/components/ui/form/FormControl.vue +0 -3
- package/src/components/ui/form/FormDescription.vue +0 -6
- package/src/components/ui/form/FormItem.vue +0 -6
- package/src/components/ui/form/FormLabel.vue +0 -10
- package/src/components/ui/form/FormMessage.vue +0 -10
- package/src/components/ui/form/index.ts +0 -9
- package/src/components/ui/hover-card/HoverCard.vue +0 -13
- package/src/components/ui/hover-card/HoverCardContent.vue +0 -26
- package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
- package/src/components/ui/hover-card/index.ts +0 -3
- package/src/components/ui/input/Input.vue +0 -23
- package/src/components/ui/input/index.ts +0 -1
- package/src/components/ui/label/Label.vue +0 -18
- package/src/components/ui/label/index.ts +0 -1
- package/src/components/ui/lib/utils.ts +0 -2
- package/src/components/ui/menubar/MenubarContent.vue +0 -15
- package/src/components/ui/menubar/MenubarItem.vue +0 -13
- package/src/components/ui/menubar/MenubarTrigger.vue +0 -13
- package/src/components/ui/menubar/index.ts +0 -5
- package/src/components/ui/navigation-menu/NavigationMenuContent.vue +0 -14
- package/src/components/ui/navigation-menu/NavigationMenuTrigger.vue +0 -15
- package/src/components/ui/navigation-menu/index.ts +0 -4
- package/src/components/ui/pagination/PaginationContent.vue +0 -13
- package/src/components/ui/pagination/PaginationEllipsis.vue +0 -12
- package/src/components/ui/pagination/PaginationNext.vue +0 -14
- package/src/components/ui/pagination/PaginationPrev.vue +0 -14
- package/src/components/ui/pagination/index.ts +0 -6
- package/src/components/ui/popover/Popover.vue +0 -13
- package/src/components/ui/popover/PopoverContent.vue +0 -27
- package/src/components/ui/popover/PopoverTrigger.vue +0 -11
- package/src/components/ui/popover/index.ts +0 -3
- package/src/components/ui/progress/Progress.vue +0 -21
- package/src/components/ui/progress/index.ts +0 -1
- package/src/components/ui/radio-group/RadioGroup.vue +0 -16
- package/src/components/ui/radio-group/RadioGroupItem.vue +0 -24
- package/src/components/ui/radio-group/index.ts +0 -2
- package/src/components/ui/scroll-area/ScrollArea.vue +0 -13
- package/src/components/ui/scroll-area/index.ts +0 -1
- package/src/components/ui/select/Select.vue +0 -13
- package/src/components/ui/select/SelectContent.vue +0 -40
- package/src/components/ui/select/SelectGroup.vue +0 -15
- package/src/components/ui/select/SelectItem.vue +0 -30
- package/src/components/ui/select/SelectLabel.vue +0 -15
- package/src/components/ui/select/SelectSeparator.vue +0 -13
- package/src/components/ui/select/SelectTrigger.vue +0 -23
- package/src/components/ui/select/SelectValue.vue +0 -11
- package/src/components/ui/select/index.ts +0 -8
- package/src/components/ui/separator/Separator.vue +0 -16
- package/src/components/ui/separator/index.ts +0 -1
- package/src/components/ui/sheet/Sheet.vue +0 -13
- package/src/components/ui/sheet/SheetClose.vue +0 -11
- package/src/components/ui/sheet/SheetContent.vue +0 -65
- package/src/components/ui/sheet/SheetDescription.vue +0 -15
- package/src/components/ui/sheet/SheetFooter.vue +0 -12
- package/src/components/ui/sheet/SheetHeader.vue +0 -12
- package/src/components/ui/sheet/SheetTitle.vue +0 -15
- package/src/components/ui/sheet/SheetTrigger.vue +0 -11
- package/src/components/ui/sheet/index.ts +0 -8
- package/src/components/ui/skeleton/Skeleton.vue +0 -9
- package/src/components/ui/skeleton/index.ts +0 -1
- package/src/components/ui/slider/Slider.vue +0 -26
- package/src/components/ui/slider/index.ts +0 -1
- package/src/components/ui/switch/Switch.vue +0 -24
- package/src/components/ui/switch/index.ts +0 -1
- package/src/components/ui/table/Table.vue +0 -13
- package/src/components/ui/table/TableBody.vue +0 -6
- package/src/components/ui/table/TableCaption.vue +0 -6
- package/src/components/ui/table/TableCell.vue +0 -6
- package/src/components/ui/table/TableFooter.vue +0 -6
- package/src/components/ui/table/TableHead.vue +0 -6
- package/src/components/ui/table/TableHeader.vue +0 -6
- package/src/components/ui/table/TableRow.vue +0 -6
- package/src/components/ui/table/index.ts +0 -8
- package/src/components/ui/tabs/Tabs.vue +0 -13
- package/src/components/ui/tabs/TabsContent.vue +0 -21
- package/src/components/ui/tabs/TabsList.vue +0 -21
- package/src/components/ui/tabs/TabsTrigger.vue +0 -21
- package/src/components/ui/tabs/index.ts +0 -4
- package/src/components/ui/textarea/Textarea.vue +0 -29
- package/src/components/ui/textarea/index.ts +0 -1
- package/src/components/ui/toggle/Toggle.vue +0 -40
- package/src/components/ui/toggle/index.ts +0 -1
- package/src/components/ui/toggle-group/ToggleGroup.vue +0 -16
- package/src/components/ui/toggle-group/ToggleGroupItem.vue +0 -21
- package/src/components/ui/toggle-group/index.ts +0 -2
- package/src/components/ui/tooltip/Tooltip.vue +0 -13
- package/src/components/ui/tooltip/TooltipContent.vue +0 -27
- package/src/components/ui/tooltip/TooltipProvider.vue +0 -12
- package/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
- package/src/components/ui/tooltip/index.ts +0 -4
package/src/styles/tokens.css
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
--card-foreground: 240 10% 3.9%;
|
|
16
16
|
--popover: 0 0% 100%;
|
|
17
17
|
--popover-foreground: 240 10% 3.9%;
|
|
18
|
-
--primary:
|
|
18
|
+
--primary: 12 85% 60%; /* Medium Coral — Reinvented brand */
|
|
19
19
|
--primary-foreground: 0 0% 100%;
|
|
20
20
|
--secondary: 240 4.8% 95.9%;
|
|
21
21
|
--secondary-foreground: 240 5.9% 10%;
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
--destructive-foreground: 0 0% 98%;
|
|
28
28
|
--border: 240 5.9% 90%;
|
|
29
29
|
--input: 240 5.9% 90%;
|
|
30
|
-
--ring:
|
|
30
|
+
--ring: 12 85% 60%;
|
|
31
31
|
--radius: 0.625rem;
|
|
32
32
|
|
|
33
33
|
/* ── Success / Warning / Info ──────────────────────────────── */
|
|
34
|
-
--success: 142
|
|
34
|
+
--success: 142 60% 45%;
|
|
35
35
|
--success-foreground: 0 0% 100%;
|
|
36
|
-
--warning: 38
|
|
36
|
+
--warning: 38 80% 55%;
|
|
37
37
|
--warning-foreground: 0 0% 100%;
|
|
38
|
-
--info: 217
|
|
38
|
+
--info: 217 80% 55%;
|
|
39
39
|
--info-foreground: 0 0% 100%;
|
|
40
40
|
|
|
41
41
|
/* ── Typography ────────────────────────────────────────────── */
|
|
@@ -86,12 +86,20 @@
|
|
|
86
86
|
/* ── Sidebar (for ShadCN sidebar component) ────────────────── */
|
|
87
87
|
--sidebar-background: 0 0% 98%;
|
|
88
88
|
--sidebar-foreground: 240 5.3% 26.1%;
|
|
89
|
-
--sidebar-primary:
|
|
89
|
+
--sidebar-primary: 12 85% 60%;
|
|
90
90
|
--sidebar-primary-foreground: 0 0% 100%;
|
|
91
91
|
--sidebar-accent: 240 4.8% 95.9%;
|
|
92
92
|
--sidebar-accent-foreground: 240 5.9% 10%;
|
|
93
93
|
--sidebar-border: 220 13% 91%;
|
|
94
|
-
--sidebar-ring:
|
|
94
|
+
--sidebar-ring: 12 85% 60%;
|
|
95
|
+
|
|
96
|
+
/* ── Charts (Unovis) ───────────────────────────────────────── */
|
|
97
|
+
--vis-primary-color: var(--primary);
|
|
98
|
+
--vis-secondary-color: var(--muted);
|
|
99
|
+
--vis-text-color: var(--foreground);
|
|
100
|
+
--vis-tooltip-background-color: hsl(var(--popover));
|
|
101
|
+
--vis-tooltip-border-color: hsl(var(--border));
|
|
102
|
+
--vis-tooltip-text-color: hsl(var(--popover-foreground));
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
/* ── Dark Mode ───────────────────────────────────────────────── */
|
|
@@ -102,7 +110,7 @@
|
|
|
102
110
|
--card-foreground: 0 0% 98%;
|
|
103
111
|
--popover: 240 10% 3.9%;
|
|
104
112
|
--popover-foreground: 0 0% 98%;
|
|
105
|
-
--primary:
|
|
113
|
+
--primary: 12 85% 65%;
|
|
106
114
|
--primary-foreground: 0 0% 100%;
|
|
107
115
|
--secondary: 240 3.7% 15.9%;
|
|
108
116
|
--secondary-foreground: 0 0% 98%;
|
|
@@ -114,27 +122,26 @@
|
|
|
114
122
|
--destructive-foreground: 0 0% 98%;
|
|
115
123
|
--border: 240 3.7% 15.9%;
|
|
116
124
|
--input: 240 3.7% 15.9%;
|
|
117
|
-
--ring:
|
|
125
|
+
--ring: 12 85% 65%;
|
|
118
126
|
|
|
119
|
-
--success: 142
|
|
120
|
-
--
|
|
121
|
-
--
|
|
127
|
+
--success: 142 65% 50%;
|
|
128
|
+
--success-foreground: 0 0% 98%;
|
|
129
|
+
--warning: 38 85% 55%;
|
|
130
|
+
--warning-foreground: 0 0% 98%;
|
|
131
|
+
--info: 217 80% 60%;
|
|
132
|
+
--info-foreground: 0 0% 98%;
|
|
122
133
|
|
|
123
134
|
--sidebar-background: 240 5.9% 10%;
|
|
124
135
|
--sidebar-foreground: 240 4.8% 95.9%;
|
|
125
|
-
--sidebar-primary:
|
|
136
|
+
--sidebar-primary: 12 85% 65%;
|
|
126
137
|
--sidebar-primary-foreground: 0 0% 100%;
|
|
127
138
|
--sidebar-accent: 240 3.7% 15.9%;
|
|
128
139
|
--sidebar-accent-foreground: 240 4.8% 95.9%;
|
|
129
140
|
--sidebar-border: 240 3.7% 15.9%;
|
|
130
|
-
--sidebar-ring:
|
|
141
|
+
--sidebar-ring: 12 85% 65%;
|
|
131
142
|
}
|
|
132
143
|
|
|
133
144
|
/* ── Base Styles ─────────────────────────────────────────────── */
|
|
134
|
-
* {
|
|
135
|
-
border-color: hsl(var(--border));
|
|
136
|
-
}
|
|
137
|
-
|
|
138
145
|
body {
|
|
139
146
|
font-family: var(--font-sans);
|
|
140
147
|
background-color: hsl(var(--background));
|
|
@@ -142,3 +149,8 @@ body {
|
|
|
142
149
|
-webkit-font-smoothing: antialiased;
|
|
143
150
|
-moz-osx-font-smoothing: grayscale;
|
|
144
151
|
}
|
|
152
|
+
|
|
153
|
+
/* ── Unovis Overrides ────────────────────────────────────────── */
|
|
154
|
+
.unovis-donut-central-label {
|
|
155
|
+
fill: hsl(var(--foreground)) !important;
|
|
156
|
+
}
|
package/tailwind.config.js
CHANGED
|
@@ -1,108 +1,130 @@
|
|
|
1
1
|
/** @type {import('tailwindcss').Config} */
|
|
2
2
|
export default {
|
|
3
|
-
darkMode: 'class',
|
|
3
|
+
darkMode: ['class', 'class'],
|
|
4
4
|
content: [
|
|
5
5
|
'./src/**/*.{vue,ts,tsx}',
|
|
6
6
|
// Consumer apps should add their own content paths
|
|
7
7
|
],
|
|
8
8
|
theme: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
9
|
+
container: {
|
|
10
|
+
center: true,
|
|
11
|
+
padding: '2rem',
|
|
12
|
+
screens: {
|
|
13
|
+
'2xl': '1400px'
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
extend: {
|
|
17
|
+
colors: {
|
|
18
|
+
border: 'hsl(var(--border))',
|
|
19
|
+
input: 'hsl(var(--input))',
|
|
20
|
+
ring: 'hsl(var(--ring))',
|
|
21
|
+
background: 'hsl(var(--background))',
|
|
22
|
+
foreground: 'hsl(var(--foreground))',
|
|
23
|
+
primary: {
|
|
24
|
+
DEFAULT: 'hsl(var(--primary))',
|
|
25
|
+
foreground: 'hsl(var(--primary-foreground))'
|
|
26
|
+
},
|
|
27
|
+
secondary: {
|
|
28
|
+
DEFAULT: 'hsl(var(--secondary))',
|
|
29
|
+
foreground: 'hsl(var(--secondary-foreground))'
|
|
30
|
+
},
|
|
31
|
+
destructive: {
|
|
32
|
+
DEFAULT: 'hsl(var(--destructive))',
|
|
33
|
+
foreground: 'hsl(var(--destructive-foreground))'
|
|
34
|
+
},
|
|
35
|
+
muted: {
|
|
36
|
+
DEFAULT: 'hsl(var(--muted))',
|
|
37
|
+
foreground: 'hsl(var(--muted-foreground))'
|
|
38
|
+
},
|
|
39
|
+
accent: {
|
|
40
|
+
DEFAULT: 'hsl(var(--accent))',
|
|
41
|
+
foreground: 'hsl(var(--accent-foreground))'
|
|
42
|
+
},
|
|
43
|
+
popover: {
|
|
44
|
+
DEFAULT: 'hsl(var(--popover))',
|
|
45
|
+
foreground: 'hsl(var(--popover-foreground))'
|
|
46
|
+
},
|
|
47
|
+
card: {
|
|
48
|
+
DEFAULT: 'hsl(var(--card))',
|
|
49
|
+
foreground: 'hsl(var(--card-foreground))'
|
|
50
|
+
},
|
|
51
|
+
success: {
|
|
52
|
+
DEFAULT: 'hsl(var(--success))',
|
|
53
|
+
foreground: 'hsl(var(--success-foreground))'
|
|
54
|
+
},
|
|
55
|
+
warning: {
|
|
56
|
+
DEFAULT: 'hsl(var(--warning))',
|
|
57
|
+
foreground: 'hsl(var(--warning-foreground))'
|
|
58
|
+
},
|
|
59
|
+
info: {
|
|
60
|
+
DEFAULT: 'hsl(var(--info))',
|
|
61
|
+
foreground: 'hsl(var(--info-foreground))'
|
|
62
|
+
},
|
|
63
|
+
sidebar: {
|
|
64
|
+
DEFAULT: 'hsl(var(--sidebar-background))',
|
|
65
|
+
foreground: 'hsl(var(--sidebar-foreground))',
|
|
66
|
+
primary: 'hsl(var(--sidebar-primary))',
|
|
67
|
+
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
|
68
|
+
accent: 'hsl(var(--sidebar-accent))',
|
|
69
|
+
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
|
70
|
+
border: 'hsl(var(--sidebar-border))',
|
|
71
|
+
ring: 'hsl(var(--sidebar-ring))'
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
borderRadius: {
|
|
75
|
+
lg: 'var(--radius)',
|
|
76
|
+
md: 'calc(var(--radius) - 2px)',
|
|
77
|
+
sm: 'calc(var(--radius) - 4px)'
|
|
78
|
+
},
|
|
79
|
+
fontFamily: {
|
|
80
|
+
sans: [
|
|
81
|
+
'var(--font-sans)'
|
|
82
|
+
],
|
|
83
|
+
mono: [
|
|
84
|
+
'var(--font-mono)'
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
keyframes: {
|
|
88
|
+
'accordion-down': {
|
|
89
|
+
from: {
|
|
90
|
+
height: '0'
|
|
91
|
+
},
|
|
92
|
+
to: {
|
|
93
|
+
height: 'var(--radix-accordion-content-height)'
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
'accordion-up': {
|
|
97
|
+
from: {
|
|
98
|
+
height: 'var(--radix-accordion-content-height)'
|
|
99
|
+
},
|
|
100
|
+
to: {
|
|
101
|
+
height: '0'
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
'collapsible-down': {
|
|
105
|
+
from: {
|
|
106
|
+
height: '0'
|
|
107
|
+
},
|
|
108
|
+
to: {
|
|
109
|
+
height: 'var(--radix-collapsible-content-height)'
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
'collapsible-up': {
|
|
113
|
+
from: {
|
|
114
|
+
height: 'var(--radix-collapsible-content-height)'
|
|
115
|
+
},
|
|
116
|
+
to: {
|
|
117
|
+
height: '0'
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
animation: {
|
|
122
|
+
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
123
|
+
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
124
|
+
'collapsible-down': 'collapsible-down 0.2s ease-out',
|
|
125
|
+
'collapsible-up': 'collapsible-up 0.2s ease-out'
|
|
126
|
+
}
|
|
127
|
+
}
|
|
106
128
|
},
|
|
107
129
|
plugins: [require('tailwindcss-animate')],
|
|
108
130
|
}
|
package/tsconfig.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"moduleResolution": "bundler",
|
|
6
6
|
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
7
7
|
"strict": true,
|
|
8
|
-
"jsx": "
|
|
8
|
+
"jsx": "react-jsx",
|
|
9
9
|
"esModuleInterop": true,
|
|
10
10
|
"skipLibCheck": true,
|
|
11
11
|
"forceConsistentCasingInFileNames": true,
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
},
|
|
18
18
|
"noEmit": true
|
|
19
19
|
},
|
|
20
|
-
"include": ["src/**/*.ts", "src/**/*.
|
|
20
|
+
"include": ["src/**/*.ts", "src/**/*.tsx"]
|
|
21
21
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { AccordionRoot, type AccordionRootEmits, type AccordionRootProps, useForwardPropsEmits } from 'radix-vue'
|
|
3
|
-
|
|
4
|
-
const props = defineProps<AccordionRootProps>()
|
|
5
|
-
const emits = defineEmits<AccordionRootEmits>()
|
|
6
|
-
const forwarded = useForwardPropsEmits(props, emits)
|
|
7
|
-
</script>
|
|
8
|
-
|
|
9
|
-
<template>
|
|
10
|
-
<AccordionRoot v-bind="forwarded">
|
|
11
|
-
<slot />
|
|
12
|
-
</AccordionRoot>
|
|
13
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { AccordionContent, type AccordionContentProps, useForwardProps } from 'radix-vue'
|
|
4
|
-
import { cn } from '../lib/utils'
|
|
5
|
-
|
|
6
|
-
const props = defineProps<AccordionContentProps & { class?: HTMLAttributes['class'] }>()
|
|
7
|
-
const delegatedProps = computed(() => { const { class: _, ...d } = props; return d })
|
|
8
|
-
const forwardedProps = useForwardProps(delegatedProps)
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<template>
|
|
12
|
-
<AccordionContent
|
|
13
|
-
v-bind="forwardedProps"
|
|
14
|
-
class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
|
|
15
|
-
>
|
|
16
|
-
<div :class="cn('pb-4 pt-0', props.class)">
|
|
17
|
-
<slot />
|
|
18
|
-
</div>
|
|
19
|
-
</AccordionContent>
|
|
20
|
-
</template>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { AccordionItem, type AccordionItemProps, useForwardProps } from 'radix-vue'
|
|
4
|
-
import { cn } from '../lib/utils'
|
|
5
|
-
|
|
6
|
-
const props = defineProps<AccordionItemProps & { class?: HTMLAttributes['class'] }>()
|
|
7
|
-
const delegatedProps = computed(() => { const { class: _, ...d } = props; return d })
|
|
8
|
-
const forwardedProps = useForwardProps(delegatedProps)
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<template>
|
|
12
|
-
<AccordionItem v-bind="forwardedProps" :class="cn('border-b', props.class)">
|
|
13
|
-
<slot />
|
|
14
|
-
</AccordionItem>
|
|
15
|
-
</template>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { AccordionHeader, AccordionTrigger, type AccordionTriggerProps, useForwardProps } from 'radix-vue'
|
|
4
|
-
import { ChevronDown } from 'lucide-vue-next'
|
|
5
|
-
import { cn } from '../lib/utils'
|
|
6
|
-
|
|
7
|
-
const props = defineProps<AccordionTriggerProps & { class?: HTMLAttributes['class'] }>()
|
|
8
|
-
const delegatedProps = computed(() => { const { class: _, ...d } = props; return d })
|
|
9
|
-
const forwardedProps = useForwardProps(delegatedProps)
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<template>
|
|
13
|
-
<AccordionHeader class="flex">
|
|
14
|
-
<AccordionTrigger
|
|
15
|
-
v-bind="forwardedProps"
|
|
16
|
-
:class="cn(
|
|
17
|
-
'flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',
|
|
18
|
-
props.class,
|
|
19
|
-
)"
|
|
20
|
-
>
|
|
21
|
-
<slot />
|
|
22
|
-
<ChevronDown class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" />
|
|
23
|
-
</AccordionTrigger>
|
|
24
|
-
</AccordionHeader>
|
|
25
|
-
</template>
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { cva, type VariantProps } from 'class-variance-authority'
|
|
4
|
-
import { cn } from '../lib/utils'
|
|
5
|
-
|
|
6
|
-
const alertVariants = cva(
|
|
7
|
-
'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',
|
|
8
|
-
{
|
|
9
|
-
variants: {
|
|
10
|
-
variant: {
|
|
11
|
-
default: 'bg-background text-foreground',
|
|
12
|
-
destructive: 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
defaultVariants: {
|
|
16
|
-
variant: 'default',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
export type AlertVariants = VariantProps<typeof alertVariants>
|
|
22
|
-
|
|
23
|
-
const props = defineProps<{
|
|
24
|
-
variant?: AlertVariants['variant']
|
|
25
|
-
class?: HTMLAttributes['class']
|
|
26
|
-
}>()
|
|
27
|
-
|
|
28
|
-
const delegatedProps = computed(() => {
|
|
29
|
-
const { class: _, ...d } = props
|
|
30
|
-
return d
|
|
31
|
-
})
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<template>
|
|
35
|
-
<div :class="cn(alertVariants({ variant: delegatedProps.variant }), props.class)" role="alert">
|
|
36
|
-
<slot />
|
|
37
|
-
</div>
|
|
38
|
-
</template>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'vue'
|
|
3
|
-
import { cn } from '../lib/utils'
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{ class?: HTMLAttributes['class'] }>()
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<template>
|
|
9
|
-
<div :class="cn('text-sm [&_p]:leading-relaxed', props.class)">
|
|
10
|
-
<slot />
|
|
11
|
-
</div>
|
|
12
|
-
</template>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'vue'
|
|
3
|
-
import { cn } from '../lib/utils'
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{ class?: HTMLAttributes['class'] }>()
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<template>
|
|
9
|
-
<h5 :class="cn('mb-1 font-medium leading-none tracking-tight', props.class)">
|
|
10
|
-
<slot />
|
|
11
|
-
</h5>
|
|
12
|
-
</template>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { AlertDialogRoot, type AlertDialogEmits, type AlertDialogProps, useForwardPropsEmits } from 'radix-vue'
|
|
3
|
-
|
|
4
|
-
const props = defineProps<AlertDialogProps>()
|
|
5
|
-
const emits = defineEmits<AlertDialogEmits>()
|
|
6
|
-
const forwarded = useForwardPropsEmits(props, emits)
|
|
7
|
-
</script>
|
|
8
|
-
|
|
9
|
-
<template>
|
|
10
|
-
<AlertDialogRoot v-bind="forwarded">
|
|
11
|
-
<slot />
|
|
12
|
-
</AlertDialogRoot>
|
|
13
|
-
</template>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { AlertDialogAction, type AlertDialogActionProps, useForwardProps } from 'radix-vue'
|
|
4
|
-
import { cn } from '../lib/utils'
|
|
5
|
-
|
|
6
|
-
const props = defineProps<AlertDialogActionProps & { class?: HTMLAttributes['class'] }>()
|
|
7
|
-
const delegatedProps = computed(() => { const { class: _, ...d } = props; return d })
|
|
8
|
-
const forwardedProps = useForwardProps(delegatedProps)
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<template>
|
|
12
|
-
<AlertDialogAction
|
|
13
|
-
v-bind="forwardedProps"
|
|
14
|
-
:class="cn(
|
|
15
|
-
'inline-flex h-10 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-semibold text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
|
|
16
|
-
props.class,
|
|
17
|
-
)"
|
|
18
|
-
>
|
|
19
|
-
<slot />
|
|
20
|
-
</AlertDialogAction>
|
|
21
|
-
</template>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { AlertDialogCancel, type AlertDialogCancelProps, useForwardProps } from 'radix-vue'
|
|
4
|
-
import { cn } from '../lib/utils'
|
|
5
|
-
|
|
6
|
-
const props = defineProps<AlertDialogCancelProps & { class?: HTMLAttributes['class'] }>()
|
|
7
|
-
const delegatedProps = computed(() => { const { class: _, ...d } = props; return d })
|
|
8
|
-
const forwardedProps = useForwardProps(delegatedProps)
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<template>
|
|
12
|
-
<AlertDialogCancel
|
|
13
|
-
v-bind="forwardedProps"
|
|
14
|
-
:class="cn(
|
|
15
|
-
'inline-flex h-10 items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-semibold ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 mt-2 sm:mt-0',
|
|
16
|
-
props.class,
|
|
17
|
-
)"
|
|
18
|
-
>
|
|
19
|
-
<slot />
|
|
20
|
-
</AlertDialogCancel>
|
|
21
|
-
</template>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import {
|
|
4
|
-
AlertDialogContent,
|
|
5
|
-
type AlertDialogContentEmits,
|
|
6
|
-
type AlertDialogContentProps,
|
|
7
|
-
AlertDialogOverlay,
|
|
8
|
-
AlertDialogPortal,
|
|
9
|
-
useForwardPropsEmits,
|
|
10
|
-
} from 'radix-vue'
|
|
11
|
-
import { cn } from '../lib/utils'
|
|
12
|
-
|
|
13
|
-
const props = defineProps<AlertDialogContentProps & { class?: HTMLAttributes['class'] }>()
|
|
14
|
-
const emits = defineEmits<AlertDialogContentEmits>()
|
|
15
|
-
|
|
16
|
-
const delegatedProps = computed(() => {
|
|
17
|
-
const { class: _, ...delegated } = props
|
|
18
|
-
return delegated
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
22
|
-
</script>
|
|
23
|
-
|
|
24
|
-
<template>
|
|
25
|
-
<AlertDialogPortal>
|
|
26
|
-
<AlertDialogOverlay
|
|
27
|
-
class="fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
|
|
28
|
-
/>
|
|
29
|
-
<AlertDialogContent
|
|
30
|
-
v-bind="forwarded"
|
|
31
|
-
:class="cn(
|
|
32
|
-
'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',
|
|
33
|
-
props.class,
|
|
34
|
-
)"
|
|
35
|
-
>
|
|
36
|
-
<slot />
|
|
37
|
-
</AlertDialogContent>
|
|
38
|
-
</AlertDialogPortal>
|
|
39
|
-
</template>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { type HTMLAttributes, computed } from 'vue'
|
|
3
|
-
import { AlertDialogDescription, type AlertDialogDescriptionProps, useForwardProps } from 'radix-vue'
|
|
4
|
-
import { cn } from '../lib/utils'
|
|
5
|
-
|
|
6
|
-
const props = defineProps<AlertDialogDescriptionProps & { class?: HTMLAttributes['class'] }>()
|
|
7
|
-
const delegatedProps = computed(() => { const { class: _, ...d } = props; return d })
|
|
8
|
-
const forwardedProps = useForwardProps(delegatedProps)
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<template>
|
|
12
|
-
<AlertDialogDescription v-bind="forwardedProps" :class="cn('text-sm text-muted-foreground', props.class)">
|
|
13
|
-
<slot />
|
|
14
|
-
</AlertDialogDescription>
|
|
15
|
-
</template>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'vue'
|
|
3
|
-
import { cn } from '../lib/utils'
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{ class?: HTMLAttributes['class'] }>()
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<template>
|
|
9
|
-
<div :class="cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2', props.class)">
|
|
10
|
-
<slot />
|
|
11
|
-
</div>
|
|
12
|
-
</template>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'vue'
|
|
3
|
-
import { cn } from '../lib/utils'
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{ class?: HTMLAttributes['class'] }>()
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<template>
|
|
9
|
-
<div :class="cn('flex flex-col gap-y-2 text-center sm:text-left', props.class)">
|
|
10
|
-
<slot />
|
|
11
|
-
</div>
|
|
12
|
-
</template>
|