Skip to main content

orbital_core_components/
lib.rs

1#![allow(clippy::needless_update, unused_doc_comments)]
2#![recursion_limit = "512"]
3//! Themed Orbital UI components for Leptos applications.
4//!
5//! Builds on [`orbital_base_components`] with Orbital theme tokens, motion, and
6//! styled surfaces (buttons, forms, overlays, navigation, and more).
7
8pub mod app_bar;
9pub mod button;
10pub mod code;
11pub mod data;
12pub mod divider;
13pub mod extensions;
14pub mod feedback;
15pub mod flex;
16pub mod floating_button;
17pub mod forms;
18pub mod grid;
19pub mod icon;
20pub mod layout;
21pub mod layout_box;
22pub mod material;
23pub mod rating;
24pub mod scroll_area;
25pub mod space;
26pub mod stack;
27pub mod tag;
28pub mod tree;
29
30pub mod card;
31pub mod navigation;
32pub mod overlay;
33pub mod pagination;
34pub mod tab_list;
35pub mod text;
36
37pub use app_bar::{
38    AppBar, AppBarDensity, AppBarLeading, AppBarMaterial, AppBarPosition, AppBarTrailing,
39};
40pub use card::{
41    Card, CardButtonArea, CardContent, CardFooter, CardHeader, CardHeaderAction,
42    CardHeaderDescription, CardMedia, CardPreview, CardSectionBorder,
43};
44pub use text::*;
45
46pub use button::{Button, ButtonAppearance, ButtonRef, ButtonShape, ButtonSize, ButtonType};
47pub use code::Code;
48pub use data::{
49    link_styles, Avatar, AvatarColor, AvatarConfig, AvatarGroup, AvatarGroupLayout,
50    AvatarGroupSize, AvatarShape, Breadcrumb, BreadcrumbButton, BreadcrumbDivider, BreadcrumbItem,
51    Image, ImageConfig, ImageFit, ImageShape, Link, List, ListItem, ListNavigationMode,
52    ListSelectionMode, Persona, PersonaConfig, PersonaPrimaryText, PersonaQuaternaryText,
53    PersonaSecondaryText, PersonaSize, PersonaTertiaryText, PersonaTextAlignment,
54    PersonaTextPosition, Table, TableBody, TableCell, TableCellLayout, TableCellLayoutConfig,
55    TableHeader, TableHeaderCell, TableHeaderCellConfig, TableRow,
56};
57pub use divider::Divider;
58pub use extensions::ThemeDensityStepper;
59#[cfg(feature = "preview")]
60pub use extensions::ThemePreviewMarker;
61pub use extensions::{LoadingBarInjection, LoadingBarProvider};
62pub use flex::{
63    Flex, FlexAlign, FlexGap, FlexJustify, FlexWrap, SpacingHorizontal, SpacingInset,
64    SpacingVertical,
65};
66pub use floating_button::{
67    FloatingButton, FloatingButtonColor, FloatingButtonConfig, FloatingButtonSize,
68    FloatingButtonVariant,
69};
70pub use forms::{
71    calendar_styles, default_calendar_day, default_calendar_month_button, input_styles,
72    ActionMenuButton, ActionMenuItems, AutoComplete, AutoCompleteAppearance, AutoCompleteBind,
73    AutoCompleteEvents, AutoCompleteOption, AutoCompleteSize, ButtonGroup, Calendar,
74    CalendarAppearance, CalendarBind, CalendarChromeLabels, CalendarDayProps, CalendarDayRenderer,
75    CalendarMonthButtonProps, CalendarMonthButtonRenderer, CalendarWeekdayHeader, Checkbox,
76    CheckboxSize, Color, ColorBind, ColorPicker, ColorPickerAppearance, ColorPickerBind, Combobox,
77    ComboboxAppearance, ComboboxBind, ComboboxOption, ComboboxOptionGroup, ComboboxSize,
78    CompoundButton, CompoundButtonIconPosition, DatePicker, DatePickerAppearance, DatePickerBind,
79    DatePickerRule, DatePickerRuleTrigger, DatetimeFormat, DatetimeTimezone, Dropdown, Field,
80    FieldInjection, FieldOrientation, FieldValidationState, FileList, FormBind, InfoLabel,
81    InfoLabelInfo, InfoLabelSize, InfoLabelWeight, Input, InputAppearance, InputBind, InputEvents,
82    InputPrefix, InputRef, InputRule, InputRuleTrigger, InputSize, InputSuffix, InputType, Label,
83    LabelSize, LabelWeight, MenuButton, NumericStepper, NumericStepperAppearance,
84    NumericStepperBind, NumericStepperRule, NumericStepperRuleTrigger, NumericStepperSize,
85    OptionBind, PickerShortcut, PickerShortcutsBar, Radio, RadioGroup, RadioGroupBind,
86    RadioGroupLayout, RadioGroupRule, RadioGroupRuleTrigger, SearchBox, SearchBoxAppearance,
87    SearchBoxBind, SearchBoxEvents, Select, SelectAppearance, SelectBind, SelectRule,
88    SelectRuleTrigger, SelectSize, Slider, SliderAppearance, SliderBind, SliderLabel, SliderRule,
89    SliderRuleTrigger, SwatchPicker, SwatchPickerItem, SwatchPickerLayout, SwatchPickerShape,
90    SwatchPickerSize, Switch, SwitchBind, SwitchLabel, SwitchRule, SwitchRuleTrigger, Textarea,
91    TextareaAppearance, TextareaBind, TextareaEvents, TextareaRef, TextareaResize, TextareaRule,
92    TextareaRuleTrigger, TextareaSize, TimePicker, TimePickerAppearance, TimePickerBind,
93    ToggleButton, TransferList, TransferListChange, TransferListConfig, Upload, UploadConfig,
94    UploadDragger,
95};
96pub use grid::{Grid, GridConfig, GridItem, GridItemConfig};
97pub use icon::Icon;
98pub use layout_box::Box;
99pub use orbital_base_components::DemoBox;
100pub use rating::{Rating, RatingColor, RatingDisplay, RatingRule, RatingRuleTrigger, RatingSize};
101pub use scroll_area::ScrollArea;
102pub use space::{Space, SpaceConfig, SpaceGap};
103pub use stack::{Stack, StackConfig};
104pub use tag::{
105    InteractionTag, InteractionTagPrimary, SecondaryActionTag, Tag, TagAppearance, TagGroup,
106    TagPicker, TagPickerBind, TagPickerControl, TagPickerGroup, TagPickerInput, TagPickerOption,
107    TagPickerOptionGroup, TagPickerSize, TagSize,
108};
109
110pub use feedback::{
111    Badge, BadgeAppearance, BadgeColor, BadgeSize, CounterBadge, Dialog, DialogActions, DialogBody,
112    DialogContent, DialogDismiss, DialogDismissConfig, DialogSurface, DialogTitle, MessageBar,
113    MessageBarActions, MessageBarBody, MessageBarIntent, MessageBarLayout, MessageBarTitle,
114    OpenBind, PresenceBadge, PresenceBadgeSize, PresenceStatus, ProgressBar, ProgressBarColor,
115    ProgressCircle, ProgressCircleColor, Skeleton, SkeletonItem, SkeletonItemShape,
116    SkeletonItemSize, Spinner, SpinnerSize, Toast, ToastAction, ToastBody, ToastDefaultTimeoutMs,
117    ToastFooter, ToastId, ToastIntent, ToastOffset, ToastOptions, ToastPosition, ToastTitle,
118    ToastTrigger, ToasterInjection, ToasterProvider,
119};
120pub use layout::{
121    AppBarInset, Aside, Content, ContentWithAside, Layout, LayoutHeader, LayoutHeaderInset,
122    LayoutMain, LayoutPosition, LayoutSidebar, LayoutSidebarOpen, LayoutSidebarToggle,
123};
124pub use material::{Material, MaterialCorners, MaterialElevation, MaterialVariant};
125pub use navigation::{
126    Accordion, AccordionHeader, AccordionItem, Anchor, AnchorConfig, AnchorLink, BackToTop,
127    BackToTopLabel, Carousel, CarouselSlide, CarouselState, CarouselStateInjection,
128    CarouselStepper, CarouselStepperLayout, CarouselViewport, Drawer, DrawerBody, DrawerHeader,
129    DrawerHeaderTitle, DrawerHeaderTitleAction, DrawerModalType, DrawerPosition, DrawerSize,
130    FloatingActionsMenu, FloatingActionsMenuConfig, FloatingActionsMenuItem, InlineDrawer, Menu,
131    MenuAppearance, MenuConfig, MenuItem, MenuPosition, MenuTrigger, MenuTriggerType, Navigation,
132    NavigationAppItem, NavigationBody, NavigationCategory, NavigationCategoryHeader,
133    NavigationCollapseToggle, NavigationConfig, NavigationDensity, NavigationDivider,
134    NavigationFooter, NavigationHeader, NavigationItem, NavigationItemConfig, NavigationMaterial,
135    NavigationMode, NavigationSectionHeader, NavigationSubItem, NavigationSubItemGroup,
136    OffsetTarget, Overflow, OverflowAxes, OverflowChangeData, OverflowDirection, OverflowMenuItems,
137    OverlayDrawer, Popover, PopoverAppearance, PopoverConfig, PopoverLifecycle, PopoverPosition,
138    PopoverSize, PopoverTrigger, PopoverTriggerType, SpotlightActions, SpotlightBackdrop,
139    SpotlightBody, SpotlightFooter, SpotlightHeader, SpotlightMedia, SpotlightPopover,
140    SpotlightTip, SpotlightTour, SpotlightTourInjection, SpotlightTourState, SpotlightTourStep,
141    SpotlightTrigger, Toolbar, ToolbarButton, ToolbarSize, Tooltip, TooltipAppearance,
142    TooltipConfig, TooltipPosition,
143};
144pub use orbital_base_components::{ExpansionTrigger, TreeSelectionMode};
145pub use overlay::{Backdrop, BackdropConfig, OverlayLayerRoot, ThemedPortal};
146pub use pagination::{Pagination, PaginationConfig};
147#[cfg(feature = "preview")]
148pub use scroll_area::{
149    ScrollAreaPreview, SCROLLAREA_BEST_PRACTICES, SCROLLAREA_DESCRIPTION, SCROLLAREA_DOC,
150    SCROLLAREA_PREVIEW_REGISTRATION, SCROLLAREA_PROPS,
151};
152pub use tab_list::{Tab, TabList};
153pub use tree::{
154    RichTree, RichTreeData, Tree, TreeApiRef, TreeAppearance, TreeBehavior, TreeConfig,
155    TreeExpansion, TreeItem, TreeItemAside, TreeItemCheckbox, TreeItemCollapse, TreeItemConfig,
156    TreeItemIconAfter, TreeItemIconBefore, TreeItemLabelInput, TreeItemLayout, TreeItemType,
157    TreeSelection, TreeSize,
158};
159
160#[cfg(feature = "preview")]
161pub mod preview;
162
163#[cfg(feature = "preview")]
164pub use data::{
165    AVATAR_PREVIEW_REGISTRATION, BREADCRUMB_PREVIEW_REGISTRATION, IMAGE_PREVIEW_REGISTRATION,
166    LINK_PREVIEW_REGISTRATION, LIST_PREVIEW_REGISTRATION, PERSONA_PREVIEW_REGISTRATION,
167    TABLE_PREVIEW_REGISTRATION,
168};
169#[cfg(feature = "preview")]
170pub use divider::DIVIDER_PREVIEW_REGISTRATION;
171#[cfg(feature = "preview")]
172pub use extensions::LOADINGBAR_PREVIEW_REGISTRATION;
173#[cfg(feature = "preview")]
174pub use feedback::{
175    BADGE_PREVIEW_REGISTRATION, DIALOG_PREVIEW_REGISTRATION, MESSAGEBAR_PREVIEW_REGISTRATION,
176    PROGRESSBAR_PREVIEW_REGISTRATION, SKELETON_PREVIEW_REGISTRATION, SPINNER_PREVIEW_REGISTRATION,
177    TOAST_PREVIEW_REGISTRATION,
178};
179#[cfg(feature = "preview")]
180pub use floating_button::FLOATINGBUTTON_PREVIEW_REGISTRATION;
181#[cfg(feature = "preview")]
182pub use forms::upload::UPLOAD_PREVIEW_REGISTRATION;
183#[cfg(feature = "preview")]
184pub use forms::{
185    AUTOCOMPLETE_PREVIEW_REGISTRATION, BUTTONGROUP_PREVIEW_REGISTRATION,
186    CALENDAR_PREVIEW_REGISTRATION, CHECKBOX_PREVIEW_REGISTRATION, COLORPICKER_PREVIEW_REGISTRATION,
187    COMBOBOX_PREVIEW_REGISTRATION, DATEPICKER_PREVIEW_REGISTRATION, DROPDOWN_PREVIEW_REGISTRATION,
188    FIELD_PREVIEW_REGISTRATION, INFOLABEL_PREVIEW_REGISTRATION, INPUT_PREVIEW_REGISTRATION,
189    LABEL_PREVIEW_REGISTRATION, MENUBUTTON_PREVIEW_REGISTRATION,
190    NUMERICSTEPPER_PREVIEW_REGISTRATION, RADIO_PREVIEW_REGISTRATION,
191    SEARCHBOX_PREVIEW_REGISTRATION, SELECT_PREVIEW_REGISTRATION, SLIDER_PREVIEW_REGISTRATION,
192    SWITCH_PREVIEW_REGISTRATION, TEXTAREA_PREVIEW_REGISTRATION, TIMEPICKER_PREVIEW_REGISTRATION,
193    TOGGLEBUTTON_PREVIEW_REGISTRATION, TRANSFERLIST_PREVIEW_REGISTRATION,
194};
195#[cfg(feature = "preview")]
196pub use grid::GRID_PREVIEW_REGISTRATION;
197#[cfg(feature = "preview")]
198pub use navigation::anchor::ANCHOR_PREVIEW_REGISTRATION;
199#[cfg(feature = "preview")]
200pub use navigation::back_to_top::BACKTOTOP_PREVIEW_REGISTRATION;
201#[cfg(feature = "preview")]
202pub use navigation::{
203    ACCORDION_PREVIEW_REGISTRATION, CAROUSELSTEPPER_PREVIEW_REGISTRATION,
204    CAROUSEL_PREVIEW_REGISTRATION, DRAWER_PREVIEW_REGISTRATION,
205    FLOATINGACTIONSMENU_PREVIEW_REGISTRATION, MENU_PREVIEW_REGISTRATION,
206    POPOVER_PREVIEW_REGISTRATION, SPOTLIGHTPOPOVER_PREVIEW_REGISTRATION,
207    SPOTLIGHTTIP_PREVIEW_REGISTRATION, SPOTLIGHTTOUR_PREVIEW_REGISTRATION,
208    TOOLTIP_PREVIEW_REGISTRATION,
209};
210#[cfg(feature = "preview")]
211pub use rating::{RATINGDISPLAY_PREVIEW_REGISTRATION, RATING_PREVIEW_REGISTRATION};
212#[cfg(feature = "preview")]
213pub use space::SPACE_PREVIEW_REGISTRATION;
214#[cfg(feature = "preview")]
215pub use stack::STACK_PREVIEW_REGISTRATION;
216#[cfg(feature = "preview")]
217pub use tag::{
218    INTERACTIONTAG_PREVIEW_REGISTRATION, TAGGROUP_PREVIEW_REGISTRATION,
219    TAGPICKER_PREVIEW_REGISTRATION, TAG_PREVIEW_REGISTRATION,
220};
221
222#[cfg(feature = "preview")]
223pub(crate) mod components {
224    pub use crate::preview::components::*;
225}