Skip to main content

egui_shadcn/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3pub mod accordion;
4pub mod alert;
5pub mod alert_dialog;
6pub mod aspect_ratio;
7pub mod avatar;
8pub mod badge;
9pub mod breadcrumb;
10pub mod button;
11pub mod button_group;
12pub mod calendar;
13pub mod card;
14pub mod carousel;
15#[cfg(feature = "plot")]
16pub mod chart;
17pub mod checkbox;
18pub mod collapsible;
19pub mod combobox;
20pub mod command;
21pub mod context_menu;
22pub mod data_table;
23pub mod date_picker;
24pub mod dialog;
25pub mod drawer;
26pub mod dropdown_menu;
27pub mod empty;
28pub mod field;
29pub mod form;
30pub mod hover_card;
31pub mod icons;
32pub mod input;
33pub mod input_otp;
34pub mod item;
35pub mod kbd;
36pub use kbd::{KbdProps, KbdSize, kbd, kbd_group, kbd_shortcut};
37pub mod label;
38pub mod light_switch;
39pub mod menu_primitives;
40pub mod menubar;
41pub mod navigation_menu;
42pub mod pagination;
43pub mod popover;
44pub mod progress;
45pub mod radio;
46pub mod resizable;
47pub mod scroll_area;
48pub mod select;
49pub mod separator;
50pub mod sheet;
51pub mod sidebar;
52pub mod skeleton;
53pub mod slider;
54pub mod spinner;
55pub mod switch;
56pub mod table;
57pub mod tabs;
58pub mod textarea;
59pub mod theme;
60pub mod toast;
61pub mod toggle;
62pub mod toggle_group;
63pub mod tokens;
64pub mod tooltip;
65pub mod typography;
66
67pub use accordion::{
68    AccordionContext, AccordionItemContext, AccordionItemProps, AccordionProps, AccordionState,
69    AccordionType, accordion, accordion_item,
70};
71pub use alert::{AlertProps, AlertVariant, alert};
72pub use alert_dialog::{AlertDialogProps, AlertDialogResult, alert_dialog};
73pub use aspect_ratio::{AspectRatioProps, aspect_ratio};
74pub use avatar::{AvatarProps, AvatarSize, AvatarVariant, avatar};
75pub use badge::{BadgeProps, BadgeSize, BadgeVariant, badge};
76pub use breadcrumb::{
77    BreadcrumbContext, BreadcrumbMetrics, BreadcrumbProps, BreadcrumbTokens, breadcrumb,
78    breadcrumb_ellipsis, breadcrumb_item, breadcrumb_link, breadcrumb_list, breadcrumb_page,
79    breadcrumb_separator,
80};
81pub use button::{
82    Button, ButtonJustify, ButtonProps, ButtonRadius, ButtonSize, ButtonStyle, ButtonVariant,
83    button,
84};
85pub use button_group::{ButtonGroup, ButtonGroupOrientation, button_group};
86pub use calendar::{
87    CalendarCaptionLayout, CalendarMode, CalendarProps, calendar, calendar_with_props,
88};
89pub use card::{CardProps, CardSize, CardTokens, CardVariant, card, card_tokens_with_options};
90pub use carousel::{
91    CarouselContentProps, CarouselContentResponse, CarouselContext, CarouselItemProps,
92    CarouselItemResponse, CarouselOptions, CarouselOrientation, CarouselProps, CarouselResponse,
93    carousel, carousel_content, carousel_item, carousel_next, carousel_previous,
94};
95#[cfg(feature = "plot")]
96pub use chart::{
97    BarChart, ChartIndicator, ChartLegend, ChartLegendItem, ChartProps, ChartResponse,
98    ChartTooltip, ChartTooltipItem, LineChart, ShadcnChart, chart,
99};
100pub use checkbox::{
101    CheckboxCycle, CheckboxOptions, CheckboxProps, CheckboxSize, CheckboxState, CheckboxVariant,
102    checkbox, checkbox_state, checkbox_with_props,
103};
104pub use collapsible::{CollapsibleContentProps, CollapsibleContext, CollapsibleProps, collapsible};
105pub use combobox::{ComboboxProps, ComboboxSize, combobox, combobox_with_props};
106pub use command::{
107    CommandContext, CommandDialogProps, CommandGroupProps, CommandInputProps, CommandItemProps,
108    CommandListProps, CommandProps, OnCommandSelect, command, command_dialog, command_empty,
109    command_group, command_input, command_item, command_list, command_separator, command_shortcut,
110};
111pub use context_menu::{
112    ContextMenuCheckboxItemProps, ContextMenuItemProps, ContextMenuItemVariant,
113    ContextMenuLabelProps, ContextMenuRadioGroupProps, ContextMenuRadioItemProps,
114    ContextMenuSubProps, ContextMenuTokens, context_menu, context_menu_checkbox_item,
115    context_menu_item, context_menu_label, context_menu_radio_group, context_menu_radio_item,
116    context_menu_separator, context_menu_shortcut, context_menu_sub, context_menu_tokens,
117};
118pub use data_table::{
119    DataTableAlign, DataTableColumn, DataTableProps, DataTableResponse, SortDirection, SortValue,
120    data_table,
121};
122pub use date_picker::{
123    DatePickerIconPosition, DatePickerProps, DateRange, DateRangePickerProps, date_picker,
124    date_picker_with_props, date_range_picker, date_range_picker_with_props,
125};
126pub use dialog::{
127    DialogAlign, DialogLayoutTokens, DialogProps, DialogSize, DialogTokens, compute_dialog_rect,
128    dialog, dialog_layout_tokens, dialog_tokens_with_options,
129};
130pub use drawer::{DrawerProps, DrawerSide, drawer, drawer_description, drawer_title};
131pub use dropdown_menu::{
132    DropdownMenuCheckboxItemProps, DropdownMenuItemProps, DropdownMenuItemVariant,
133    DropdownMenuLabelProps, DropdownMenuProps, DropdownMenuRadioGroupProps,
134    DropdownMenuRadioItemProps, DropdownMenuSubProps, DropdownMenuTokens, DropdownMenuTriggerProps,
135    DropdownMenuTriggerResponse, dropdown_menu, dropdown_menu_checkbox_item, dropdown_menu_group,
136    dropdown_menu_item, dropdown_menu_label, dropdown_menu_radio_group, dropdown_menu_radio_item,
137    dropdown_menu_separator, dropdown_menu_shortcut, dropdown_menu_sub, dropdown_menu_tokens,
138    dropdown_menu_trigger,
139};
140pub use empty::{EmptyProps, empty};
141pub use field::{FieldProps, field};
142pub use form::{
143    FieldState, FieldValue, FormControl, FormDescription, FormDescriptionProps, FormItem,
144    FormItemContext, FormItemProps, FormLabel, FormLabelProps, FormMessage, FormMessageProps,
145    FormState, ValidationMode, Validator, compose, email, form_control, form_description,
146    form_item, form_label, form_message, max_length, min_length, none, pattern, required,
147};
148pub use hover_card::{HoverCardProps, hover_card, hover_card_content, hover_card_trigger};
149pub use icons::{icon_calendar, icon_check, icon_chevrons_up_down};
150pub use input::{
151    Input, InputConfig, InputProps, InputRadius, InputSize, InputStyle, InputType, InputVariant,
152    input, input_with_config, input_with_props, resolve_input_style,
153};
154pub use input_otp::{
155    InputOTPContext, InputOTPProps, input_otp, input_otp_group, input_otp_separator,
156    input_otp_slot, input_otp_slot_last,
157};
158pub use item::{ItemProps, item};
159pub use label::{Label, LabelProps, LabelVariant, label, label_with_props};
160pub use light_switch::{LightSwitchProps, light_switch};
161pub use menu_primitives::{
162    MenuCheckboxItemProps, MenuItemProps, MenuItemVariant, MenuLabelProps, MenuRadioGroupProps,
163    MenuRadioItemProps, MenuSubProps, MenuTokens, menu_checkbox_item, menu_item, menu_label,
164    menu_radio_group, menu_radio_item, menu_separator, menu_shortcut, menu_sub, menu_tokens,
165};
166pub use menubar::{
167    MenubarMenuProps, MenubarProps, menubar, menubar_item, menubar_menu, menubar_separator,
168};
169pub use navigation_menu::{
170    NavigationMenuContentProps, NavigationMenuContext, NavigationMenuItemContext,
171    NavigationMenuLinkProps, NavigationMenuLinkResponse, NavigationMenuLinkState,
172    NavigationMenuProps, navigation_menu, navigation_menu_content, navigation_menu_item,
173    navigation_menu_link, navigation_menu_list, navigation_menu_trigger,
174};
175pub use pagination::{
176    OnPageChange, PaginationLinkProps, PaginationProps, pagination, pagination_content,
177    pagination_ellipsis, pagination_item, pagination_link, pagination_next, pagination_previous,
178};
179pub use popover::{
180    PopoverAlign, PopoverCollisionPadding, PopoverPlacement, PopoverPortalContainer, PopoverProps,
181    PopoverSide, PopoverSticky, PopoverUpdatePositionStrategy, popover,
182};
183pub use progress::{ProgressProps, ProgressSize, ProgressVariant, progress};
184pub use radio::{
185    GridLayout, RadioCardVariant, RadioDirection, RadioGroup, RadioGroupProps, RadioOption,
186    radio_group,
187};
188pub use resizable::{
189    ResizableContext, ResizableDirection, ResizableHandleProps, ResizablePanelGroupProps,
190    ResizablePanelProps, resizable_handle, resizable_panel, resizable_panel_group,
191};
192pub use scroll_area::{
193    ScrollAreaColors, ScrollAreaDir, ScrollAreaProps, ScrollAreaRadius, ScrollAreaSize,
194    ScrollAreaType, ScrollDirection, scroll_area,
195};
196pub use select::{
197    ContentVariant, PopupPosition, SelectAlign, SelectAutoFocusEvent, SelectCollisionPadding,
198    SelectDirection, SelectEscapeKeyDownEvent, SelectItem, SelectPointerDownOutsideEvent,
199    SelectPortalContainer, SelectProps, SelectPropsSimple, SelectRadius, SelectSide, SelectSize,
200    SelectSticky, SelectStyle, SelectUpdatePositionStrategy, TriggerVariant, select,
201    select_with_items,
202};
203pub use separator::{SeparatorOrientation, SeparatorProps, SeparatorSize, separator};
204pub use sheet::{
205    SheetContext, SheetProps, SheetSide, sheet, sheet_content, sheet_description, sheet_footer,
206    sheet_header, sheet_title, sheet_trigger,
207};
208pub use sidebar::{
209    SidebarContext, SidebarGroupLabelProps, SidebarGroupProps, SidebarMenuButtonProps,
210    SidebarMenuButtonSize, SidebarProps, SidebarProviderProps, SidebarResponse, SidebarSide,
211    sidebar, sidebar_content, sidebar_footer, sidebar_group, sidebar_group_content,
212    sidebar_group_label, sidebar_header, sidebar_menu, sidebar_menu_button, sidebar_menu_item,
213    sidebar_provider, sidebar_trigger,
214};
215pub use skeleton::{SkeletonProps, skeleton, skeleton_text};
216pub use slider::{
217    SliderOrientation, SliderProps, SliderRadius, SliderSize, SliderVariant, slider,
218    slider_with_props,
219};
220pub use spinner::{SpinnerProps, SpinnerSize, SpinnerVariant, spinner, spinner_with_content};
221pub use switch::{
222    OnCheckedChange, SwitchOptions, SwitchProps, switch, switch_with_options, switch_with_props,
223};
224pub use table::{
225    TableCellProps, TableContext, TableProps, TableRowProps, TableRowResponse, TableSize,
226    TableVariant, table, table_body, table_caption, table_cell, table_footer, table_head,
227    table_header, table_row,
228};
229pub use tabs::{
230    TabItem, TabsActivationMode, TabsContentForceMount, TabsDirection, TabsDirectionality,
231    TabsJustify, TabsListLoop, TabsOrientation, TabsProps, TabsSize, TabsVariant, TabsWrap, tabs,
232};
233pub use textarea::{
234    TextareaBuilder, TextareaBuilder as Textarea, TextareaProps, TextareaRadius, TextareaResize,
235    TextareaSize, TextareaStyle, TextareaVariant, textarea_with_props,
236};
237pub use theme::{ControlVisuals, InputVisuals, Theme};
238pub use toast::{Toast, ToastPosition, ToastPromise, ToastVariant, Toaster};
239pub use toggle::toggle;
240pub use toggle_group::{
241    ToggleGroupContext, ToggleGroupProps, toggle_group, toggle_group_item, toggle_group_item_last,
242};
243pub use tokens::{
244    ColorPalette, ControlSize, ControlVariant, DEFAULT_FOCUS, DEFAULT_MOTION, DEFAULT_RADIUS,
245    FocusTokens, InputTokens, InputVariant as TokenInputVariant, MotionTokens, RadiusScale,
246    ShadcnBaseColor, StateColors, SwitchSize, SwitchTokenOptions, SwitchTokens, SwitchVariant,
247    ToggleVariant, VariantTokens, checkbox_metrics, checkbox_tokens, input_tokens, mix,
248    switch_metrics, switch_metrics_for_control_size, switch_tokens, switch_tokens_with_options,
249    toggle_button_tokens, toggle_metrics, variant_tokens,
250};
251pub use tooltip::{
252    TooltipAlign, TooltipAnimationState, TooltipCollisionPadding, TooltipEscapeKeyDownEvent,
253    TooltipOpenState, TooltipPointerDownOutsideEvent, TooltipPortalContainer, TooltipPosition,
254    TooltipProps, TooltipSide, TooltipState, TooltipSticky, TooltipStyle,
255    TooltipUpdatePositionStrategy, tooltip,
256};
257pub use typography::{
258    BlockquoteProps, CodeProps, CodeVariant, HeadingAs, HeadingProps, LinkProps, LinkUnderline,
259    ResolvedTextStyle, ShadcnTypographyVariant, TextAlign, TextAs, TextProps, TextTrim, TextWeight,
260    TextWrap, TypographyColor, TypographyProps, blockquote, code, heading, link,
261    resolve_shadcn_style, text, typography,
262};