@mondrianai/runyourai-design-system 0.0.12 → 0.0.14

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.mts CHANGED
@@ -133,34 +133,13 @@ interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, V
133
133
  }
134
134
  declare function Button({ className, variant, size, asChild, loading, iconStart, iconEnd, disabled, children, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
135
135
 
136
- /** 예약 유형: Reserved(사전 예약) 또는 On-demand(즉시 사용) */
137
- type MachineType = 'reserved' | 'on-demand';
138
- /** 이용 상태: 대여가능 또는 대여중 */
139
- type AvailabilityStatus = 'available' | 'rented';
140
- interface CardSpec {
141
- label: string;
142
- value: string;
143
- }
144
- interface CardProps {
145
- /** 예약 유형 배지 — reserved 또는 on-demand (필수) */
146
- machineType: MachineType;
147
- /** 이용 상태 배지 — available(대여가능) 또는 rented(대여중) (필수) */
148
- availability: AvailabilityStatus;
149
- /** 머신 이름 (예: "NVIDIA B300 x 8") */
150
- machineName: string;
151
- /** 머신 이름 앞 이니셜 박스에 표시할 문자 (예: "B") */
152
- machineInitial: string;
153
- /** 스펙 태그 목록 (예: ["4x8x", "000GB VRAM", "B-Series"]) */
154
- tags?: string[];
155
- /** 스펙 상세 목록 (예: [{ label: "CPU", value: "128 Core" }]) */
156
- specs?: CardSpec[];
157
- /** 머신 선택 버튼 클릭 핸들러 */
158
- onSelect?: () => void;
159
- /** 버튼 텍스트 (기본값: "머신 선택") */
160
- selectLabel?: string;
161
- className?: string;
162
- }
163
- declare function Card({ machineType, availability, machineName, machineInitial, tags, specs, onSelect, selectLabel, className, }: CardProps): react_jsx_runtime.JSX.Element;
136
+ declare function Card({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
137
+ declare function CardHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
138
+ declare function CardTitle({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
139
+ declare function CardDescription({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
140
+ declare function CardAction({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
141
+ declare function CardContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
142
+ declare function CardFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
164
143
 
165
144
  interface DataSectionProps {
166
145
  /** 섹션 제목 */
@@ -733,6 +712,8 @@ type SidebarMainMenuItem = {
733
712
  type?: 'item';
734
713
  id: string;
735
714
  title: string;
715
+ /** 서브메뉴 패널 헤더 영역을 커스텀할 ReactNode. 미지정 시 title 문자열을 기본 스타일로 표시합니다. */
716
+ panelHeader?: React$1.ReactNode;
736
717
  href: string;
737
718
  icon: React$1.ReactNode;
738
719
  isActive?: boolean;
@@ -817,13 +798,17 @@ interface TabsProps<T extends string = string> {
817
798
  * "pill" — 회색 배경 컨테이너 + 흰 배경 active (segment control 스타일)
818
799
  * "underline" — 하단 밑줄 active (default)
819
800
  */
820
- variant?: 'pill' | 'underline';
801
+ variant?: "pill" | "underline";
821
802
  /** 컨테이너를 w-full로 펼치고 각 탭 버튼을 균등 분할(flex-1)합니다 */
822
803
  block?: boolean;
823
804
  /** Tailwind height 클래스 (e.g. "h-[36px]"). 지정 시 내부 버튼 패딩도 자동 조정됩니다. */
824
805
  height?: string;
825
806
  className?: string;
826
807
  }
808
+ /**
809
+ * 디자인 시스템에서는 동일 뷰의 데이터 전환을 위해 ToggleGroup 대신 Tabs를 사용합니다.
810
+ * Tabs의 원래 목적으로도 사용하며, 한 화면에 두 가지의 의미로 Tabs를 사용하지 않습니다.
811
+ */
827
812
  declare function Tabs<T extends string = string>({ allTabs, current, onTabChange, variant, block, height, className, }: TabsProps<T>): react_jsx_runtime.JSX.Element;
828
813
 
829
814
  interface ToggleProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
@@ -1540,4 +1525,4 @@ declare function WordFileIcon({ className }: {
1540
1525
  className?: string;
1541
1526
  }): react_jsx_runtime.JSX.Element;
1542
1527
 
1543
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentBlogIcon, AgentCsIcon, AgentDataIcon, AgentHrIcon, AgentMailIcon, AgentTrendIcon, AiAgentIcon, AiBuilderIcon, AiCloudIcon, AiDatacenterIcon, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlignJustifyIcon, AlignLeftIcon, ArrowDownIcon, type AvailabilityStatus, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarProps, type AvatarSize, BADGE_VARIANT_STYLES, Badge, type BadgeProps, type BadgeVariant, BlockquoteIcon, BoldIcon, BookOpenIcon, BookUpIcon, Breadcrumb, Button, type ButtonProps, Card, type CardProps, type CardSpec, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxProps, ChevronsUpDownIcon, ChoiceCardGroup, type ChoiceCardGroupProps, ChoiceCardItem, type ChoiceCardItemProps, CircleCheckFillIcon, CircleHelpIcon, CircleIndicator, type CircleIndicatorProps, CircleOutlineIcon, ClaudeIcon, CodeIcon, CodeSquareIcon, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleRoot, CollapsibleTrigger, type CollapsibleWorkspace, Combobox, type ComboboxOption, type ComboboxProps, CreditIcon, DataSection, type DataSectionProps, DatePicker, type DatePickerLocale, type DatePickerMode, type DatePickerProps, DeepSeekIcon, DownloadIcon, Drawer, type DrawerProps, DriveIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyTrayIcon, Field, FieldDivider, type FieldProps, FieldRow, type FieldRowProps, FieldSection, type FieldSectionProps, FileCodeIcon, FileSearchIcon, FileTypeCornerIcon, FolderAmberIcon, FolderBlueIcon, FolderClosedIcon, FolderGreenIcon, FolderVioletIcon, GeminiIcon, GoogleIcon, HangulFileIcon, Header, type HeaderNavItem, type HeaderProps, HeadingIcon, HtmlFileIcon, ICON_NODES, Icon, type IconProps, ImageIcon, ImportIcon, IndentIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, ItalicIcon, KbCard, type KbCardMetadataItem, type KbCardProps, KeyRoundIcon, type LanguageItem, LayersIcon, LayoutGridIcon, LineChartIcon, LinkIcon, ListIcon, ListOrderedIcon, type MachineType, MarkdownFileIcon, MarkdownMessage, Menubar, MenubarContent, MenubarGroup, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessageCircleIcon, MessageFooter, type MessageFooterProps, MessagesSquareIcon, Modal, type ModalProps, MyPageIcon, type NavDropdownItem, type NotificationItem, NumberBadge, type NumberBadgeProps, OpenAiIcon, OutdentIcon, Pagination, PanelLeftIcon, PdfFileIcon, PenLineIcon, PencilLineIcon, PresentationIcon, Progress, type ProgressProps, type ProgressThreshold, Providers, RefreshCwIcon, RyaiLogoIcon, SearchInput, type SearchInputProps, SegmentedControl, Select, type SelectGroup, type SelectOption, type SelectProps, Sheet, SheetFileIcon, ShoppingBagIcon, Sidebar, SidebarLink, type SidebarMainMenuItem, type SidebarSubMenuItem, type SidebarUtilityItem, Skeleton, type SkeletonProps, SlideFileIcon, Slider, SmileIcon, type SortDirection, SortIcon, SparklesIcon, SquareCheckIcon, SquareCheckOutlineIcon, StarIcon, Stepper, type StepperProps, StrikethroughIcon, Switch, SwitchField, type SwitchFieldProps, type TabItem, Table, type TableColumn, type TablePaginationConfig, TablePropertiesIcon, type TableProps, type TableSortingItem, Tabs, type TabsProps, Toggle, ToggleGroup, type ToggleGroupItemData, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, TooltipProvider, TooltipWithIcon, type TooltipWithIconProps, TrashIcon, UpstageIcon, type UserMenuSection, type UserMenuSectionItem, UserMessageBubble, WandSparklesIcon, WordFileIcon, buttonVariants, toggleBaseClasses, toggleSizeClasses };
1528
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentBlogIcon, AgentCsIcon, AgentDataIcon, AgentHrIcon, AgentMailIcon, AgentTrendIcon, AiAgentIcon, AiBuilderIcon, AiCloudIcon, AiDatacenterIcon, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlignJustifyIcon, AlignLeftIcon, ArrowDownIcon, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarProps, type AvatarSize, BADGE_VARIANT_STYLES, Badge, type BadgeProps, type BadgeVariant, BlockquoteIcon, BoldIcon, BookOpenIcon, BookUpIcon, Breadcrumb, Button, type ButtonProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxProps, ChevronsUpDownIcon, ChoiceCardGroup, type ChoiceCardGroupProps, ChoiceCardItem, type ChoiceCardItemProps, CircleCheckFillIcon, CircleHelpIcon, CircleIndicator, type CircleIndicatorProps, CircleOutlineIcon, ClaudeIcon, CodeIcon, CodeSquareIcon, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleRoot, CollapsibleTrigger, type CollapsibleWorkspace, Combobox, type ComboboxOption, type ComboboxProps, CreditIcon, DataSection, type DataSectionProps, DatePicker, type DatePickerLocale, type DatePickerMode, type DatePickerProps, DeepSeekIcon, DownloadIcon, Drawer, type DrawerProps, DriveIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyTrayIcon, Field, FieldDivider, type FieldProps, FieldRow, type FieldRowProps, FieldSection, type FieldSectionProps, FileCodeIcon, FileSearchIcon, FileTypeCornerIcon, FolderAmberIcon, FolderBlueIcon, FolderClosedIcon, FolderGreenIcon, FolderVioletIcon, GeminiIcon, GoogleIcon, HangulFileIcon, Header, type HeaderNavItem, type HeaderProps, HeadingIcon, HtmlFileIcon, ICON_NODES, Icon, type IconProps, ImageIcon, ImportIcon, IndentIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, ItalicIcon, KbCard, type KbCardMetadataItem, type KbCardProps, KeyRoundIcon, type LanguageItem, LayersIcon, LayoutGridIcon, LineChartIcon, LinkIcon, ListIcon, ListOrderedIcon, MarkdownFileIcon, MarkdownMessage, Menubar, MenubarContent, MenubarGroup, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessageCircleIcon, MessageFooter, type MessageFooterProps, MessagesSquareIcon, Modal, type ModalProps, MyPageIcon, type NavDropdownItem, type NotificationItem, NumberBadge, type NumberBadgeProps, OpenAiIcon, OutdentIcon, Pagination, PanelLeftIcon, PdfFileIcon, PenLineIcon, PencilLineIcon, PresentationIcon, Progress, type ProgressProps, type ProgressThreshold, Providers, RefreshCwIcon, RyaiLogoIcon, SearchInput, type SearchInputProps, SegmentedControl, Select, type SelectGroup, type SelectOption, type SelectProps, Sheet, SheetFileIcon, ShoppingBagIcon, Sidebar, SidebarLink, type SidebarMainMenuItem, type SidebarSubMenuItem, type SidebarUtilityItem, Skeleton, type SkeletonProps, SlideFileIcon, Slider, SmileIcon, type SortDirection, SortIcon, SparklesIcon, SquareCheckIcon, SquareCheckOutlineIcon, StarIcon, Stepper, type StepperProps, StrikethroughIcon, Switch, SwitchField, type SwitchFieldProps, type TabItem, Table, type TableColumn, type TablePaginationConfig, TablePropertiesIcon, type TableProps, type TableSortingItem, Tabs, type TabsProps, Toggle, ToggleGroup, type ToggleGroupItemData, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, TooltipProvider, TooltipWithIcon, type TooltipWithIconProps, TrashIcon, UpstageIcon, type UserMenuSection, type UserMenuSectionItem, UserMessageBubble, WandSparklesIcon, WordFileIcon, buttonVariants, toggleBaseClasses, toggleSizeClasses };
package/dist/index.d.ts CHANGED
@@ -133,34 +133,13 @@ interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, V
133
133
  }
134
134
  declare function Button({ className, variant, size, asChild, loading, iconStart, iconEnd, disabled, children, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
135
135
 
136
- /** 예약 유형: Reserved(사전 예약) 또는 On-demand(즉시 사용) */
137
- type MachineType = 'reserved' | 'on-demand';
138
- /** 이용 상태: 대여가능 또는 대여중 */
139
- type AvailabilityStatus = 'available' | 'rented';
140
- interface CardSpec {
141
- label: string;
142
- value: string;
143
- }
144
- interface CardProps {
145
- /** 예약 유형 배지 — reserved 또는 on-demand (필수) */
146
- machineType: MachineType;
147
- /** 이용 상태 배지 — available(대여가능) 또는 rented(대여중) (필수) */
148
- availability: AvailabilityStatus;
149
- /** 머신 이름 (예: "NVIDIA B300 x 8") */
150
- machineName: string;
151
- /** 머신 이름 앞 이니셜 박스에 표시할 문자 (예: "B") */
152
- machineInitial: string;
153
- /** 스펙 태그 목록 (예: ["4x8x", "000GB VRAM", "B-Series"]) */
154
- tags?: string[];
155
- /** 스펙 상세 목록 (예: [{ label: "CPU", value: "128 Core" }]) */
156
- specs?: CardSpec[];
157
- /** 머신 선택 버튼 클릭 핸들러 */
158
- onSelect?: () => void;
159
- /** 버튼 텍스트 (기본값: "머신 선택") */
160
- selectLabel?: string;
161
- className?: string;
162
- }
163
- declare function Card({ machineType, availability, machineName, machineInitial, tags, specs, onSelect, selectLabel, className, }: CardProps): react_jsx_runtime.JSX.Element;
136
+ declare function Card({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
137
+ declare function CardHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
138
+ declare function CardTitle({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
139
+ declare function CardDescription({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
140
+ declare function CardAction({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
141
+ declare function CardContent({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
142
+ declare function CardFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
164
143
 
165
144
  interface DataSectionProps {
166
145
  /** 섹션 제목 */
@@ -733,6 +712,8 @@ type SidebarMainMenuItem = {
733
712
  type?: 'item';
734
713
  id: string;
735
714
  title: string;
715
+ /** 서브메뉴 패널 헤더 영역을 커스텀할 ReactNode. 미지정 시 title 문자열을 기본 스타일로 표시합니다. */
716
+ panelHeader?: React$1.ReactNode;
736
717
  href: string;
737
718
  icon: React$1.ReactNode;
738
719
  isActive?: boolean;
@@ -817,13 +798,17 @@ interface TabsProps<T extends string = string> {
817
798
  * "pill" — 회색 배경 컨테이너 + 흰 배경 active (segment control 스타일)
818
799
  * "underline" — 하단 밑줄 active (default)
819
800
  */
820
- variant?: 'pill' | 'underline';
801
+ variant?: "pill" | "underline";
821
802
  /** 컨테이너를 w-full로 펼치고 각 탭 버튼을 균등 분할(flex-1)합니다 */
822
803
  block?: boolean;
823
804
  /** Tailwind height 클래스 (e.g. "h-[36px]"). 지정 시 내부 버튼 패딩도 자동 조정됩니다. */
824
805
  height?: string;
825
806
  className?: string;
826
807
  }
808
+ /**
809
+ * 디자인 시스템에서는 동일 뷰의 데이터 전환을 위해 ToggleGroup 대신 Tabs를 사용합니다.
810
+ * Tabs의 원래 목적으로도 사용하며, 한 화면에 두 가지의 의미로 Tabs를 사용하지 않습니다.
811
+ */
827
812
  declare function Tabs<T extends string = string>({ allTabs, current, onTabChange, variant, block, height, className, }: TabsProps<T>): react_jsx_runtime.JSX.Element;
828
813
 
829
814
  interface ToggleProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
@@ -1540,4 +1525,4 @@ declare function WordFileIcon({ className }: {
1540
1525
  className?: string;
1541
1526
  }): react_jsx_runtime.JSX.Element;
1542
1527
 
1543
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentBlogIcon, AgentCsIcon, AgentDataIcon, AgentHrIcon, AgentMailIcon, AgentTrendIcon, AiAgentIcon, AiBuilderIcon, AiCloudIcon, AiDatacenterIcon, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlignJustifyIcon, AlignLeftIcon, ArrowDownIcon, type AvailabilityStatus, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarProps, type AvatarSize, BADGE_VARIANT_STYLES, Badge, type BadgeProps, type BadgeVariant, BlockquoteIcon, BoldIcon, BookOpenIcon, BookUpIcon, Breadcrumb, Button, type ButtonProps, Card, type CardProps, type CardSpec, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxProps, ChevronsUpDownIcon, ChoiceCardGroup, type ChoiceCardGroupProps, ChoiceCardItem, type ChoiceCardItemProps, CircleCheckFillIcon, CircleHelpIcon, CircleIndicator, type CircleIndicatorProps, CircleOutlineIcon, ClaudeIcon, CodeIcon, CodeSquareIcon, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleRoot, CollapsibleTrigger, type CollapsibleWorkspace, Combobox, type ComboboxOption, type ComboboxProps, CreditIcon, DataSection, type DataSectionProps, DatePicker, type DatePickerLocale, type DatePickerMode, type DatePickerProps, DeepSeekIcon, DownloadIcon, Drawer, type DrawerProps, DriveIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyTrayIcon, Field, FieldDivider, type FieldProps, FieldRow, type FieldRowProps, FieldSection, type FieldSectionProps, FileCodeIcon, FileSearchIcon, FileTypeCornerIcon, FolderAmberIcon, FolderBlueIcon, FolderClosedIcon, FolderGreenIcon, FolderVioletIcon, GeminiIcon, GoogleIcon, HangulFileIcon, Header, type HeaderNavItem, type HeaderProps, HeadingIcon, HtmlFileIcon, ICON_NODES, Icon, type IconProps, ImageIcon, ImportIcon, IndentIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, ItalicIcon, KbCard, type KbCardMetadataItem, type KbCardProps, KeyRoundIcon, type LanguageItem, LayersIcon, LayoutGridIcon, LineChartIcon, LinkIcon, ListIcon, ListOrderedIcon, type MachineType, MarkdownFileIcon, MarkdownMessage, Menubar, MenubarContent, MenubarGroup, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessageCircleIcon, MessageFooter, type MessageFooterProps, MessagesSquareIcon, Modal, type ModalProps, MyPageIcon, type NavDropdownItem, type NotificationItem, NumberBadge, type NumberBadgeProps, OpenAiIcon, OutdentIcon, Pagination, PanelLeftIcon, PdfFileIcon, PenLineIcon, PencilLineIcon, PresentationIcon, Progress, type ProgressProps, type ProgressThreshold, Providers, RefreshCwIcon, RyaiLogoIcon, SearchInput, type SearchInputProps, SegmentedControl, Select, type SelectGroup, type SelectOption, type SelectProps, Sheet, SheetFileIcon, ShoppingBagIcon, Sidebar, SidebarLink, type SidebarMainMenuItem, type SidebarSubMenuItem, type SidebarUtilityItem, Skeleton, type SkeletonProps, SlideFileIcon, Slider, SmileIcon, type SortDirection, SortIcon, SparklesIcon, SquareCheckIcon, SquareCheckOutlineIcon, StarIcon, Stepper, type StepperProps, StrikethroughIcon, Switch, SwitchField, type SwitchFieldProps, type TabItem, Table, type TableColumn, type TablePaginationConfig, TablePropertiesIcon, type TableProps, type TableSortingItem, Tabs, type TabsProps, Toggle, ToggleGroup, type ToggleGroupItemData, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, TooltipProvider, TooltipWithIcon, type TooltipWithIconProps, TrashIcon, UpstageIcon, type UserMenuSection, type UserMenuSectionItem, UserMessageBubble, WandSparklesIcon, WordFileIcon, buttonVariants, toggleBaseClasses, toggleSizeClasses };
1528
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentBlogIcon, AgentCsIcon, AgentDataIcon, AgentHrIcon, AgentMailIcon, AgentTrendIcon, AiAgentIcon, AiBuilderIcon, AiCloudIcon, AiDatacenterIcon, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlignJustifyIcon, AlignLeftIcon, ArrowDownIcon, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarProps, type AvatarSize, BADGE_VARIANT_STYLES, Badge, type BadgeProps, type BadgeVariant, BlockquoteIcon, BoldIcon, BookOpenIcon, BookUpIcon, Breadcrumb, Button, type ButtonProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxProps, ChevronsUpDownIcon, ChoiceCardGroup, type ChoiceCardGroupProps, ChoiceCardItem, type ChoiceCardItemProps, CircleCheckFillIcon, CircleHelpIcon, CircleIndicator, type CircleIndicatorProps, CircleOutlineIcon, ClaudeIcon, CodeIcon, CodeSquareIcon, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleRoot, CollapsibleTrigger, type CollapsibleWorkspace, Combobox, type ComboboxOption, type ComboboxProps, CreditIcon, DataSection, type DataSectionProps, DatePicker, type DatePickerLocale, type DatePickerMode, type DatePickerProps, DeepSeekIcon, DownloadIcon, Drawer, type DrawerProps, DriveIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyTrayIcon, Field, FieldDivider, type FieldProps, FieldRow, type FieldRowProps, FieldSection, type FieldSectionProps, FileCodeIcon, FileSearchIcon, FileTypeCornerIcon, FolderAmberIcon, FolderBlueIcon, FolderClosedIcon, FolderGreenIcon, FolderVioletIcon, GeminiIcon, GoogleIcon, HangulFileIcon, Header, type HeaderNavItem, type HeaderProps, HeadingIcon, HtmlFileIcon, ICON_NODES, Icon, type IconProps, ImageIcon, ImportIcon, IndentIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, ItalicIcon, KbCard, type KbCardMetadataItem, type KbCardProps, KeyRoundIcon, type LanguageItem, LayersIcon, LayoutGridIcon, LineChartIcon, LinkIcon, ListIcon, ListOrderedIcon, MarkdownFileIcon, MarkdownMessage, Menubar, MenubarContent, MenubarGroup, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessageCircleIcon, MessageFooter, type MessageFooterProps, MessagesSquareIcon, Modal, type ModalProps, MyPageIcon, type NavDropdownItem, type NotificationItem, NumberBadge, type NumberBadgeProps, OpenAiIcon, OutdentIcon, Pagination, PanelLeftIcon, PdfFileIcon, PenLineIcon, PencilLineIcon, PresentationIcon, Progress, type ProgressProps, type ProgressThreshold, Providers, RefreshCwIcon, RyaiLogoIcon, SearchInput, type SearchInputProps, SegmentedControl, Select, type SelectGroup, type SelectOption, type SelectProps, Sheet, SheetFileIcon, ShoppingBagIcon, Sidebar, SidebarLink, type SidebarMainMenuItem, type SidebarSubMenuItem, type SidebarUtilityItem, Skeleton, type SkeletonProps, SlideFileIcon, Slider, SmileIcon, type SortDirection, SortIcon, SparklesIcon, SquareCheckIcon, SquareCheckOutlineIcon, StarIcon, Stepper, type StepperProps, StrikethroughIcon, Switch, SwitchField, type SwitchFieldProps, type TabItem, Table, type TableColumn, type TablePaginationConfig, TablePropertiesIcon, type TableProps, type TableSortingItem, Tabs, type TabsProps, Toggle, ToggleGroup, type ToggleGroupItemData, type ToggleGroupProps, type ToggleProps, Tooltip, type TooltipProps, TooltipProvider, TooltipWithIcon, type TooltipWithIconProps, TrashIcon, UpstageIcon, type UserMenuSection, type UserMenuSectionItem, UserMessageBubble, WandSparklesIcon, WordFileIcon, buttonVariants, toggleBaseClasses, toggleSizeClasses };
package/dist/index.js CHANGED
@@ -102,6 +102,12 @@ __export(components_exports, {
102
102
  Breadcrumb: () => Breadcrumb,
103
103
  Button: () => Button,
104
104
  Card: () => Card,
105
+ CardAction: () => CardAction,
106
+ CardContent: () => CardContent,
107
+ CardDescription: () => CardDescription,
108
+ CardFooter: () => CardFooter,
109
+ CardHeader: () => CardHeader,
110
+ CardTitle: () => CardTitle,
105
111
  Checkbox: () => Checkbox,
106
112
  CheckboxCard: () => CheckboxCard,
107
113
  ChevronsUpDownIcon: () => ChevronsUpDownIcon2,
@@ -1252,72 +1258,83 @@ function Dropdown({ middle }) {
1252
1258
 
1253
1259
  // src/components/ui/card.tsx
1254
1260
  var import_jsx_runtime9 = require("react/jsx-runtime");
1255
- var AVAILABILITY_BADGE = {
1256
- available: { variant: "info", label: "\uB300\uC5EC \uAC00\uB2A5", icon: null },
1257
- rented: { variant: "secondary", label: "\uB300\uC5EC \uC911", icon: "settings" }
1258
- };
1259
- var MACHINE_TYPE_BADGE = {
1260
- reserved: {
1261
- variant: "success",
1262
- label: "Reserved",
1263
- icon: "calendar"
1264
- },
1265
- "on-demand": { variant: "warning", label: "On-demand", icon: "zap" }
1266
- };
1267
- function Card({
1268
- machineType,
1269
- availability,
1270
- machineName,
1271
- machineInitial,
1272
- tags = [],
1273
- specs = [],
1274
- onSelect,
1275
- selectLabel = "\uBA38\uC2E0 \uC120\uD0DD",
1276
- className
1277
- }) {
1278
- var _a;
1279
- const avail = AVAILABILITY_BADGE[availability];
1280
- const mtype = MACHINE_TYPE_BADGE[machineType];
1281
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1261
+ function Card(_a) {
1262
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1263
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1282
1264
  "div",
1283
- {
1265
+ __spreadValues({
1266
+ "data-slot": "card",
1284
1267
  className: cn(
1285
- "flex w-80 flex-col gap-6 rounded-2xl border border-border bg-card py-6 shadow-sm",
1268
+ "flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",
1286
1269
  className
1287
- ),
1288
- children: [
1289
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex items-center gap-1 px-6", children: [
1290
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1291
- Badge,
1292
- {
1293
- text: avail.label,
1294
- variant: avail.variant,
1295
- iconName: (_a = avail.icon) != null ? _a : void 0
1296
- }
1297
- ),
1298
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1299
- Badge,
1300
- {
1301
- text: mtype.label,
1302
- variant: mtype.variant,
1303
- iconName: mtype.icon
1304
- }
1305
- )
1306
- ] }),
1307
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex flex-col gap-2 px-6", children: [
1308
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex items-center gap-2 w-full", children: [
1309
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-lg border border-border bg-background", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-xl font-bold leading-7 tracking-tight text-foreground", children: machineInitial }) }),
1310
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-xl font-semibold leading-7 tracking-tight text-card-foreground whitespace-nowrap", children: machineName })
1311
- ] }),
1312
- tags.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex min-h-12 flex-wrap content-center items-center gap-1.5", children: tags.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Badge, { text: tag, variant: "secondary" }, tag)) })
1313
- ] }),
1314
- specs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex flex-col gap-2 px-6", children: specs.map(({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex items-start w-full", children: [
1315
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "w-15 shrink-0 text-sm font-normal leading-5 tracking-tight text-muted-foreground", children: label }),
1316
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex min-w-0 flex-1 items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-sm font-medium leading-5 tracking-tight text-card-foreground whitespace-nowrap", children: value }) })
1317
- ] }, label)) }),
1318
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "px-6", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Button, { variant: "outline", className: "w-full", onClick: onSelect, children: selectLabel }) })
1319
- ]
1320
- }
1270
+ )
1271
+ }, props)
1272
+ );
1273
+ }
1274
+ function CardHeader(_a) {
1275
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1276
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1277
+ "div",
1278
+ __spreadValues({
1279
+ "data-slot": "card-header",
1280
+ className: cn(
1281
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
1282
+ className
1283
+ )
1284
+ }, props)
1285
+ );
1286
+ }
1287
+ function CardTitle(_a) {
1288
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1289
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1290
+ "div",
1291
+ __spreadValues({
1292
+ "data-slot": "card-title",
1293
+ className: cn("leading-none font-semibold", className)
1294
+ }, props)
1295
+ );
1296
+ }
1297
+ function CardDescription(_a) {
1298
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1299
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1300
+ "div",
1301
+ __spreadValues({
1302
+ "data-slot": "card-description",
1303
+ className: cn("text-sm text-muted-foreground", className)
1304
+ }, props)
1305
+ );
1306
+ }
1307
+ function CardAction(_a) {
1308
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1309
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1310
+ "div",
1311
+ __spreadValues({
1312
+ "data-slot": "card-action",
1313
+ className: cn(
1314
+ "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
1315
+ className
1316
+ )
1317
+ }, props)
1318
+ );
1319
+ }
1320
+ function CardContent(_a) {
1321
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1322
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1323
+ "div",
1324
+ __spreadValues({
1325
+ "data-slot": "card-content",
1326
+ className: cn("px-6", className)
1327
+ }, props)
1328
+ );
1329
+ }
1330
+ function CardFooter(_a) {
1331
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1332
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1333
+ "div",
1334
+ __spreadValues({
1335
+ "data-slot": "card-footer",
1336
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className)
1337
+ }, props)
1321
1338
  );
1322
1339
  }
1323
1340
 
@@ -3063,7 +3080,7 @@ function Input(_a) {
3063
3080
  type,
3064
3081
  "data-slot": "input",
3065
3082
  className: cn(
3066
- "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
3083
+ "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
3067
3084
  "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
3068
3085
  "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
3069
3086
  className
@@ -3101,7 +3118,7 @@ function InputGroup(_a) {
3101
3118
  "data-slot": "input-group",
3102
3119
  role: "group",
3103
3120
  className: cn(
3104
- "group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none dark:bg-input/30",
3121
+ "group/input-group relative flex w-full items-center rounded-md border border-input transition-[color,box-shadow] outline-none dark:bg-input/30",
3105
3122
  "h-9 min-w-0 has-[>textarea]:h-auto",
3106
3123
  // Variants based on alignment.
3107
3124
  "has-[>[data-align=inline-start]]:[&>input]:pl-2",
@@ -4968,7 +4985,7 @@ function Sidebar({
4968
4985
  className,
4969
4986
  LinkComponent
4970
4987
  }) {
4971
- var _a;
4988
+ var _a, _b, _c;
4972
4989
  const [isPanelOpen, setIsPanelOpen] = React22.useState(true);
4973
4990
  const activeMenu = React22.useMemo(
4974
4991
  () => {
@@ -5051,7 +5068,7 @@ function Sidebar({
5051
5068
  }
5052
5069
  ) }),
5053
5070
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex flex-col flex-1 items-center justify-end min-h-0 min-w-0 px-4 py-3 gap-3 w-full", children: utilities == null ? void 0 : utilities.map((util) => {
5054
- var _a2, _b;
5071
+ var _a2, _b2;
5055
5072
  if (util.popover) {
5056
5073
  return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(React22.Fragment, { children: util.popover }, util.id);
5057
5074
  }
@@ -5096,7 +5113,7 @@ function Sidebar({
5096
5113
  }
5097
5114
  )
5098
5115
  },
5099
- (_b = util.id) != null ? _b : util.label
5116
+ (_b2 = util.id) != null ? _b2 : util.label
5100
5117
  );
5101
5118
  }) }),
5102
5119
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex items-center justify-center pt-3 pb-5 shrink-0 w-full", children: avatar })
@@ -5117,7 +5134,7 @@ function Sidebar({
5117
5134
  className: "flex items-center justify-between pl-2 pr-0.5 py-2 w-full",
5118
5135
  style: { height: "36px" },
5119
5136
  children: [
5120
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex items-center gap-1.5 min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-sm font-semibold leading-5 text-foreground tracking-tight truncate", children: (activeMenu == null ? void 0 : activeMenu.title) || "-" }) }),
5137
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex items-center gap-1.5 min-w-0", children: (_c = activeMenu == null ? void 0 : activeMenu.panelHeader) != null ? _c : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-sm font-semibold leading-5 text-foreground tracking-tight truncate", children: (_b = activeMenu == null ? void 0 : activeMenu.title) != null ? _b : "-" }) }),
5121
5138
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5122
5139
  "button",
5123
5140
  {
@@ -9520,6 +9537,12 @@ function WordFileIcon({ className }) {
9520
9537
  Breadcrumb,
9521
9538
  Button,
9522
9539
  Card,
9540
+ CardAction,
9541
+ CardContent,
9542
+ CardDescription,
9543
+ CardFooter,
9544
+ CardHeader,
9545
+ CardTitle,
9523
9546
  Checkbox,
9524
9547
  CheckboxCard,
9525
9548
  ChevronsUpDownIcon,