Skip to main content

orbital_base_components/
lib.rs

1//! Headless base primitives for Orbital — structure, semantics, and a11y without theme.
2
3#![recursion_limit = "512"]
4
5mod callback;
6
7pub mod accordion;
8pub mod anchor;
9pub mod app_bar;
10pub mod avatar;
11pub mod back_to_top;
12pub mod button;
13pub mod card;
14pub mod code;
15pub mod collection;
16pub mod data;
17pub mod demo_box;
18pub mod divider;
19pub mod drawer;
20pub mod feedback;
21pub mod flex;
22pub mod floating_button;
23pub mod form;
24pub mod grid;
25pub mod icon;
26pub mod layout;
27pub mod loading_bar;
28pub mod material;
29pub mod motion;
30pub mod navigation;
31pub mod overlay;
32pub mod pagination;
33pub mod preview_render_mode;
34pub mod rating;
35pub mod signals;
36pub mod space;
37pub mod spacing;
38pub mod stack;
39pub mod tab_list;
40pub mod table;
41pub mod tag;
42pub mod tokens;
43pub mod tree;
44pub mod upload;
45
46pub use accordion::{AccordionHeader, AccordionInjection, BaseAccordion, BaseAccordionItem};
47pub use anchor::{AnchorInjection, BaseAnchor, BaseAnchorLink, OffsetTarget};
48pub use app_bar::{AppBarDensity, AppBarPosition, BaseAppBar};
49pub use avatar::{color_hash, initials_from_name, AvatarColor, AvatarShape, BaseAvatar};
50pub use back_to_top::BaseBackToTop;
51pub use button::{
52    BaseButton, BaseCompoundButton, ButtonAppearance, ButtonRef, ButtonShape, ButtonSize,
53    ButtonType, CompoundButtonIconPosition,
54};
55pub use callback::Handler;
56pub use card::BaseCardButtonArea;
57pub use code::BaseCode;
58pub use collection::state::CollectionStateInjection;
59pub use data::{
60    AvatarGroupLayout, AvatarGroupSize, BaseAvatarGroup, BaseBreadcrumb, BaseBreadcrumbButton,
61    BaseBreadcrumbDivider, BaseBreadcrumbItem, BaseImage, BaseLink, BaseList, BaseListItem,
62    ImageFit, ImageShape, ListNavigationMode, ListSelectionMode,
63};
64pub use demo_box::DemoBox;
65pub use divider::BaseDivider;
66pub use drawer::{
67    drawer_size_css, BaseDrawerBody, BaseDrawerHeader, BaseDrawerHeaderTitle, BaseInlineDrawer,
68    BaseOverlayDrawer, DrawerHeaderTitleAction, DrawerModalType, DrawerPosition, DrawerSize,
69};
70pub use feedback::{BaseCounterBadge, BasePresenceBadge, PresenceBadgeSize, PresenceStatus};
71pub use flex::{BaseFlex, FlexAlign, FlexGap, FlexJustify, FlexWrap};
72pub use floating_button::BaseFloatingButton;
73pub use floating_button::FloatingButtonVariant;
74#[allow(deprecated)]
75pub use form::{
76    build_month_grid, compose_time_unix, format_datetime, format_time_value, format_unix,
77    get_dropdown_action_from_key, is_datetime_out_of_range, is_day_disabled,
78    listbox_keyboard_event, move_all, move_checked, new_field_id, normalize_reference_date,
79    now_time, parse_datetime, parse_time_input, parse_to_unix, selectable_ids, selected_count,
80    to_panel_time, toggle_all, use_active_descendant, ActiveDescendantController, AutoCompleteSize,
81    BaseButtonGroup, BaseCalendar, BaseCheckbox, BaseColorPicker, BaseDatePicker, BaseField,
82    BaseInfoLabel, BaseInput, BaseLabel, BaseListbox, BaseNumericStepper, BaseRadio,
83    BaseRadioGroup, BaseSelect, BaseSlider, BaseSliderLabel, BaseSwatchPicker,
84    BaseSwatchPickerItem, BaseSwitch, BaseTextarea, BaseTimePicker, CheckboxSize, Color, ColorBind,
85    ComboboxSize, DatePickerRule, DatePickerRuleTrigger, DatetimeError, DatetimeFormat,
86    DatetimeTimezone, DropdownAction, FieldInjection, FieldOrientation, FieldValidationState,
87    FormBind, GridDay, GridDayKind, InfoLabelInfo, InputRef, InputRule, InputRuleTrigger,
88    InputSize, InputType, LabelSize, LabelWeight, ListboxInjection, MonthButtonRenderProps,
89    MonthButtonRenderer, NumericStepperRule, NumericStepperRuleTrigger, OptionBind,
90    OrbitalDateTime, PickerShortcut, PickerShortcutsBar, RadioGroupRule, RadioGroupRuleTrigger,
91    RatingRule, RatingRuleTrigger, Rule, RuleValueWithUntracked, SelectRule, SelectRuleTrigger,
92    SelectSize, SliderRule, SliderRuleTrigger, SwatchPickerInjection, SwatchPickerLayout,
93    SwatchPickerShape, SwatchPickerSize, SwitchRule, SwitchRuleTrigger, TextareaRef,
94    TextareaResize, TextareaRule, TextareaRuleTrigger, TextareaSize, ToDataValue, ToIso8601,
95    ToUnixSeconds, TransferListItem, TryFromDataValue, TryFromIso8601, TryFromUnixSeconds,
96    UnixTime,
97};
98pub use grid::{use_grid, BaseGrid, BaseGridItem, GridInjection};
99pub use icon::BaseIcon;
100pub use layout::{
101    AppBarInset, BaseLayout, BaseLayoutBody, BaseLayoutHeaderInset, BaseLayoutMain,
102    BaseLayoutSidebar, LayoutPosition,
103};
104pub use loading_bar::{BaseLoadingBarProvider, LoadingBarInjection};
105pub use material::{BaseMaterial, MaterialCorners, MaterialElevation, MaterialVariant};
106#[allow(deprecated)]
107pub use motion::BaseCollapseTransition;
108pub use navigation::carousel::{
109    BaseCarousel, BaseCarouselSlide, BaseCarouselStepper, BaseCarouselViewport, CarouselState,
110    CarouselStateInjection, CarouselStepperLayout,
111};
112pub use navigation::overflow::{BaseOverflow, OverflowAxes, OverflowChangeData, OverflowDirection};
113pub use navigation::toolbar::{BaseToolbar, ToolbarSize};
114pub use navigation::{
115    BaseFloatingActionsMenuItem, BaseNavigation, BaseNavigationItem, BaseNavigationItemConfig,
116    FloatingActionsMenuDirection, FloatingActionsMenuInjection, FloatingActionsMenuTooltipSide,
117    NavigationCategoryInjection, NavigationDensity, NavigationInjection, NavigationMode,
118    NavigationSubItemGroupInjection,
119};
120pub use overlay::{
121    arrow_style, build_anchor_arrow, AnchorWidth, AnchoredOverlay, AnchoredOverlayConfig,
122    AnchoredPanel, AnchoredPositioner, AnchoredSurface, BackdropMode, BadgeAppearance, BadgeColor,
123    BadgeSize, BaseBackdrop, BaseBadge, BaseDialog, BaseDialogActions, BaseDialogBody,
124    BaseDialogContent, BaseDialogSurface, BaseDialogTitle, BaseMenu, BaseMenuItem, BaseMessageBar,
125    BaseMessageBarActions, BaseMessageBarBody, BaseMessageBarTitle, BasePopover, BaseSkeleton,
126    BaseSkeletonItem, BaseSpinner, BaseToast, BaseToastBody, BaseToastFooter, BaseToastStack,
127    BaseToastTitle, BaseToastTrigger, BaseToasterProvider, BaseTooltip, DialogDismiss,
128    DialogInjection, FeedbackIntent, FocusTrap, MenuInjection, MenuKeyboardRegion,
129    MessageBarLayout, OpenBind, OverlayAppearance, OverlayArrowInjection, OverlayArrowMode,
130    OverlayDismiss, OverlayLifecycle, OverlayPanelSize, OverlayPlacementInjection, OverlayTrigger,
131    OverlayTriggerType, Placement, PopoverEvents, SkeletonInjection, SkeletonItemShape,
132    SkeletonItemSize, SpinnerSize, ThemedPortal, ToastAction, ToastId, ToastItemContext,
133    ToastOffset, ToastOptions, ToastStackPosition, ToasterConfig, ToasterInjection,
134    UseOverlayVisibility, DEFAULT_TOAST_LIMIT, DEFAULT_TOAST_TIMEOUT_MS,
135};
136pub use pagination::{pagination_items, PaginationItem};
137pub use preview_render_mode::PreviewRenderMode;
138pub use rating::{filled_fraction, BaseRatingItem, RatingColor, RatingSize};
139pub use space::BaseSpace;
140pub use stack::BaseStack;
141pub use table::{
142    BaseTable, BaseTableBody, BaseTableCell, BaseTableCellLayout, BaseTableHeader,
143    BaseTableHeaderCell, BaseTableRow,
144};
145pub use tag::{
146    BaseInteractionTag, BaseInteractionTagPrimary, BaseSecondaryActionTag, BaseTag,
147    BaseTagDismissButton, BaseTagGroup, InteractionTagInjection, TagAppearance, TagGroupInjection,
148    TagSize,
149};
150pub use tree::{
151    apply_sibling_dom_reorder, base_tree_item_layout, install_tree_drag_listeners, BaseSubtree,
152    BaseTree, BaseTreeCollapseSlot, BaseTreeConfig, BaseTreeItem, BaseTreeItemAside,
153    BaseTreeItemCheckbox, BaseTreeItemIconAfter, BaseTreeItemIconBefore, BaseTreeItemLayout,
154    BaseTreeItemRow, BaseTreeRoot, ExpansionTrigger, SubtreeInjection, TreeDragListenerHandle,
155    TreeDragState, TreeDropPosition, TreeExpansionState, TreeFocusState, TreeInjection,
156    TreeItemDomRegistry, TreeItemInjection, TreeItemRegistry, TreeItemType, TreeRegistryEntry,
157    TreeSelectionMode, TreeSelectionState, TreeSize, TreeState, TreeStateInjection,
158};
159pub use upload::{BaseUpload, BaseUploadDragger, UploadFileList};
160
161/// One documented component prop for preview catalog Properties tabs.
162#[derive(Clone, Copy, Debug)]
163pub struct ComponentPropDoc {
164    pub name: &'static str,
165    pub type_name: &'static str,
166    pub description: &'static str,
167}
168pub use signals::{ComponentRef, SignalModel, WebSysCallback};
169pub use spacing::{SpacingHorizontal, SpacingInset, SpacingVertical};
170pub use tab_list::{BaseTab, BaseTabList};
171pub use tokens::{
172    BorderRadius, FontFamily, FontSize, FontWeight, IconSize, LineHeight, MotionCurve,
173    MotionDuration, Shadow, StrokeWidth, ThemeColor,
174};