harebear-ui 0.8.1 → 0.9.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.
Files changed (51) hide show
  1. package/AGENTS.md +2 -2
  2. package/dist/components/admin/app-nav.d.ts +4 -0
  3. package/dist/components/admin/app-nav.js +2 -2
  4. package/dist/components/admin/avatar-upload.d.ts +32 -0
  5. package/dist/components/admin/avatar-upload.js +121 -0
  6. package/dist/components/admin/category.d.ts +17 -0
  7. package/dist/components/admin/category.js +35 -0
  8. package/dist/components/admin/celebration.d.ts +7 -0
  9. package/dist/components/admin/celebration.js +61 -0
  10. package/dist/components/admin/color-swatch-picker.d.ts +15 -0
  11. package/dist/components/admin/color-swatch-picker.js +68 -0
  12. package/dist/components/admin/date-time-picker.d.ts +20 -0
  13. package/dist/components/admin/date-time-picker.js +97 -0
  14. package/dist/components/admin/detail-sheet.d.ts +18 -0
  15. package/dist/components/admin/detail-sheet.js +80 -0
  16. package/dist/components/admin/markdown-editor.d.ts +15 -0
  17. package/dist/components/admin/markdown-editor.js +42 -0
  18. package/dist/components/admin/user-chip.d.ts +34 -3
  19. package/dist/components/admin/user-chip.js +66 -7
  20. package/dist/components/admin/user-menu.d.ts +4 -1
  21. package/dist/components/admin/user-menu.js +2 -1
  22. package/dist/components/ai/ask-box.d.ts +14 -2
  23. package/dist/components/ai/ask-box.js +90 -54
  24. package/dist/components/ai/assistant.d.ts +13 -3
  25. package/dist/components/ai/assistant.js +35 -7
  26. package/dist/components/ai/code-block.d.ts +10 -3
  27. package/dist/components/ai/code-block.js +54 -5
  28. package/dist/components/ai/conversation-list.d.ts +13 -3
  29. package/dist/components/ai/conversation-list.js +15 -26
  30. package/dist/components/auth/auth.js +4 -6
  31. package/dist/components/data/agenda-row.d.ts +26 -0
  32. package/dist/components/data/agenda-row.js +62 -0
  33. package/dist/components/data/day-strip.d.ts +22 -0
  34. package/dist/components/data/day-strip.js +68 -0
  35. package/dist/components/data/sectioned-list.d.ts +21 -6
  36. package/dist/components/data/sectioned-list.js +44 -21
  37. package/dist/components/data/task-row.d.ts +3 -0
  38. package/dist/components/data/task-row.js +6 -14
  39. package/dist/components/ui/avatar.js +1 -1
  40. package/dist/components/ui/kbd.js +1 -1
  41. package/dist/components/ui/password-input.d.ts +8 -0
  42. package/dist/components/ui/password-input.js +32 -0
  43. package/dist/index.d.ts +15 -5
  44. package/dist/index.js +13 -3
  45. package/dist/lib/date.js +8 -0
  46. package/dist/styles.css +25 -0
  47. package/docs/COMPONENTS.md +164 -14
  48. package/docs/ROADMAP.md +12 -11
  49. package/llms.txt +8 -7
  50. package/package.json +1 -1
  51. package/skills/harebear-ui/SKILL.md +2 -1
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { Button } from "./button.js";
3
+ import { Input } from "./input.js";
4
+ import { cn } from "../../lib/utils.js";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { EyeIcon, EyeOffIcon } from "lucide-react";
8
+ // src/components/ui/password-input.tsx
9
+ /** Password `Input` with a Show/Hide button that switches it to plain text. Props go to the input. */
10
+ function PasswordInput({ className, wrapperClassName, disabled, ...props }) {
11
+ const [shown, setShown] = React.useState(false);
12
+ return /* @__PURE__ */ jsxs("div", {
13
+ "data-slot": "password-input",
14
+ className: cn("relative", wrapperClassName),
15
+ children: [/* @__PURE__ */ jsx(Input, {
16
+ type: shown ? "text" : "password",
17
+ disabled,
18
+ className: cn("pr-12", className),
19
+ ...props
20
+ }), /* @__PURE__ */ jsx(Button, {
21
+ type: "button",
22
+ variant: "ghost",
23
+ size: "icon-sm",
24
+ disabled,
25
+ "aria-label": shown ? "Hide password" : "Show password",
26
+ onClick: () => setShown((s) => !s),
27
+ className: "absolute top-1/2 right-1 -translate-y-1/2 text-muted-foreground after:absolute after:-inset-1.5",
28
+ children: shown ? /* @__PURE__ */ jsx(EyeOffIcon, {}) : /* @__PURE__ */ jsx(EyeIcon, {})
29
+ })]
30
+ });
31
+ }
32
+ export { PasswordInput };
package/dist/index.d.ts 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, PasswordInputProps } 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";
@@ -67,12 +68,19 @@ import { Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigg
67
68
  import { ActivityFeed, ActivityItem } from "./components/admin/activity-feed.js";
68
69
  import { AppNav, AppNavAction, AppNavGroup, AppNavPlace, AppNavProps } from "./components/admin/app-nav.js";
69
70
  import { AppBrand, AppBrandProps, AppNavItem, AppNavSection, AppShell, AppShellProps } from "./components/admin/app-shell.js";
71
+ import { AvatarUpload, AvatarUploadProps, cropImageToSquare } from "./components/admin/avatar-upload.js";
70
72
  import { Callout } from "./components/admin/callout.js";
73
+ import { CategoryColor, CategoryDot, CategoryDotProps, categoryBg } from "./components/admin/category.js";
74
+ import { Celebration, CelebrationProps, celebrate } from "./components/admin/celebration.js";
75
+ import { ColorSwatchPicker, ColorSwatchPickerProps } from "./components/admin/color-swatch-picker.js";
71
76
  import { ConfirmDialog, ConfirmDialogProps } from "./components/admin/confirm-dialog.js";
72
77
  import { CopyField, CopyFieldProps } from "./components/admin/copy-field.js";
78
+ import { DateTimePicker, DateTimePickerProps, DateTimeValue } from "./components/admin/date-time-picker.js";
79
+ import { DetailSheet, DetailSheetProps } from "./components/admin/detail-sheet.js";
73
80
  import { FocusLayout, FocusLayoutProps } from "./components/admin/focus-layout.js";
74
81
  import { KeyValueGrid, KeyValueItem } from "./components/admin/key-value-grid.js";
75
82
  import { LinkTile, LinkTileProps } from "./components/admin/link-tile.js";
83
+ import { MarkdownEditor, MarkdownEditorProps } from "./components/admin/markdown-editor.js";
76
84
  import { PageHeader, PageHeaderProps } from "./components/admin/page-header.js";
77
85
  import { SearchInput, SearchInputProps } from "./components/admin/search-input.js";
78
86
  import { SettingsRow, SettingsRowProps, SettingsSection, SettingsSectionProps } from "./components/admin/settings.js";
@@ -81,7 +89,7 @@ import { StatCard, StatCardProps } from "./components/admin/stat-card.js";
81
89
  import { StatusBadge, StatusBadgeProps, StatusDot, StatusDotProps, StatusTone } from "./components/admin/status.js";
82
90
  import { Timeline, TimelineItem } from "./components/admin/timeline.js";
83
91
  import { UsageMeter, UsageMeterProps } from "./components/admin/usage-meter.js";
84
- import { UserChip, UserChipProps, initials } from "./components/admin/user-chip.js";
92
+ import { AvatarStack, AvatarStackProps, MemberAvatar, MemberAvatarProps, UserChip, UserChipProps, VisibilityBadge, VisibilityBadgeProps, initials } from "./components/admin/user-chip.js";
85
93
  import { UserMenu, UserMenuProps } from "./components/admin/user-menu.js";
86
94
  import { Collapse, CollapseProps } from "./components/layout/collapse.js";
87
95
  import { MediaItem, MediaItemProps } from "./components/layout/media-item.js";
@@ -89,8 +97,10 @@ import { Metric, MetricGroup, MetricProps } from "./components/layout/metric.js"
89
97
  import { ShowMore, ShowMoreProps } from "./components/layout/show-more.js";
90
98
  import { Grid, GridCols, GridProps, ResponsiveGridCols, Row, RowProps, Stack, StackAlign, StackJustify, StackProps, StackSpace } from "./components/layout/stack.js";
91
99
  import { Heading, HeadingProps, Text, TextProps, TextTone } from "./components/layout/text.js";
100
+ import { AgendaRow, AgendaRowProps, AgendaRowWho } from "./components/data/agenda-row.js";
92
101
  import { BarList, BarListItem } from "./components/data/bar-list.js";
93
102
  import { DataTable, DataTableColumnDef, DataTableFeatures, DataTableProps, createDataTableColumnHelper, dataTableFeatures } from "./components/data/data-table.js";
103
+ import { DayStrip, DayStripDay, DayStripProps } from "./components/data/day-strip.js";
94
104
  import { SectionedList, SectionedListItem, SectionedListProps, SectionedListSection } from "./components/data/sectioned-list.js";
95
105
  import { Sparkline, SparklineProps, smoothPath } from "./components/data/sparkline.js";
96
106
  import { StatusBarDatum, StatusBars, StatusBarsProps } from "./components/data/status-bars.js";
@@ -99,11 +109,11 @@ import { TrendChart, TrendChartProps, TrendLegend, TrendSeries } from "./compone
99
109
  import { ActionReceipt, ActionReceiptProps } from "./components/ai/action-receipt.js";
100
110
  import { ApprovalCard, ApprovalCardProps, ApprovalResult, ApprovalResultProps } from "./components/ai/approval.js";
101
111
  import { AskBox, AskBoxProps } from "./components/ai/ask-box.js";
102
- import { AssistantContextValue, AssistantDock, AssistantDockProps, AssistantMessage, AssistantPage, AssistantProvider, AssistantProviderProps, AssistantSendContext, useAssistant, useAssistantPage } from "./components/ai/assistant.js";
112
+ import { AssistantContextValue, AssistantDock, AssistantDockProps, AssistantMessage, AssistantPage, AssistantProvider, AssistantProviderProps, AssistantSendContext, AssistantSendOptions, useAssistant, useAssistantPage } from "./components/ai/assistant.js";
103
113
  import { ChatPanel, ChatPanelProps, ChatShell, ChatShellProps } from "./components/ai/chat-shell.js";
104
114
  import { AssistantAvatar, ChatMessage, ChatMessageProps, ChatThread, ChatThreadProps, MessageActions, MessageActionsProps, ToolCall, ToolCallProps, TypingIndicator, TypingIndicatorProps } from "./components/ai/chat.js";
105
- import { CodeSnippet, CodeSnippetProps, InlineCode, InlineCodeProps, Prose } from "./components/ai/code-block.js";
106
- import { Conversation, ConversationGroup, ConversationList, ConversationListProps, NewConversationButton, NewConversationButtonProps, formatWhen, groupByDate } from "./components/ai/conversation-list.js";
115
+ import { CodeSnippet, CodeSnippetProps, InlineCode, InlineCodeProps, Prose, ProseBlockquote } from "./components/ai/code-block.js";
116
+ import { Conversation, ConversationGroup, ConversationList, ConversationListProps, GroupByDateOptions, NewConversationButton, NewConversationButtonProps, formatWhen, groupByDate } from "./components/ai/conversation-list.js";
107
117
  import { DictationButton, DictationButtonProps, SpeechSource, SpeechSourceHandlers, UseDictationOptions, browserSpeechSource, useDictation } from "./components/ai/dictation.js";
108
118
  import { ModelOption, ModelPicker, ModelPickerProps } from "./components/ai/model-picker.js";
109
119
  import { PromptInput, PromptInputChip, PromptInputChipProps, PromptInputProps, PromptInputSelect, PromptInputSelectOption, PromptInputSelectProps } from "./components/ai/prompt-input.js";
@@ -115,4 +125,4 @@ import { useMediaQuery } from "./hooks/use-media-query.js";
115
125
  import { useIsMobile } from "./hooks/use-mobile.js";
116
126
  import { highlightCode, loadHighlighter } from "./lib/highlighter.js";
117
127
  import { cn } from "./lib/utils.js";
118
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionReceipt, type ActionReceiptProps, ActivityFeed, type ActivityItem, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppBrand, type AppBrandProps, AppNav, type AppNavAction, type AppNavGroup, type AppNavItem, type AppNavPlace, type AppNavProps, type AppNavSection, AppShell, type AppShellProps, AppleIcon, ApprovalCard, type ApprovalCardProps, ApprovalResult, type ApprovalResultProps, AskBox, type AskBoxProps, AspectRatio, AssistantAvatar, type AssistantContextValue, AssistantDock, type AssistantDockProps, type AssistantMessage, type AssistantPage, AssistantProvider, type AssistantProviderProps, type AssistantSendContext, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, AuthLayout, type AuthLayoutProps, type AuthProvider, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BarList, type BarListItem, 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, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessage, type ChatMessageProps, ChatPanel, type ChatPanelProps, ChatShell, type ChatShellProps, ChatThread, type ChatThreadProps, CheckCircle, type CheckCircleProps, Checkbox, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, CodeSnippet, type CodeSnippetProps, Collapse, type CollapseProps, 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, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type Conversation, type ConversationGroup, ConversationList, type ConversationListProps, CopyField, type CopyFieldProps, DataTable, type DataTableColumnDef, type DataTableFeatures, type DataTableProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DictationButton, type DictationButtonProps, 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, type FocusLayoutProps, GitHubIcon, GoogleIcon, Grid, type GridCols, type GridProps, Heading, type HeadingProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, type InlineCodeProps, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, KeyValueGrid, type KeyValueItem, Label, LinkTile, type LinkTileProps, LoginForm, type LoginFormProps, type LoginValues, Marker, MarkerContent, MarkerIcon, MediaItem, type MediaItemProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageActions, type MessageActionsProps, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, Metric, MetricGroup, type MetricProps, type ModelOption, ModelPicker, type ModelPickerProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NewConversationButton, type NewConversationButtonProps, PageHeader, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, PromptInput, PromptInputChip, type PromptInputChipProps, type PromptInputProps, PromptInputSelect, type PromptInputSelectOption, type PromptInputSelectProps, Prose, Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, type ResolvedThemeMode, type ResponsiveGridCols, Row, type RowProps, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, SectionedList, type SectionedListItem, type SectionedListProps, type SectionedListSection, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsRow, type SettingsRowProps, SettingsSection, type SettingsSectionProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, Sidebar, SidebarCollapseButton, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, type SidebarLayoutProps, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignupForm, type SignupFormProps, type SignupValues, Skeleton, Slider, Sparkline, type SparklineProps, type SpeechSource, type SpeechSourceHandlers, Spinner, Stack, type StackAlign, type StackJustify, type StackProps, type StackSpace, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBarDatum, StatusBars, type StatusBarsProps, StatusDot, type StatusDotProps, type StatusTone, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskRow, type TaskRowAssignee, type TaskRowProps, Text, type TextProps, type TextTone, Textarea, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeScript, ThemeToggle, Timeline, type TimelineItem, type ToastUndoOptions, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToolCall, type ToolCallProps, ToolGroup, type ToolGroupProps, type ToolStatus, ToolStatusIcon, ToolStep, type ToolStepProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, TrendChart, type TrendChartProps, TrendLegend, type TrendSeries, TypingIndicator, type TypingIndicatorProps, UsageMeter, type UsageMeterProps, type UseDictationOptions, UserChip, type UserChipProps, UserMenu, type UserMenuProps, 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 };
128
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionReceipt, type ActionReceiptProps, ActivityFeed, type ActivityItem, AgendaRow, type AgendaRowProps, type AgendaRowWho, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppBrand, type AppBrandProps, AppNav, type AppNavAction, type AppNavGroup, type AppNavItem, type AppNavPlace, type AppNavProps, type AppNavSection, AppShell, type AppShellProps, AppleIcon, ApprovalCard, type ApprovalCardProps, ApprovalResult, type ApprovalResultProps, AskBox, type AskBoxProps, AspectRatio, AssistantAvatar, type AssistantContextValue, AssistantDock, type AssistantDockProps, type AssistantMessage, type AssistantPage, AssistantProvider, type AssistantProviderProps, type AssistantSendContext, type AssistantSendOptions, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, AuthLayout, type AuthLayoutProps, type AuthProvider, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, AvatarStack, type AvatarStackProps, AvatarUpload, type AvatarUploadProps, Badge, BarList, type BarListItem, 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, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CategoryColor, CategoryDot, type CategoryDotProps, Celebration, type CelebrationProps, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessage, type ChatMessageProps, ChatPanel, type ChatPanelProps, ChatShell, type ChatShellProps, ChatThread, type ChatThreadProps, CheckCircle, type CheckCircleProps, Checkbox, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, CodeSnippet, type CodeSnippetProps, Collapse, type CollapseProps, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorSwatchPicker, type ColorSwatchPickerProps, 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, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type Conversation, type ConversationGroup, ConversationList, type ConversationListProps, CopyField, type CopyFieldProps, DataTable, type DataTableColumnDef, type DataTableFeatures, type DataTableProps, DateTimePicker, type DateTimePickerProps, type DateTimeValue, DayStrip, type DayStripDay, type DayStripProps, DetailSheet, type DetailSheetProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DictationButton, type DictationButtonProps, 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, type FocusLayoutProps, GitHubIcon, GoogleIcon, Grid, type GridCols, type GridProps, type GroupByDateOptions, Heading, type HeadingProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, type InlineCodeProps, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, KeyValueGrid, type KeyValueItem, Label, LinkTile, type LinkTileProps, LoginForm, type LoginFormProps, type LoginValues, MarkdownEditor, type MarkdownEditorProps, Marker, MarkerContent, MarkerIcon, MediaItem, type MediaItemProps, MemberAvatar, type MemberAvatarProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageActions, type MessageActionsProps, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, Metric, MetricGroup, type MetricProps, type ModelOption, ModelPicker, type ModelPickerProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NewConversationButton, type NewConversationButtonProps, PageHeader, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, type PasswordInputProps, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, PromptInput, PromptInputChip, type PromptInputChipProps, type PromptInputProps, PromptInputSelect, type PromptInputSelectOption, type PromptInputSelectProps, Prose, ProseBlockquote, Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, type ResolvedThemeMode, type ResponsiveGridCols, Row, type RowProps, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, SectionedList, type SectionedListItem, type SectionedListProps, type SectionedListSection, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsRow, type SettingsRowProps, SettingsSection, type SettingsSectionProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, Sidebar, SidebarCollapseButton, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, type SidebarLayoutProps, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignupForm, type SignupFormProps, type SignupValues, Skeleton, Slider, Sparkline, type SparklineProps, type SpeechSource, type SpeechSourceHandlers, Spinner, Stack, type StackAlign, type StackJustify, type StackProps, type StackSpace, StatCard, type StatCardProps, StatusBadge, type StatusBadgeProps, type StatusBarDatum, StatusBars, type StatusBarsProps, StatusDot, type StatusDotProps, type StatusTone, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskRow, type TaskRowAssignee, type TaskRowProps, Text, type TextProps, type TextTone, Textarea, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeScript, ThemeToggle, Timeline, type TimelineItem, type ToastUndoOptions, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToolCall, type ToolCallProps, ToolGroup, type ToolGroupProps, type ToolStatus, ToolStatusIcon, ToolStep, type ToolStepProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Trace, TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, TrendChart, type TrendChartProps, TrendLegend, type TrendSeries, TypingIndicator, type TypingIndicatorProps, UsageMeter, type UsageMeterProps, type UseDictationOptions, UserChip, type UserChipProps, UserMenu, type UserMenuProps, VisibilityBadge, type VisibilityBadgeProps, badgeVariants, browserSpeechSource, buttonGroupVariants, buttonVariants, categoryBg, celebrate, cn, createDataTableColumnHelper, cropImageToSquare, 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 };
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";
@@ -67,12 +68,19 @@ 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 { ColorSwatchPicker } from "./components/admin/color-swatch-picker.js";
71
76
  import { ConfirmDialog } from "./components/admin/confirm-dialog.js";
72
77
  import { CopyField } from "./components/admin/copy-field.js";
78
+ import { DateTimePicker } from "./components/admin/date-time-picker.js";
79
+ import { DetailSheet } from "./components/admin/detail-sheet.js";
73
80
  import { FocusLayout } from "./components/admin/focus-layout.js";
74
81
  import { KeyValueGrid } from "./components/admin/key-value-grid.js";
75
82
  import { LinkTile } from "./components/admin/link-tile.js";
83
+ import { MarkdownEditor } from "./components/admin/markdown-editor.js";
76
84
  import { PageHeader } from "./components/admin/page-header.js";
77
85
  import { SearchInput } from "./components/admin/search-input.js";
78
86
  import { SettingsRow, SettingsSection } from "./components/admin/settings.js";
@@ -81,7 +89,7 @@ import { StatCard } from "./components/admin/stat-card.js";
81
89
  import { StatusBadge, StatusDot } from "./components/admin/status.js";
82
90
  import { Timeline } from "./components/admin/timeline.js";
83
91
  import { UsageMeter } from "./components/admin/usage-meter.js";
84
- import { UserChip, initials } from "./components/admin/user-chip.js";
92
+ import { AvatarStack, MemberAvatar, UserChip, VisibilityBadge, initials } from "./components/admin/user-chip.js";
85
93
  import { UserMenu } from "./components/admin/user-menu.js";
86
94
  import { Collapse } from "./components/layout/collapse.js";
87
95
  import { MediaItem } from "./components/layout/media-item.js";
@@ -89,8 +97,10 @@ import { Metric, MetricGroup } from "./components/layout/metric.js";
89
97
  import { ShowMore } from "./components/layout/show-more.js";
90
98
  import { Grid, Row, Stack } from "./components/layout/stack.js";
91
99
  import { Heading, Text } from "./components/layout/text.js";
100
+ import { AgendaRow } from "./components/data/agenda-row.js";
92
101
  import { BarList } from "./components/data/bar-list.js";
93
102
  import { DataTable, createDataTableColumnHelper, dataTableFeatures } from "./components/data/data-table.js";
103
+ import { DayStrip } from "./components/data/day-strip.js";
94
104
  import { SectionedList } from "./components/data/sectioned-list.js";
95
105
  import { Sparkline, smoothPath } from "./components/data/sparkline.js";
96
106
  import { StatusBars } from "./components/data/status-bars.js";
@@ -102,7 +112,7 @@ import { AskBox } from "./components/ai/ask-box.js";
102
112
  import { AssistantDock, AssistantProvider, useAssistant, useAssistantPage } from "./components/ai/assistant.js";
103
113
  import { ChatPanel, ChatShell } from "./components/ai/chat-shell.js";
104
114
  import { AssistantAvatar, ChatMessage, ChatThread, MessageActions, ToolCall, TypingIndicator } from "./components/ai/chat.js";
105
- import { CodeSnippet, InlineCode, Prose } from "./components/ai/code-block.js";
115
+ import { CodeSnippet, InlineCode, Prose, ProseBlockquote } from "./components/ai/code-block.js";
106
116
  import { ConversationList, NewConversationButton, formatWhen, groupByDate } from "./components/ai/conversation-list.js";
107
117
  import { DictationButton, browserSpeechSource, useDictation } from "./components/ai/dictation.js";
108
118
  import { ModelPicker } from "./components/ai/model-picker.js";
@@ -115,4 +125,4 @@ import { useMediaQuery } from "./hooks/use-media-query.js";
115
125
  import { useIsMobile } from "./hooks/use-mobile.js";
116
126
  import { highlightCode, loadHighlighter } from "./lib/highlighter.js";
117
127
  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 };
128
+ 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, 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, 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, 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, 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, PageHeader, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, 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, 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, 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/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,8 +256,29 @@
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
  }