harebear-ui 0.8.1 → 0.10.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/AGENTS.md +2 -2
- package/dist/components/admin/app-nav.d.ts +15 -1
- package/dist/components/admin/app-nav.js +28 -11
- package/dist/components/admin/avatar-upload.d.ts +32 -0
- package/dist/components/admin/avatar-upload.js +121 -0
- package/dist/components/admin/category.d.ts +17 -0
- package/dist/components/admin/category.js +35 -0
- package/dist/components/admin/celebration.d.ts +7 -0
- package/dist/components/admin/celebration.js +61 -0
- package/dist/components/admin/checklist-editor.d.ts +20 -0
- package/dist/components/admin/checklist-editor.js +69 -0
- package/dist/components/admin/color-swatch-picker.d.ts +15 -0
- package/dist/components/admin/color-swatch-picker.js +68 -0
- package/dist/components/admin/comment-thread.d.ts +26 -0
- package/dist/components/admin/comment-thread.js +68 -0
- package/dist/components/admin/copy-field.d.ts +3 -1
- package/dist/components/admin/copy-field.js +10 -5
- package/dist/components/admin/date-time-picker.d.ts +20 -0
- package/dist/components/admin/date-time-picker.js +97 -0
- package/dist/components/admin/detail-sheet.d.ts +18 -0
- package/dist/components/admin/detail-sheet.js +80 -0
- package/dist/components/admin/markdown-editor.d.ts +12 -0
- package/dist/components/admin/markdown-editor.js +46 -0
- package/dist/components/admin/page-header.d.ts +3 -1
- package/dist/components/admin/page-header.js +17 -9
- package/dist/components/admin/page.d.ts +16 -0
- package/dist/components/admin/page.js +42 -0
- package/dist/components/admin/prompt-dialog.d.ts +19 -0
- package/dist/components/admin/prompt-dialog.js +83 -0
- package/dist/components/admin/settings.d.ts +4 -2
- package/dist/components/admin/settings.js +37 -30
- package/dist/components/admin/time-zone-picker.d.ts +12 -0
- package/dist/components/admin/time-zone-picker.js +31 -0
- package/dist/components/admin/user-chip.d.ts +34 -3
- package/dist/components/admin/user-chip.js +66 -7
- package/dist/components/admin/user-menu.d.ts +6 -1
- package/dist/components/admin/user-menu.js +22 -10
- package/dist/components/ai/ask-box.d.ts +14 -2
- package/dist/components/ai/ask-box.js +90 -54
- package/dist/components/ai/assistant.d.ts +13 -3
- package/dist/components/ai/assistant.js +36 -8
- package/dist/components/ai/code-block.d.ts +10 -3
- package/dist/components/ai/code-block.js +57 -8
- package/dist/components/ai/conversation-list.d.ts +13 -3
- package/dist/components/ai/conversation-list.js +15 -26
- package/dist/components/ai/markdown.d.ts +13 -0
- package/dist/components/ai/markdown.js +41 -0
- package/dist/components/auth/auth.d.ts +41 -5
- package/dist/components/auth/auth.js +167 -159
- package/dist/components/data/agenda-row.d.ts +26 -0
- package/dist/components/data/agenda-row.js +62 -0
- package/dist/components/data/day-strip.d.ts +27 -0
- package/dist/components/data/day-strip.js +78 -0
- package/dist/components/data/sectioned-list.d.ts +21 -6
- package/dist/components/data/sectioned-list.js +44 -21
- package/dist/components/data/task-row.d.ts +3 -0
- package/dist/components/data/task-row.js +6 -14
- package/dist/components/layout/collapse.js +1 -1
- package/dist/components/layout/text.d.ts +3 -3
- package/dist/components/layout/text.js +6 -1
- package/dist/components/ui/avatar.js +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/check-circle.js +1 -1
- package/dist/components/ui/code-block.js +2 -2
- package/dist/components/ui/combobox.js +1 -0
- package/dist/components/ui/input-group.js +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/kbd.js +1 -1
- package/dist/components/ui/password-input.d.ts +8 -0
- package/dist/components/ui/password-input.js +32 -0
- package/dist/components/ui/sonner.d.ts +2 -2
- package/dist/components/ui/sonner.js +1 -1
- package/dist/components/ui/toggle.js +1 -1
- package/dist/index.d.ts +23 -7
- package/dist/index.js +21 -5
- package/dist/lib/internal/date.js +8 -0
- package/dist/lib/{toast-clearance.js → internal/toast-clearance.js} +1 -1
- package/dist/styles.css +31 -1
- package/docs/COMPONENTS.md +302 -28
- package/docs/ROADMAP.md +13 -11
- package/llms.txt +10 -8
- package/package.json +3 -1
- package/skills/harebear-ui/SKILL.md +5 -3
package/dist/index.js
CHANGED
|
@@ -42,6 +42,7 @@ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, Me
|
|
|
42
42
|
import { NativeSelect, NativeSelectOptGroup, NativeSelectOption } from "./components/ui/native-select.js";
|
|
43
43
|
import { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from "./components/ui/navigation-menu.js";
|
|
44
44
|
import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "./components/ui/pagination.js";
|
|
45
|
+
import { PasswordInput } from "./components/ui/password-input.js";
|
|
45
46
|
import { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from "./components/ui/popover.js";
|
|
46
47
|
import { Progress } from "./components/ui/progress.js";
|
|
47
48
|
import { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle } from "./components/ui/questionnaire.js";
|
|
@@ -54,7 +55,7 @@ import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHe
|
|
|
54
55
|
import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, useSidebarOptional } from "./components/ui/sidebar.js";
|
|
55
56
|
import { Skeleton } from "./components/ui/skeleton.js";
|
|
56
57
|
import { Slider } from "./components/ui/slider.js";
|
|
57
|
-
import { Toaster, toastUndo } from "./components/ui/sonner.js";
|
|
58
|
+
import { Toaster, toast, toastUndo } from "./components/ui/sonner.js";
|
|
58
59
|
import { Spinner } from "./components/ui/spinner.js";
|
|
59
60
|
import { Switch } from "./components/ui/switch.js";
|
|
60
61
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./components/ui/table.js";
|
|
@@ -67,21 +68,33 @@ import { Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigg
|
|
|
67
68
|
import { ActivityFeed } from "./components/admin/activity-feed.js";
|
|
68
69
|
import { AppNav } from "./components/admin/app-nav.js";
|
|
69
70
|
import { AppBrand, AppShell } from "./components/admin/app-shell.js";
|
|
71
|
+
import { AvatarUpload, cropImageToSquare } from "./components/admin/avatar-upload.js";
|
|
70
72
|
import { Callout } from "./components/admin/callout.js";
|
|
73
|
+
import { CategoryDot, categoryBg } from "./components/admin/category.js";
|
|
74
|
+
import { Celebration, celebrate } from "./components/admin/celebration.js";
|
|
75
|
+
import { ChecklistEditor } from "./components/admin/checklist-editor.js";
|
|
76
|
+
import { ColorSwatchPicker } from "./components/admin/color-swatch-picker.js";
|
|
77
|
+
import { CommentThread } from "./components/admin/comment-thread.js";
|
|
71
78
|
import { ConfirmDialog } from "./components/admin/confirm-dialog.js";
|
|
72
79
|
import { CopyField } from "./components/admin/copy-field.js";
|
|
80
|
+
import { DateTimePicker } from "./components/admin/date-time-picker.js";
|
|
81
|
+
import { DetailSheet } from "./components/admin/detail-sheet.js";
|
|
73
82
|
import { FocusLayout } from "./components/admin/focus-layout.js";
|
|
74
83
|
import { KeyValueGrid } from "./components/admin/key-value-grid.js";
|
|
75
84
|
import { LinkTile } from "./components/admin/link-tile.js";
|
|
85
|
+
import { MarkdownEditor } from "./components/admin/markdown-editor.js";
|
|
76
86
|
import { PageHeader } from "./components/admin/page-header.js";
|
|
87
|
+
import { Page, PageSection } from "./components/admin/page.js";
|
|
88
|
+
import { PromptDialog } from "./components/admin/prompt-dialog.js";
|
|
77
89
|
import { SearchInput } from "./components/admin/search-input.js";
|
|
78
90
|
import { SettingsRow, SettingsSection } from "./components/admin/settings.js";
|
|
79
91
|
import { SidebarCollapseButton, SidebarLayout } from "./components/admin/sidebar-layout.js";
|
|
80
92
|
import { StatCard } from "./components/admin/stat-card.js";
|
|
81
93
|
import { StatusBadge, StatusDot } from "./components/admin/status.js";
|
|
94
|
+
import { TimeZonePicker } from "./components/admin/time-zone-picker.js";
|
|
82
95
|
import { Timeline } from "./components/admin/timeline.js";
|
|
83
96
|
import { UsageMeter } from "./components/admin/usage-meter.js";
|
|
84
|
-
import { UserChip, initials } from "./components/admin/user-chip.js";
|
|
97
|
+
import { AvatarStack, MemberAvatar, UserChip, VisibilityBadge, initials } from "./components/admin/user-chip.js";
|
|
85
98
|
import { UserMenu } from "./components/admin/user-menu.js";
|
|
86
99
|
import { Collapse } from "./components/layout/collapse.js";
|
|
87
100
|
import { MediaItem } from "./components/layout/media-item.js";
|
|
@@ -89,8 +102,10 @@ import { Metric, MetricGroup } from "./components/layout/metric.js";
|
|
|
89
102
|
import { ShowMore } from "./components/layout/show-more.js";
|
|
90
103
|
import { Grid, Row, Stack } from "./components/layout/stack.js";
|
|
91
104
|
import { Heading, Text } from "./components/layout/text.js";
|
|
105
|
+
import { AgendaRow } from "./components/data/agenda-row.js";
|
|
92
106
|
import { BarList } from "./components/data/bar-list.js";
|
|
93
107
|
import { DataTable, createDataTableColumnHelper, dataTableFeatures } from "./components/data/data-table.js";
|
|
108
|
+
import { DayStrip } from "./components/data/day-strip.js";
|
|
94
109
|
import { SectionedList } from "./components/data/sectioned-list.js";
|
|
95
110
|
import { Sparkline, smoothPath } from "./components/data/sparkline.js";
|
|
96
111
|
import { StatusBars } from "./components/data/status-bars.js";
|
|
@@ -102,17 +117,18 @@ import { AskBox } from "./components/ai/ask-box.js";
|
|
|
102
117
|
import { AssistantDock, AssistantProvider, useAssistant, useAssistantPage } from "./components/ai/assistant.js";
|
|
103
118
|
import { ChatPanel, ChatShell } from "./components/ai/chat-shell.js";
|
|
104
119
|
import { AssistantAvatar, ChatMessage, ChatThread, MessageActions, ToolCall, TypingIndicator } from "./components/ai/chat.js";
|
|
105
|
-
import { CodeSnippet, InlineCode, Prose } from "./components/ai/code-block.js";
|
|
120
|
+
import { CodeSnippet, InlineCode, Prose, ProseBlockquote } from "./components/ai/code-block.js";
|
|
106
121
|
import { ConversationList, NewConversationButton, formatWhen, groupByDate } from "./components/ai/conversation-list.js";
|
|
107
122
|
import { DictationButton, browserSpeechSource, useDictation } from "./components/ai/dictation.js";
|
|
123
|
+
import { Markdown } from "./components/ai/markdown.js";
|
|
108
124
|
import { ModelPicker } from "./components/ai/model-picker.js";
|
|
109
125
|
import { PromptInput, PromptInputChip, PromptInputSelect } from "./components/ai/prompt-input.js";
|
|
110
126
|
import { ToolGroup, ToolStatusIcon, ToolStep } from "./components/ai/tool-steps.js";
|
|
111
|
-
import { AppleIcon, AuthLayout, GitHubIcon, GoogleIcon, LoginForm, SignupForm } from "./components/auth/auth.js";
|
|
127
|
+
import { AppleIcon, AuthForm, AuthLayout, GitHubIcon, GoogleIcon, LoginForm, NewPasswordForm, SignupForm } from "./components/auth/auth.js";
|
|
112
128
|
import { useCopyToClipboard } from "./hooks/use-copy-to-clipboard.js";
|
|
113
129
|
import { useHighlightedCode } from "./hooks/use-highlighted-code.js";
|
|
114
130
|
import { useMediaQuery } from "./hooks/use-media-query.js";
|
|
115
131
|
import { useIsMobile } from "./hooks/use-mobile.js";
|
|
116
132
|
import { highlightCode, loadHighlighter } from "./lib/highlighter.js";
|
|
117
133
|
import { cn } from "./lib/utils.js";
|
|
118
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionReceipt, ActivityFeed, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppBrand, AppNav, AppShell, AppleIcon, ApprovalCard, ApprovalResult, AskBox, AspectRatio, AssistantAvatar, AssistantDock, AssistantProvider, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, AuthLayout, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BarList, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Callout, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessage, ChatPanel, ChatShell, ChatThread, CheckCircle, Checkbox, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, CodeSnippet, Collapse, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ConversationList, CopyField, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DictationButton, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FocusLayout, GitHubIcon, GoogleIcon, Grid, Heading, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, KeyValueGrid, Label, LinkTile, LoginForm, Marker, MarkerContent, MarkerIcon, MediaItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageActions, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, Metric, MetricGroup, ModelPicker, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NewConversationButton, PageHeader, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, PromptInput, PromptInputChip, PromptInputSelect, Prose, Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, Row, ScrollArea, ScrollBar, SearchInput, SectionedList, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsRow, SettingsSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, ShowMore, Sidebar, SidebarCollapseButton, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignupForm, Skeleton, Slider, Sparkline, Spinner, Stack, StatCard, StatusBadge, StatusBars, StatusDot, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskRow, Text, Textarea, ThemeProvider, ThemeScript, ThemeToggle, Timeline, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToolCall, ToolGroup, ToolStatusIcon, ToolStep, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, TrendChart, TrendLegend, TypingIndicator, UsageMeter, UserChip, UserMenu, badgeVariants, browserSpeechSource, buttonGroupVariants, buttonVariants, cn, createDataTableColumnHelper, dataTableFeatures, formatWhen, groupByDate, highlightCode, initials, loadHighlighter, markerVariants, navigationMenuTriggerStyle, smoothPath, tabsListVariants, toastUndo, toggleVariants, useAssistant, useAssistantPage, useCarousel, useComboboxAnchor, useCopyToClipboard, useDictation, useDirection, useHighlightedCode, useIsMobile, useMediaQuery, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useSidebarOptional, useTheme };
|
|
134
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionReceipt, ActivityFeed, AgendaRow, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppBrand, AppNav, AppShell, AppleIcon, ApprovalCard, ApprovalResult, AskBox, AspectRatio, AssistantAvatar, AssistantDock, AssistantProvider, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, AuthForm, AuthLayout, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, AvatarStack, AvatarUpload, Badge, BarList, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Callout, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryDot, Celebration, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessage, ChatPanel, ChatShell, ChatThread, CheckCircle, Checkbox, ChecklistEditor, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, CodeSnippet, Collapse, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorSwatchPicker, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentThread, ConfirmDialog, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ConversationList, CopyField, DataTable, DateTimePicker, DayStrip, DetailSheet, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DictationButton, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FocusLayout, GitHubIcon, GoogleIcon, Grid, Heading, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, KeyValueGrid, Label, LinkTile, LoginForm, Markdown, MarkdownEditor, Marker, MarkerContent, MarkerIcon, MediaItem, MemberAvatar, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageActions, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, Metric, MetricGroup, ModelPicker, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NewConversationButton, NewPasswordForm, Page, PageHeader, PageSection, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, PromptDialog, PromptInput, PromptInputChip, PromptInputSelect, Prose, ProseBlockquote, Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, Row, ScrollArea, ScrollBar, SearchInput, SectionedList, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsRow, SettingsSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, ShowMore, Sidebar, SidebarCollapseButton, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignupForm, Skeleton, Slider, Sparkline, Spinner, Stack, StatCard, StatusBadge, StatusBars, StatusDot, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskRow, Text, Textarea, ThemeProvider, ThemeScript, ThemeToggle, TimeZonePicker, Timeline, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToolCall, ToolGroup, ToolStatusIcon, ToolStep, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, TrendChart, TrendLegend, TypingIndicator, UsageMeter, UserChip, UserMenu, VisibilityBadge, badgeVariants, browserSpeechSource, buttonGroupVariants, buttonVariants, categoryBg, celebrate, cn, createDataTableColumnHelper, cropImageToSquare, dataTableFeatures, formatWhen, groupByDate, highlightCode, initials, loadHighlighter, markerVariants, navigationMenuTriggerStyle, smoothPath, tabsListVariants, toast, toastUndo, toggleVariants, useAssistant, useAssistantPage, useCarousel, useComboboxAnchor, useCopyToClipboard, useDictation, useDirection, useHighlightedCode, useIsMobile, useMediaQuery, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useSidebarOptional, useTheme };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// src/lib/internal/date.ts
|
|
2
|
+
/** Parses a floating `YYYY-MM-DD` date (and optional `HH:MM` time) as local time. `new Date("YYYY-MM-DD")` is UTC. */
|
|
3
|
+
function parseLocalDate(date, time = "00:00") {
|
|
4
|
+
const [y, m, d] = date.split("-").map(Number);
|
|
5
|
+
const [h, min] = time.split(":").map(Number);
|
|
6
|
+
return new Date(y ?? 0, (m ?? 1) - 1, d ?? 1, h ?? 0, min ?? 0);
|
|
7
|
+
}
|
|
8
|
+
export { parseLocalDate };
|
package/dist/styles.css
CHANGED
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
--color-category-4: var(--category-4);
|
|
60
60
|
--color-category-5: var(--category-5);
|
|
61
61
|
--color-category-6: var(--category-6);
|
|
62
|
+
--color-category-foreground: var(--category-foreground);
|
|
62
63
|
--color-sidebar: var(--sidebar);
|
|
63
64
|
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
64
65
|
--color-sidebar-primary: var(--sidebar-primary);
|
|
@@ -121,6 +122,8 @@
|
|
|
121
122
|
--category-4: #c03a78;
|
|
122
123
|
--category-5: #5a6578;
|
|
123
124
|
--category-6: #0a7fa3;
|
|
125
|
+
/* Text and icons on a category fill (initials, a swatch's check). */
|
|
126
|
+
--category-foreground: #ffffff;
|
|
124
127
|
--elevation: 0 1px 2px rgb(24 24 27 / 0.04), 0 6px 20px rgb(24 24 27 / 0.05);
|
|
125
128
|
|
|
126
129
|
--sidebar: var(--background);
|
|
@@ -168,6 +171,7 @@
|
|
|
168
171
|
--category-4: #ec7fae;
|
|
169
172
|
--category-5: #9ba6b8;
|
|
170
173
|
--category-6: #4cbde0;
|
|
174
|
+
--category-foreground: #101012;
|
|
171
175
|
--elevation: 0 1px 2px rgb(0 0 0 / 0.3), 0 8px 24px rgb(0 0 0 / 0.22);
|
|
172
176
|
|
|
173
177
|
color-scheme: dark;
|
|
@@ -252,11 +256,37 @@
|
|
|
252
256
|
animation: hb-listening 900ms infinite ease-in-out;
|
|
253
257
|
}
|
|
254
258
|
|
|
259
|
+
/* Confetti piece for Celebration: flies out to (--hb-x, --hb-y), then falls and fades. */
|
|
260
|
+
@keyframes hb-confetti {
|
|
261
|
+
0% {
|
|
262
|
+
opacity: 1;
|
|
263
|
+
transform: translate(-50%, -50%) rotate(0deg);
|
|
264
|
+
}
|
|
265
|
+
35% {
|
|
266
|
+
opacity: 1;
|
|
267
|
+
transform: translate(calc(var(--hb-x) * 0.7), var(--hb-y)) rotate(calc(var(--hb-r) * 0.4));
|
|
268
|
+
}
|
|
269
|
+
100% {
|
|
270
|
+
opacity: 0;
|
|
271
|
+
transform: translate(var(--hb-x), 40vh) rotate(var(--hb-r));
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
@utility animate-confetti {
|
|
276
|
+
animation: hb-confetti 1400ms cubic-bezier(0.2, 0.6, 0.4, 1) both;
|
|
277
|
+
}
|
|
278
|
+
|
|
255
279
|
@media (prefers-reduced-motion: reduce) {
|
|
256
280
|
.animate-check-pop,
|
|
281
|
+
.animate-confetti,
|
|
257
282
|
.animate-listening {
|
|
258
283
|
animation: none;
|
|
259
284
|
}
|
|
285
|
+
/* tw-animate enter/exit on dialogs, menus, popovers and sheets (any variant prefix). Unlayered, so it wins. */
|
|
286
|
+
[class*="animate-in"],
|
|
287
|
+
[class*="animate-out"] {
|
|
288
|
+
animation: none;
|
|
289
|
+
}
|
|
260
290
|
.focus-box {
|
|
261
291
|
transition: none;
|
|
262
292
|
}
|
|
@@ -287,7 +317,7 @@
|
|
|
287
317
|
}
|
|
288
318
|
|
|
289
319
|
/* Toasts clear floating controls. AppNav (tab bar, action button) and AssistantDock (launcher) set --hb-toast-* on
|
|
290
|
-
<html> while mounted (src/lib/toast-clearance.ts); this adds them to Sonner's bottom offset. Unlayered and
|
|
320
|
+
<html> while mounted (src/lib/internal/toast-clearance.ts); this adds them to Sonner's bottom offset. Unlayered and
|
|
291
321
|
!important because Sonner injects its own unlayered rule at runtime. Breakpoints: AppNav's tab bar shows under
|
|
292
322
|
768px; Sonner switches to full-width mobile toasts under 600px. */
|
|
293
323
|
[data-sonner-toaster][data-y-position="bottom"] {
|