@hilum/ui 3.6.11 → 3.7.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/dist/index.d.ts CHANGED
@@ -455,10 +455,12 @@ interface CardHeadingProps {
455
455
  }
456
456
  declare function CardHeading({ title, description, actions, children, className }: CardHeadingProps): react_jsx_runtime.JSX.Element;
457
457
 
458
+ type CardMobileSurface = "default" | "flat" | "flush";
458
459
  declare const cardVariants: (props?: ({
459
- variant?: "default" | "ghost" | "muted" | "responsive" | null | undefined;
460
+ variant?: "default" | "ghost" | "muted" | "outlined" | "elevated" | "responsive" | null | undefined;
460
461
  } & class_variance_authority_types.ClassProp) | undefined) => string;
461
462
  interface CardProps extends React.ComponentProps<"div">, VariantProps<typeof cardVariants> {
463
+ mobileSurface?: CardMobileSurface;
462
464
  }
463
465
  declare const Card: React.ForwardRefExoticComponent<Omit<CardProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
464
466
  declare const CardHeader: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -616,6 +618,18 @@ declare const CollapsibleRoot: React.ForwardRefExoticComponent<Collapsible.Colla
616
618
  declare const CollapsibleTrigger: React.ForwardRefExoticComponent<Collapsible.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
617
619
  declare const CollapsibleContent: React.ForwardRefExoticComponent<Collapsible.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>>;
618
620
 
621
+ type ControlDensity = "default" | "compact";
622
+ type ControlMobileSurface = "default" | "flush";
623
+ interface InputProps extends React.ComponentProps<"input"> {
624
+ density?: ControlDensity;
625
+ mobileDensity?: ControlDensity;
626
+ mobileSurface?: ControlMobileSurface;
627
+ }
628
+ declare function Input({ className, type, density, mobileDensity, mobileSurface, ...props }: InputProps): react_jsx_runtime.JSX.Element;
629
+ declare namespace Input {
630
+ var displayName: string;
631
+ }
632
+
619
633
  interface ColorInputProps {
620
634
  value: string;
621
635
  onChange: (next: string) => void;
@@ -625,12 +639,13 @@ interface ColorInputProps {
625
639
  className?: string;
626
640
  disabled?: boolean;
627
641
  presets?: string[];
642
+ mobileSurface?: ControlMobileSurface;
628
643
  }
629
644
  /**
630
645
  * Compact, inline color input designed for designer property panels.
631
646
  * Combines a swatch trigger (ColorPicker), a hex input, and an optional opacity field.
632
647
  */
633
- declare function ColorInput({ value, onChange, opacity, onOpacityChange, className, disabled, presets, }: ColorInputProps): react_jsx_runtime.JSX.Element;
648
+ declare function ColorInput({ value, onChange, opacity, onOpacityChange, className, disabled, presets, mobileSurface, }: ColorInputProps): react_jsx_runtime.JSX.Element;
634
649
  declare namespace ColorInput {
635
650
  var displayName: string;
636
651
  }
@@ -1249,11 +1264,6 @@ declare const InputOTPSlot: React.ForwardRefExoticComponent<React.HTMLAttributes
1249
1264
  } & React.RefAttributes<HTMLDivElement>>;
1250
1265
  declare const InputOTPSeparator: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
1251
1266
 
1252
- declare function Input({ className, type, ...props }: React.ComponentProps<"input">): react_jsx_runtime.JSX.Element;
1253
- declare namespace Input {
1254
- var displayName: string;
1255
- }
1256
-
1257
1267
  declare const Kbd: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
1258
1268
 
1259
1269
  declare const Label: React.ForwardRefExoticComponent<Omit<Label$1.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
@@ -1676,6 +1686,9 @@ interface SelectTriggerProps extends HTMLAttributes<HTMLButtonElement>, VariantP
1676
1686
  icon?: IconComponent;
1677
1687
  placeholder?: string;
1678
1688
  error?: string;
1689
+ density?: ControlDensity;
1690
+ mobileDensity?: ControlDensity;
1691
+ mobileSurface?: ControlMobileSurface;
1679
1692
  }
1680
1693
  declare const SelectTrigger: React.ForwardRefExoticComponent<SelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
1681
1694
  interface SelectContentProps {
@@ -1984,9 +1997,14 @@ interface SwitchProps extends Omit<HTMLAttributes<HTMLDivElement>, "onToggle"> {
1984
1997
  }
1985
1998
  declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLDivElement>>;
1986
1999
 
2000
+ type TableDensity = "default" | "compact";
2001
+ type TableMobileSurface = "default" | "flat";
1987
2002
  interface TableProps extends HTMLAttributes<HTMLTableElement> {
1988
2003
  children: ReactNode;
1989
2004
  containerClassName?: string;
2005
+ density?: TableDensity;
2006
+ mobileDensity?: TableDensity;
2007
+ mobileSurface?: TableMobileSurface;
1990
2008
  }
1991
2009
  declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
1992
2010
  declare const TableHeader: React.ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
@@ -2055,7 +2073,12 @@ interface TabsSubtlePanelProps extends HTMLAttributes<HTMLDivElement> {
2055
2073
  }
2056
2074
  declare const TabsSubtlePanel: React.ForwardRefExoticComponent<TabsSubtlePanelProps & React.RefAttributes<HTMLDivElement>>;
2057
2075
 
2058
- declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
2076
+ interface TextareaProps extends React.ComponentProps<"textarea"> {
2077
+ density?: ControlDensity;
2078
+ mobileDensity?: ControlDensity;
2079
+ mobileSurface?: ControlMobileSurface;
2080
+ }
2081
+ declare function Textarea({ className, density, mobileDensity, mobileSurface, ...props }: TextareaProps): react_jsx_runtime.JSX.Element;
2059
2082
 
2060
2083
  interface ThinkingIndicatorProps extends HTMLAttributes<HTMLDivElement> {
2061
2084
  label?: string;
@@ -2142,12 +2165,13 @@ interface TitledCardProps {
2142
2165
  className?: string;
2143
2166
  }>;
2144
2167
  contentPadding?: "default" | "flush-mobile" | "flush";
2168
+ mobileSurface?: CardMobileSurface;
2145
2169
  className?: string;
2146
2170
  contentClassName?: string;
2147
2171
  containerClassName?: string;
2148
2172
  titleClassName?: string;
2149
2173
  }
2150
- declare function TitledCard({ title, subtitle, children, actionButtons, icon: Icon, contentPadding, className, contentClassName, containerClassName, titleClassName, }: TitledCardProps): react_jsx_runtime.JSX.Element;
2174
+ declare function TitledCard({ title, subtitle, children, actionButtons, icon: Icon, contentPadding, mobileSurface, className, contentClassName, containerClassName, titleClassName, }: TitledCardProps): react_jsx_runtime.JSX.Element;
2151
2175
  declare namespace TitledCard {
2152
2176
  var displayName: string;
2153
2177
  }
@@ -2228,4 +2252,4 @@ interface UsageBarProps extends React.HTMLAttributes<HTMLDivElement> {
2228
2252
  }
2229
2253
  declare function UsageBar({ label, value, max, percent, valueLabel, showPercent, layout, tone, className, barClassName, indicatorClassName, ...props }: UsageBarProps): react_jsx_runtime.JSX.Element;
2230
2254
 
2231
- export { Accordion, AccordionContent, AccordionGroup, AccordionItem, AccordionTrigger, AccountMenuContent, AccountMenuHeader, AccountMenuItem, AccountMenuSection, AccountMenuSeparator, ActionPanel, ActivityFeed, Alert, AlertDescription, AlertDialogRoot as AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, type AskUserAnswer, type AskUserOption, type AskUserQuestion, AskUserQuestions, type AskUserQuestionsProps, AspectRatioRoot as AspectRatio, Avatar, AvatarFallback, AvatarImage, AvatarStack, type AvatarStackItem, AvatarWithStatus, Badge, type BadgeColor, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem$1 as BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupItem, type ButtonProps, CHART_COLORS, Calendar, type CalendarProps, Callout, type CalloutProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardHeading, CardMedia, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessage, type ChatMessageProps, CheckboxRoot as Checkbox, CheckboxCard, type CheckboxCardProps, CheckboxGroup, CheckboxItem, CollapsibleRoot as Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorFormat, ColorInput, type ColorInputProps, ColorPicker, ColorPickerPopover, type ColorPickerPopoverProps, ColorPickerPortalContainer, type ColorPickerProps, ColorSwatch, type ColorSwatchProps, ColorTile, Combobox, type ComboboxOption, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandPalette, type CommandPaletteItem, CommandSeparator, CommandShortcut, ContextMenuRoot as ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, type DataTransferAction, DataTransferControls, type DataTransferControlsProps, type DataTransferScopeOption, DatePicker, type DescriptionItem, DescriptionList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DrawerRoot as Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, Dropdown, DropdownLabel, DropdownMenuRoot as DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DropdownSeparator, EmptyState, type FeedEvent, Field, FileDropzone, type FileDropzoneProps, type FileDropzoneSelectedFile, FileThumbnail, type FileThumbnailProps, GridList, GridListAccentCard, GridListCard, HelpTooltip, type HelpTooltipProps, HoverCardRoot as HoverCard, HoverCardContent, HoverCardTrigger, type IconComponent, type IconLibrary, type IconName, IconProvider, Input, InputCopy, type InputCopyProps, InputField, InputGroup, InputMessage, type InputMessageProps, type InputMessageSlotContext, InputNumber, type InputNumberProps, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, Label, MediaAssetCard, type MediaAssetCardProps, MediaAssetGrid, MediaAssetGridItem, type MediaAssetGridProps, MediaObject, MenuItem, MenubarRoot as Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MobileDrawer, type MobileDrawerProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavItem, type NavItemProps, NavMenu, type NavMenuItem, type NavMenuProps, NavigationMenuRoot as NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Notification, PageHeading, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type ParsedColor, PopoverRoot as Popover, PopoverClose, PopoverContent, PopoverTrigger, ProgressRoot as Progress, PropertyRow, type PropertyRowProps, type QueuedMessage, type RadioCardOption, RadioCards, RadioGroup, RadioGroupItem, RadioItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, type RichTextEditorProps, type RichTextImageUrlHandler, SIDEBAR_COOKIE_MAX_AGE, SIDEBAR_COOKIE_NAME, SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, ScrollAreaRoot as ScrollArea, SearchableTable, type SearchableTableColumn, type SearchableTableFilterOption, type SearchableTableProps, SectionHeading, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectLabel, type SelectProps, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, type ShapeClasses, ShapeProvider, type ShapeVariant, SheetRoot as Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SliderComfortable, type SliderComfortableProps, SliderControl, type SliderProps, type SliderValue, Spinner, StackedList, StackedListItem, StatCard, StatCardGrid, type StatCardGridProps, type StatCardProps, StatCardSlot, type StatCardSlotProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant, StatusTile, StatusTileGrid, type StatusTileGridProps, type StatusTileProps, type Step, type StepStatus, Steps, SummaryTile, SummaryTileGrid, type SummaryTileGridProps, type SummaryTileProps, SurfaceProvider, Switch, type SwitchProps, TabItem, type TabItemProps, TabPanel, type TabPanelProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, type TabsListProps, type TabsProps, TabsSubtle, TabsSubtleItem, TabsSubtlePanel, TabsTrigger, Textarea, ThinkingIndicator, type ThinkingIndicatorProps, ThinkingStep, ThinkingStepDetails, type ThinkingStepDetailsProps, ThinkingStepImage, type ThinkingStepImageProps, type ThinkingStepProps, ThinkingStepSource, type ThinkingStepSourceProps, ThinkingStepSources, type ThinkingStepSourcesProps, type ThinkingStepStatus, ThinkingSteps, ThinkingStepsContent, type ThinkingStepsContentProps, ThinkingStepsHeader, type ThinkingStepsHeaderProps, type ThinkingStepsProps, TitledCard, type TitledCardProps, Toaster, ToggleRoot as Toggle, ToggleGroupRoot as ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipPortalContainer, type TooltipProps, TooltipProvider, TooltipRoot, type TooltipSide, TooltipTrigger, UrlRedirectPrompt, type UrlRedirectPromptProps, UsageBar, type UsageBarLayout, type UsageBarProps, type UsageBarTone, type ValuePosition, badgeColors, badgeVariants, buildParsed, buttonVariants, cardVariants, cn, formatDate, formatFileSize, hasUrlHandleChanged, iconLibraryLabels, iconLibraryOrder, loadPdfjs, navigationMenuTriggerStyle, normalizeUrlHandle, parseColor, renderPdfFirstPage, shapeMap, spinnerVariants, statusBadgeVariantFor, statusLabel, toggleVariants, triggerVariants, urlResourcePath, useDropdown, useIcon, useIconLibrary, useIcons, useOptionalSidebar, useShape, useShapeContext, useSidebar, useSurface };
2255
+ export { Accordion, AccordionContent, AccordionGroup, AccordionItem, AccordionTrigger, AccountMenuContent, AccountMenuHeader, AccountMenuItem, AccountMenuSection, AccountMenuSeparator, ActionPanel, ActivityFeed, Alert, AlertDescription, AlertDialogRoot as AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, type AskUserAnswer, type AskUserOption, type AskUserQuestion, AskUserQuestions, type AskUserQuestionsProps, AspectRatioRoot as AspectRatio, Avatar, AvatarFallback, AvatarImage, AvatarStack, type AvatarStackItem, AvatarWithStatus, Badge, type BadgeColor, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem$1 as BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupItem, type ButtonProps, CHART_COLORS, Calendar, type CalendarProps, Callout, type CalloutProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardHeading, CardMedia, type CardMobileSurface, type CardProps, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessage, type ChatMessageProps, CheckboxRoot as Checkbox, CheckboxCard, type CheckboxCardProps, CheckboxGroup, CheckboxItem, CollapsibleRoot as Collapsible, CollapsibleContent, CollapsibleTrigger, type ColorFormat, ColorInput, type ColorInputProps, ColorPicker, ColorPickerPopover, type ColorPickerPopoverProps, ColorPickerPortalContainer, type ColorPickerProps, ColorSwatch, type ColorSwatchProps, ColorTile, Combobox, type ComboboxOption, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandPalette, type CommandPaletteItem, CommandSeparator, CommandShortcut, ContextMenuRoot as ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, type ControlDensity, type ControlMobileSurface, DataTable, type DataTransferAction, DataTransferControls, type DataTransferControlsProps, type DataTransferScopeOption, DatePicker, type DescriptionItem, DescriptionList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DrawerRoot as Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, Dropdown, DropdownLabel, DropdownMenuRoot as DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DropdownSeparator, EmptyState, type FeedEvent, Field, FileDropzone, type FileDropzoneProps, type FileDropzoneSelectedFile, FileThumbnail, type FileThumbnailProps, GridList, GridListAccentCard, GridListCard, HelpTooltip, type HelpTooltipProps, HoverCardRoot as HoverCard, HoverCardContent, HoverCardTrigger, type IconComponent, type IconLibrary, type IconName, IconProvider, Input, InputCopy, type InputCopyProps, InputField, InputGroup, InputMessage, type InputMessageProps, type InputMessageSlotContext, InputNumber, type InputNumberProps, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Kbd, Label, MediaAssetCard, type MediaAssetCardProps, MediaAssetGrid, MediaAssetGridItem, type MediaAssetGridProps, MediaObject, MenuItem, MenubarRoot as Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MobileDrawer, type MobileDrawerProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavItem, type NavItemProps, NavMenu, type NavMenuItem, type NavMenuProps, NavigationMenuRoot as NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Notification, PageHeading, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type ParsedColor, PopoverRoot as Popover, PopoverClose, PopoverContent, PopoverTrigger, ProgressRoot as Progress, PropertyRow, type PropertyRowProps, type QueuedMessage, type RadioCardOption, RadioCards, RadioGroup, RadioGroupItem, RadioItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, type RichTextEditorProps, type RichTextImageUrlHandler, SIDEBAR_COOKIE_MAX_AGE, SIDEBAR_COOKIE_NAME, SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, ScrollAreaRoot as ScrollArea, SearchableTable, type SearchableTableColumn, type SearchableTableFilterOption, type SearchableTableProps, SectionHeading, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectLabel, type SelectProps, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, type ShapeClasses, ShapeProvider, type ShapeVariant, SheetRoot as Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SliderComfortable, type SliderComfortableProps, SliderControl, type SliderProps, type SliderValue, Spinner, StackedList, StackedListItem, StatCard, StatCardGrid, type StatCardGridProps, type StatCardProps, StatCardSlot, type StatCardSlotProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant, StatusTile, StatusTileGrid, type StatusTileGridProps, type StatusTileProps, type Step, type StepStatus, Steps, SummaryTile, SummaryTileGrid, type SummaryTileGridProps, type SummaryTileProps, SurfaceProvider, Switch, type SwitchProps, TabItem, type TabItemProps, TabPanel, type TabPanelProps, Table, TableBody, TableCaption, TableCell, type TableDensity, TableFooter, TableHead, TableHeader, type TableMobileSurface, type TableProps, TableRow, Tabs, TabsContent, TabsList, type TabsListProps, type TabsProps, TabsSubtle, TabsSubtleItem, TabsSubtlePanel, TabsTrigger, Textarea, type TextareaProps, ThinkingIndicator, type ThinkingIndicatorProps, ThinkingStep, ThinkingStepDetails, type ThinkingStepDetailsProps, ThinkingStepImage, type ThinkingStepImageProps, type ThinkingStepProps, ThinkingStepSource, type ThinkingStepSourceProps, ThinkingStepSources, type ThinkingStepSourcesProps, type ThinkingStepStatus, ThinkingSteps, ThinkingStepsContent, type ThinkingStepsContentProps, ThinkingStepsHeader, type ThinkingStepsHeaderProps, type ThinkingStepsProps, TitledCard, type TitledCardProps, Toaster, ToggleRoot as Toggle, ToggleGroupRoot as ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipPortalContainer, type TooltipProps, TooltipProvider, TooltipRoot, type TooltipSide, TooltipTrigger, UrlRedirectPrompt, type UrlRedirectPromptProps, UsageBar, type UsageBarLayout, type UsageBarProps, type UsageBarTone, type ValuePosition, badgeColors, badgeVariants, buildParsed, buttonVariants, cardVariants, cn, formatDate, formatFileSize, hasUrlHandleChanged, iconLibraryLabels, iconLibraryOrder, loadPdfjs, navigationMenuTriggerStyle, normalizeUrlHandle, parseColor, renderPdfFirstPage, shapeMap, spinnerVariants, statusBadgeVariantFor, statusLabel, toggleVariants, triggerVariants, urlResourcePath, useDropdown, useIcon, useIconLibrary, useIcons, useOptionalSidebar, useShape, useShapeContext, useSidebar, useSurface };
package/dist/index.js CHANGED
@@ -3653,10 +3653,17 @@ function CardHeading({ title, description, actions, children, className }) {
3653
3653
  }
3654
3654
  );
3655
3655
  }
3656
+ var cardMobileSurfaceClasses = {
3657
+ default: "",
3658
+ flat: "max-sm:rounded-none max-sm:border-x-0 max-sm:border-y max-sm:bg-transparent max-sm:shadow-none",
3659
+ flush: "max-sm:rounded-none max-sm:border-0 max-sm:bg-transparent max-sm:shadow-none"
3660
+ };
3656
3661
  var cardVariants = cva(["rounded-xl", motionClasses], {
3657
3662
  variants: {
3658
3663
  variant: {
3659
3664
  default: "bg-card shadow-natural",
3665
+ outlined: "border border-border bg-card shadow-natural",
3666
+ elevated: "border border-border bg-card shadow-elevated",
3660
3667
  muted: "bg-muted shadow-natural",
3661
3668
  ghost: "bg-transparent",
3662
3669
  responsive: "border border-border bg-card p-5 shadow-natural sm:rounded-xl max-sm:rounded-none max-sm:border-x-0 max-sm:border-y max-sm:bg-transparent max-sm:px-0 max-sm:py-5 max-sm:shadow-none"
@@ -3667,12 +3674,12 @@ var cardVariants = cva(["rounded-xl", motionClasses], {
3667
3674
  }
3668
3675
  });
3669
3676
  var Card = React17.forwardRef(
3670
- ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
3677
+ ({ className, variant, mobileSurface = "default", ...props }, ref) => /* @__PURE__ */ jsx(
3671
3678
  "div",
3672
3679
  {
3673
3680
  ref,
3674
3681
  "data-slot": "card",
3675
- className: cn(cardVariants({ variant }), className),
3682
+ className: cn(cardVariants({ variant }), cardMobileSurfaceClasses[mobileSurface], className),
3676
3683
  ...props
3677
3684
  }
3678
3685
  )
@@ -3982,7 +3989,8 @@ function ChartContainer({
3982
3989
  "data-slot": "chart",
3983
3990
  "data-chart": chartId,
3984
3991
  className: cn(
3985
- "flex aspect-video justify-center text-xs",
3992
+ "flex justify-center text-xs",
3993
+ height === void 0 ? "aspect-video" : "w-full",
3986
3994
  "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground",
3987
3995
  "[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50",
3988
3996
  "[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border",
@@ -7997,7 +8005,8 @@ function ColorInput2({
7997
8005
  onOpacityChange,
7998
8006
  className,
7999
8007
  disabled,
8000
- presets
8008
+ presets,
8009
+ mobileSurface = "default"
8001
8010
  }) {
8002
8011
  const shape3 = useShape();
8003
8012
  const [hex, setHex] = React17.useState(value);
@@ -8008,6 +8017,7 @@ function ColorInput2({
8008
8017
  if (/^#([0-9a-fA-F]{3}){1,2}$/.test(next)) onChange(next);
8009
8018
  else setHex(value);
8010
8019
  };
8020
+ const mobileSurfaceClass = mobileSurface === "flush" ? "max-sm:rounded-none max-sm:border-x-0 max-sm:border-t-0 max-sm:bg-transparent max-sm:px-0 max-sm:shadow-none max-sm:focus-within:ring-0" : "";
8011
8021
  return /* @__PURE__ */ jsxs(
8012
8022
  "div",
8013
8023
  {
@@ -8016,18 +8026,21 @@ function ColorInput2({
8016
8026
  shape3.input,
8017
8027
  "focus-within:border-brand-primary focus-within:ring-2 focus-within:ring-brand-primary/20",
8018
8028
  motionClasses,
8029
+ mobileSurfaceClass,
8019
8030
  disabled && "opacity-50 pointer-events-none",
8020
8031
  className
8021
8032
  ),
8022
8033
  children: [
8023
8034
  /* @__PURE__ */ jsx(
8024
- ColorPicker,
8035
+ ColorPickerPopover,
8025
8036
  {
8026
8037
  value,
8027
8038
  onChange,
8028
8039
  ...presets !== void 0 && { presets },
8029
8040
  ...disabled !== void 0 && { disabled },
8030
- className: "h-full w-8 border-0 rounded-none focus-visible:ring-0"
8041
+ triggerShowValue: false,
8042
+ hideEyedropper: true,
8043
+ triggerClassName: "h-full w-8 border-0 rounded-none bg-transparent px-1 hover:bg-hover focus-visible:ring-0"
8031
8044
  }
8032
8045
  ),
8033
8046
  /* @__PURE__ */ jsx(
@@ -8832,18 +8845,30 @@ function ContextMenuShortcut({ className, ...props }) {
8832
8845
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
8833
8846
  var TableContext = createContext(null);
8834
8847
  var Table = forwardRef(
8835
- ({ children, className, containerClassName, ...props }, ref) => {
8848
+ ({
8849
+ children,
8850
+ className,
8851
+ containerClassName,
8852
+ density = "default",
8853
+ mobileDensity = "default",
8854
+ mobileSurface = "default",
8855
+ ...props
8856
+ }, ref) => {
8836
8857
  const containerRef = useRef(null);
8837
8858
  const { activeIndex, itemRects, sessionRef, handlers, registerItem, measureItems } = useProximityHover(containerRef);
8838
8859
  useEffect(() => {
8839
8860
  measureItems();
8840
8861
  }, [measureItems, children]);
8841
8862
  const activeRect = activeIndex !== null ? itemRects[activeIndex] : null;
8842
- return /* @__PURE__ */ jsx(TableContext.Provider, { value: { registerItem, activeIndex }, children: /* @__PURE__ */ jsxs(
8863
+ return /* @__PURE__ */ jsx(TableContext.Provider, { value: { registerItem, activeIndex, density, mobileDensity }, children: /* @__PURE__ */ jsxs(
8843
8864
  "div",
8844
8865
  {
8845
8866
  ref: containerRef,
8846
- className: cn("relative", containerClassName),
8867
+ className: cn(
8868
+ "relative",
8869
+ mobileSurface === "flat" && "max-sm:-mx-4 max-sm:overflow-x-auto max-sm:rounded-none max-sm:border-x-0",
8870
+ containerClassName
8871
+ ),
8847
8872
  onMouseEnter: handlers.onMouseEnter,
8848
8873
  onMouseMove: handlers.onMouseMove,
8849
8874
  onMouseLeave: handlers.onMouseLeave,
@@ -8878,7 +8903,7 @@ var Table = forwardRef(
8878
8903
  "table",
8879
8904
  {
8880
8905
  ref,
8881
- className: cn("w-full text-[13px] border-collapse", className),
8906
+ className: cn("w-full border-collapse text-[13px]", className),
8882
8907
  ...props,
8883
8908
  children
8884
8909
  }
@@ -8935,21 +8960,40 @@ var TableRow = forwardRef(
8935
8960
  );
8936
8961
  TableRow.displayName = "TableRow";
8937
8962
  var TableHead = forwardRef(
8938
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("th", { ref, className: cn("px-3 py-2 text-left text-foreground", className), ...props })
8963
+ ({ className, ...props }, ref) => {
8964
+ const ctx = useContext(TableContext);
8965
+ const densityClass = ctx?.density === "compact" ? "px-2 py-1.5" : "px-3 py-2";
8966
+ const mobileDensityClass = ctx?.mobileDensity === "compact" ? "max-sm:px-2 max-sm:py-1.5" : "";
8967
+ return /* @__PURE__ */ jsx(
8968
+ "th",
8969
+ {
8970
+ ref,
8971
+ className: cn(densityClass, mobileDensityClass, "text-left text-foreground", className),
8972
+ ...props
8973
+ }
8974
+ );
8975
+ }
8939
8976
  );
8940
8977
  TableHead.displayName = "TableHead";
8941
8978
  var TableCell = forwardRef(
8942
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8943
- "td",
8944
- {
8945
- ref,
8946
- className: cn(
8947
- "px-3 py-2 text-muted-foreground transition-colors duration-80 group-[.is-active]/row:text-foreground",
8948
- className
8949
- ),
8950
- ...props
8951
- }
8952
- )
8979
+ ({ className, ...props }, ref) => {
8980
+ const ctx = useContext(TableContext);
8981
+ const densityClass = ctx?.density === "compact" ? "px-2 py-1.5" : "px-3 py-2";
8982
+ const mobileDensityClass = ctx?.mobileDensity === "compact" ? "max-sm:px-2 max-sm:py-1.5" : "";
8983
+ return /* @__PURE__ */ jsx(
8984
+ "td",
8985
+ {
8986
+ ref,
8987
+ className: cn(
8988
+ densityClass,
8989
+ mobileDensityClass,
8990
+ "text-muted-foreground transition-colors duration-80 group-[.is-active]/row:text-foreground",
8991
+ className
8992
+ ),
8993
+ ...props
8994
+ }
8995
+ );
8996
+ }
8953
8997
  );
8954
8998
  TableCell.displayName = "TableCell";
8955
8999
  var TableFooter = forwardRef(
@@ -8967,7 +9011,26 @@ var TableCaption = forwardRef(
8967
9011
  )
8968
9012
  );
8969
9013
  TableCaption.displayName = "TableCaption";
8970
- function Input({ className, type, ...props }) {
9014
+ var inputDensityClasses = {
9015
+ default: "h-10 px-3 py-1",
9016
+ compact: "h-8 px-2.5 py-1"
9017
+ };
9018
+ var inputMobileDensityClasses = {
9019
+ default: "",
9020
+ compact: "max-sm:h-8 max-sm:px-2.5 max-sm:py-1"
9021
+ };
9022
+ var controlMobileSurfaceClasses = {
9023
+ default: "",
9024
+ flush: "max-sm:rounded-none max-sm:border-x-0 max-sm:border-t-0 max-sm:bg-transparent max-sm:px-0 max-sm:shadow-none max-sm:focus-visible:ring-0 max-sm:focus-visible:ring-offset-0"
9025
+ };
9026
+ function Input({
9027
+ className,
9028
+ type,
9029
+ density = "default",
9030
+ mobileDensity = "default",
9031
+ mobileSurface = "default",
9032
+ ...props
9033
+ }) {
8971
9034
  const shape3 = useShape();
8972
9035
  return /* @__PURE__ */ jsx(
8973
9036
  "input",
@@ -8975,12 +9038,15 @@ function Input({ className, type, ...props }) {
8975
9038
  type,
8976
9039
  "data-slot": "input",
8977
9040
  className: cn(
8978
- "flex h-10 w-full px-3 py-1",
9041
+ "flex w-full",
9042
+ inputDensityClasses[density],
9043
+ inputMobileDensityClasses[mobileDensity],
8979
9044
  shape3.input,
8980
9045
  "body text-foreground placeholder:text-muted-foreground",
8981
9046
  controlSurfaceClasses,
8982
9047
  motionClasses,
8983
9048
  focusRingClasses,
9049
+ controlMobileSurfaceClasses[mobileSurface],
8984
9050
  "focus-visible:border-brand-primary",
8985
9051
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted",
8986
9052
  "file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground",
@@ -9303,8 +9369,31 @@ var triggerVariants = cva(
9303
9369
  }
9304
9370
  }
9305
9371
  );
9372
+ var selectTriggerDensityClasses = {
9373
+ default: "h-9 px-3",
9374
+ compact: "h-8 px-2.5"
9375
+ };
9376
+ var selectTriggerMobileDensityClasses = {
9377
+ default: "",
9378
+ compact: "max-sm:h-8 max-sm:px-2.5"
9379
+ };
9380
+ var selectTriggerMobileSurfaceClasses = {
9381
+ default: "",
9382
+ flush: "max-sm:rounded-none max-sm:border-x-0 max-sm:border-t-0 max-sm:bg-transparent max-sm:px-0 max-sm:shadow-none max-sm:focus-visible:ring-0 max-sm:focus-visible:ring-offset-0"
9383
+ };
9306
9384
  var SelectTrigger = forwardRef(
9307
- ({ className, variant, icon: Icon, placeholder = "Select\u2026", error, children, ...props }, ref) => {
9385
+ ({
9386
+ className,
9387
+ variant,
9388
+ icon: Icon,
9389
+ placeholder = "Select\u2026",
9390
+ error,
9391
+ children,
9392
+ density = "default",
9393
+ mobileDensity = "default",
9394
+ mobileSurface = "default",
9395
+ ...props
9396
+ }, ref) => {
9308
9397
  const { value, open, setOpen, disabled, triggerRef, labelMap } = useSelectContext();
9309
9398
  const shape3 = useShape();
9310
9399
  const label = value ? labelMap.current.get(value) ?? value : void 0;
@@ -9332,6 +9421,9 @@ var SelectTrigger = forwardRef(
9332
9421
  "aria-invalid": !!error || void 0,
9333
9422
  className: cn(
9334
9423
  triggerVariants({ variant }),
9424
+ selectTriggerDensityClasses[density],
9425
+ selectTriggerMobileDensityClasses[mobileDensity],
9426
+ selectTriggerMobileSurfaceClasses[mobileSurface],
9335
9427
  shape3.input,
9336
9428
  error && "border-destructive/50 hover:border-destructive/50",
9337
9429
  className
@@ -14127,13 +14219,16 @@ function SidebarGroupLabel({
14127
14219
  ...props
14128
14220
  }) {
14129
14221
  const Comp = asChild ? Slot$1.Root : "div";
14222
+ const state = useOptionalSidebar()?.state ?? "expanded";
14130
14223
  return /* @__PURE__ */ jsx(
14131
14224
  Comp,
14132
14225
  {
14133
14226
  "data-sidebar": "group-label",
14227
+ "data-state": state,
14134
14228
  className: cn(
14135
14229
  "flex h-8 shrink-0 items-center rounded-md px-2 label text-muted-foreground",
14136
14230
  "outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear",
14231
+ "data-[state=collapsed]:h-0 data-[state=collapsed]:m-0 data-[state=collapsed]:overflow-hidden data-[state=collapsed]:p-0 data-[state=collapsed]:opacity-0",
14137
14232
  "group-data-[state=collapsed]/sidebar-wrapper:opacity-0",
14138
14233
  "group-data-[state=collapsed]/sidebar-wrapper:h-0",
14139
14234
  "group-data-[state=collapsed]/sidebar-wrapper:m-0",
@@ -14191,10 +14286,12 @@ function SidebarMenuButton({
14191
14286
  ...props
14192
14287
  }) {
14193
14288
  const Comp = asChild ? Slot$1.Root : "button";
14289
+ const state = useOptionalSidebar()?.state ?? "expanded";
14194
14290
  const button = /* @__PURE__ */ jsx(
14195
14291
  Comp,
14196
14292
  {
14197
14293
  "data-sidebar": "menu-button",
14294
+ "data-state": state,
14198
14295
  "data-active": isActive,
14199
14296
  "data-size": size,
14200
14297
  className: cn(
@@ -14207,6 +14304,7 @@ function SidebarMenuButton({
14207
14304
  "active:bg-muted",
14208
14305
  "disabled:pointer-events-none disabled:opacity-50",
14209
14306
  "[&>svg]:size-4 [&>svg]:shrink-0",
14307
+ "[&>span]:min-w-0 [&>span]:truncate",
14210
14308
  // Size variants
14211
14309
  size === "sm" && "h-7 text-xs",
14212
14310
  size === "lg" && "h-10",
@@ -14216,9 +14314,12 @@ function SidebarMenuButton({
14216
14314
  "hover:bg-brand-primary/15 hover:text-brand-primary"
14217
14315
  ],
14218
14316
  // Collapsed state
14317
+ "data-[state=collapsed]:size-9 data-[state=collapsed]:justify-center data-[state=collapsed]:p-0",
14318
+ "data-[state=collapsed]:[&>span]:hidden",
14219
14319
  "group-data-[state=collapsed]/sidebar-wrapper:justify-center",
14220
14320
  "group-data-[state=collapsed]/sidebar-wrapper:size-9",
14221
14321
  "group-data-[state=collapsed]/sidebar-wrapper:p-0",
14322
+ "group-data-[state=collapsed]/sidebar-wrapper:[&>span]:hidden",
14222
14323
  className
14223
14324
  ),
14224
14325
  ...props,
@@ -14271,13 +14372,16 @@ function SidebarMenuAction({
14271
14372
  );
14272
14373
  }
14273
14374
  function SidebarMenuBadge({ className, ...props }) {
14375
+ const state = useOptionalSidebar()?.state ?? "expanded";
14274
14376
  return /* @__PURE__ */ jsx(
14275
14377
  "div",
14276
14378
  {
14277
14379
  "data-sidebar": "menu-badge",
14380
+ "data-state": state,
14278
14381
  className: cn(
14279
14382
  "absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-full",
14280
14383
  "caption font-medium bg-muted text-muted-foreground px-1",
14384
+ "data-[state=collapsed]:hidden",
14281
14385
  "group-data-[state=collapsed]/sidebar-wrapper:hidden",
14282
14386
  className
14283
14387
  ),
@@ -14313,12 +14417,15 @@ function SidebarMenuSkeleton({
14313
14417
  );
14314
14418
  }
14315
14419
  function SidebarMenuSub({ className, ...props }) {
14420
+ const state = useOptionalSidebar()?.state ?? "expanded";
14316
14421
  return /* @__PURE__ */ jsx(
14317
14422
  "ul",
14318
14423
  {
14319
14424
  "data-sidebar": "menu-sub",
14425
+ "data-state": state,
14320
14426
  className: cn(
14321
14427
  "mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border pl-3",
14428
+ "data-[state=collapsed]:hidden",
14322
14429
  "group-data-[state=collapsed]/sidebar-wrapper:hidden",
14323
14430
  className
14324
14431
  ),
@@ -15666,20 +15773,41 @@ var TabsSubtlePanel = forwardRef(
15666
15773
  }
15667
15774
  );
15668
15775
  TabsSubtlePanel.displayName = "TabsSubtlePanel";
15669
- function Textarea({ className, ...props }) {
15776
+ var textareaDensityClasses = {
15777
+ default: "min-h-[80px] px-3 py-2",
15778
+ compact: "min-h-16 px-2.5 py-1.5"
15779
+ };
15780
+ var textareaMobileDensityClasses = {
15781
+ default: "",
15782
+ compact: "max-sm:min-h-16 max-sm:px-2.5 max-sm:py-1.5"
15783
+ };
15784
+ var textareaMobileSurfaceClasses = {
15785
+ default: "",
15786
+ flush: "max-sm:rounded-none max-sm:border-x-0 max-sm:border-t-0 max-sm:bg-transparent max-sm:px-0 max-sm:shadow-none max-sm:focus-visible:ring-0 max-sm:focus-visible:ring-offset-0"
15787
+ };
15788
+ function Textarea({
15789
+ className,
15790
+ density = "default",
15791
+ mobileDensity = "default",
15792
+ mobileSurface = "default",
15793
+ ...props
15794
+ }) {
15670
15795
  const shape3 = useShape();
15671
15796
  return /* @__PURE__ */ jsx(
15672
15797
  "textarea",
15673
15798
  {
15674
15799
  "data-slot": "textarea",
15675
15800
  className: cn(
15676
- "flex min-h-[80px] w-full px-3 py-2",
15801
+ "flex w-full",
15802
+ textareaDensityClasses[density],
15803
+ textareaMobileDensityClasses[mobileDensity],
15677
15804
  shape3.input,
15678
15805
  "body text-foreground placeholder:text-muted-foreground",
15679
15806
  "resize-none",
15680
15807
  controlSurfaceClasses,
15681
15808
  motionClasses,
15682
15809
  focusRingClasses,
15810
+ textareaMobileSurfaceClasses[mobileSurface],
15683
15811
  "focus-visible:border-brand-primary",
15684
15812
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted",
15685
15813
  className
@@ -15992,6 +16120,7 @@ function TitledCard({
15992
16120
  actionButtons,
15993
16121
  icon: Icon,
15994
16122
  contentPadding = "default",
16123
+ mobileSurface = "flush",
15995
16124
  className,
15996
16125
  contentClassName,
15997
16126
  containerClassName,
@@ -16000,12 +16129,13 @@ function TitledCard({
16000
16129
  const hasHeader = Boolean(title || subtitle || actionButtons);
16001
16130
  const canUseCardHeading = Boolean(title) && !actionButtons && !titleClassName;
16002
16131
  const contentPaddingClassName = contentPadding === "flush" ? "p-0" : contentPadding === "flush-mobile" ? "p-0 sm:p-5" : hasHeader ? "p-4 sm:p-5" : "p-0 sm:p-5";
16132
+ const isMobileFlat = mobileSurface === "flat" || mobileSurface === "flush";
16003
16133
  return /* @__PURE__ */ jsxs(
16004
16134
  Card,
16005
16135
  {
16136
+ mobileSurface,
16006
16137
  className: cn(
16007
16138
  "min-w-0 overflow-hidden border border-border bg-card shadow-natural",
16008
- "max-sm:rounded-none max-sm:border-0 max-sm:bg-transparent max-sm:shadow-none",
16009
16139
  containerClassName,
16010
16140
  className
16011
16141
  ),
@@ -16016,32 +16146,46 @@ function TitledCard({
16016
16146
  {
16017
16147
  title,
16018
16148
  ...subtitle ? { description: subtitle } : {},
16019
- className: "max-sm:border-b-0 max-sm:px-0 max-sm:pb-3",
16149
+ className: cn(isMobileFlat && "max-sm:border-b-0 max-sm:px-0 max-sm:pb-3"),
16020
16150
  children: Icon && /* @__PURE__ */ jsx(Icon, { className: "size-5 shrink-0 text-muted-foreground" })
16021
16151
  }
16022
- ) : hasHeader ? /* @__PURE__ */ jsxs(CardHeader, { className: "flex flex-col gap-3 border-b border-border p-4 max-sm:border-b-0 max-sm:px-0 max-sm:pb-3 sm:flex-row sm:items-start sm:justify-between sm:p-5", children: [
16023
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
16024
- title && /* @__PURE__ */ jsxs(
16025
- CardTitle,
16026
- {
16027
- className: cn(
16028
- "flex min-w-0 items-center gap-2 text-base leading-tight sm:text-lg",
16029
- titleClassName
16030
- ),
16031
- children: [
16032
- Icon && /* @__PURE__ */ jsx(Icon, { className: "size-5 shrink-0 text-muted-foreground" }),
16033
- /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: title })
16034
- ]
16035
- }
16152
+ ) : hasHeader ? /* @__PURE__ */ jsxs(
16153
+ CardHeader,
16154
+ {
16155
+ className: cn(
16156
+ "flex flex-col gap-3 border-b border-border p-4 sm:flex-row sm:items-start sm:justify-between sm:p-5",
16157
+ isMobileFlat && "max-sm:border-b-0 max-sm:px-0 max-sm:pb-3"
16036
16158
  ),
16037
- subtitle && /* @__PURE__ */ jsx(CardDescription, { className: "mt-1 max-w-3xl text-sm leading-5", children: subtitle })
16038
- ] }),
16039
- actionButtons && /* @__PURE__ */ jsx("div", { className: "flex w-full min-w-0 flex-wrap items-center gap-2 sm:w-auto sm:justify-end", children: actionButtons })
16040
- ] }) : null,
16159
+ children: [
16160
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
16161
+ title && /* @__PURE__ */ jsxs(
16162
+ CardTitle,
16163
+ {
16164
+ className: cn(
16165
+ "flex min-w-0 items-center gap-2 text-base leading-tight sm:text-lg",
16166
+ titleClassName
16167
+ ),
16168
+ children: [
16169
+ Icon && /* @__PURE__ */ jsx(Icon, { className: "size-5 shrink-0 text-muted-foreground" }),
16170
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: title })
16171
+ ]
16172
+ }
16173
+ ),
16174
+ subtitle && /* @__PURE__ */ jsx(CardDescription, { className: "mt-1 max-w-3xl text-sm leading-5", children: subtitle })
16175
+ ] }),
16176
+ actionButtons && /* @__PURE__ */ jsx("div", { className: "flex w-full min-w-0 flex-wrap items-center gap-2 sm:w-auto sm:justify-end", children: actionButtons })
16177
+ ]
16178
+ }
16179
+ ) : null,
16041
16180
  children && /* @__PURE__ */ jsx(
16042
16181
  CardContent,
16043
16182
  {
16044
- className: cn(contentPaddingClassName, "min-w-0 max-sm:px-0", contentClassName),
16183
+ className: cn(
16184
+ contentPaddingClassName,
16185
+ "min-w-0",
16186
+ isMobileFlat && "max-sm:px-0",
16187
+ contentClassName
16188
+ ),
16045
16189
  children
16046
16190
  }
16047
16191
  )