1#![allow(
2clippy::type_complexity,
6 clippy::too_many_arguments,
7 clippy::collapsible_if,
8 clippy::manual_find,
9 clippy::redundant_guards,
10 clippy::needless_range_loop,
11 clippy::explicit_counter_loop,
12 clippy::if_same_then_else,
13 dead_code
14)]
15
16#[cfg(test)]
17pub(crate) mod a11y_container_naming;
18#[cfg(test)]
19mod a11y_field_errors;
20pub(crate) mod a11y_label_invariant;
21pub(crate) mod a11y_reachability;
22pub(crate) mod a11y_set_semantics;
23pub mod accordion;
24pub mod animations;
25pub mod avatar;
26pub mod badge;
27pub mod banner;
28pub mod breadcrumb;
29pub mod button;
30pub mod calendar;
31pub mod card;
32pub mod checkbox;
33pub mod code_editor;
34pub use code_editor::{
35 BracketPair, COMMON_BRACKETS, CodeConfig, CodeEditor, CodeEditorHandle, CompletionContext,
36 CompletionItem, CompletionKind, IndentStyle, LogView, LogViewHandle, PlainTextEditor,
37};
38pub mod color_edit;
39pub mod color_picker;
40pub mod combo_box;
41pub mod command_link_button;
42pub mod command_palette;
43pub mod common;
44pub(crate) mod data_views;
45pub mod date_edit;
46pub mod date_range_edit;
47pub mod date_time_edit;
48pub mod dialog;
49pub mod docking;
50pub mod editor_shortcuts;
51pub use data_views::{ActivateOn, DragTransferMode, RowDragData, ViewId};
52pub(crate) mod drag_preview;
53pub mod drop_target;
54pub mod drop_zone;
55pub mod file_picker_field;
56pub mod focus_scope;
57pub mod font_picker;
58pub mod grid_view;
59pub mod group_box;
60pub mod group_header;
61pub mod hex_color_input;
62pub mod icon_button;
63pub mod input_dialog;
64pub mod keystroke_format;
65pub mod language_switcher;
66pub mod link;
67pub(crate) mod list_item_a11y;
68pub(crate) mod list_source;
69pub mod list_view;
70pub mod menu;
71pub mod menu_bar;
72pub(crate) mod menu_context;
73pub mod menu_item;
74pub mod menu_list;
75pub mod message_box;
76pub mod notification;
77pub mod overlay_trigger;
78pub mod panel;
79pub mod password_field;
80pub(crate) mod popover_caret;
81pub mod popover_surface;
82pub mod popover_widget;
83pub mod primitives;
84#[cfg(feature = "telemetry")]
85pub mod privacy_settings;
86pub mod progress_bar;
87pub mod radio_button;
88pub mod radio_group;
89pub mod radio_tile;
90pub mod radio_tile_group;
91pub mod repeater;
92pub mod rich_text;
93pub mod scroll_area;
94pub mod scroll_bar;
95pub mod search_field;
96pub mod segmented_control;
97pub(crate) mod severity_badge;
98pub mod shadow;
99pub mod shortcut_settings;
100pub mod slider;
101pub mod snackbar;
102pub mod spin_box;
103pub mod spinner;
104pub mod split_button;
105pub mod splitter;
106pub mod standard_item;
107pub mod status_bar;
108pub mod stepper;
109pub mod styles;
110pub mod tab_widget;
111pub mod table_view;
112pub mod text_input;
113pub mod text_scale_control;
114pub mod theme_switcher;
115pub mod time_edit;
116pub mod title_bar;
117pub mod toast;
118pub mod toggle;
119pub mod tool_box;
120pub mod toolbar;
121pub mod tooltip;
122pub(crate) mod tree_source;
123pub mod tree_table_view;
124pub mod tree_view;
125
126#[cfg(feature = "preview")]
127mod doc_snippets;
128#[cfg(feature = "preview")]
129mod preview_catalog;
130
131pub use tooltip::TooltipWidget;
132
133pub use accordion::{Accordion, AccordionOrientation};
134pub use animations::{
135 Blur, Collapse, Crossfade, Cycle, Fade, Pulse, Rotate, Scale, ScaleOrigin, Shake, Slide,
136 SlideEdge, SmoothSize, SmoothSizeAxes, Unroll, UnrollFrom,
137};
138pub use avatar::{Avatar, AvatarCorner, AvatarPresence, AvatarShape, AvatarSize};
139pub use badge::Badge;
140pub use banner::{Banner, BannerSeverity};
141pub use breadcrumb::{Breadcrumb, BreadcrumbItem};
142pub use button::{Button, ButtonVariant, IconLocation};
143pub use calendar::{Calendar, DateRange, WeekNumberDisplay};
144pub use card::Card;
145pub use checkbox::Checkbox;
146pub use color_edit::ColorEdit;
147pub use color_picker::{ColorPicker, ColorPickerLayout, ColorSwatch, DEFAULT_SWATCHES};
148pub use combo_box::ComboBox;
149pub use command_link_button::CommandLinkButton;
150pub use command_palette::{CommandPalette, PaletteCommand};
151pub use common::scroll::OverscrollBehavior;
152pub use common::standard_edit::localize_standard_shortcuts;
153pub use editor_shortcuts::{CodeShortcut, FormatShortcut};
154pub use date_edit::{DateEdit, WidthPolicy};
163pub use date_range_edit::DateRangeEdit;
164pub use date_time_edit::DateTimeEdit;
165pub use dialog::{Dialog, DialogContent, ModalContainer, ModalScrim};
166pub use docking::{
167 CornerOwners, DockAction, DockActionId, DockActionPlacement, DockCorner, DockLayoutState,
168 DockOpenLocation, DockOpenMode, DockPolicy, DockRail, DockRailItemSize, DockRailSlot, DockSide,
169 DockTabDisplay, DockTabId, DockWidget, DockWidgetId, DockingLayout, DockingModel,
170 TabPresentation,
171};
172pub use drop_target::{DropRegionSpec, DropTarget};
173pub use drop_zone::DropZone;
174pub use file_picker_field::{FilePickerField, FilePickerKind};
175pub use focus_scope::FocusScope;
176pub use font_picker::{FontMeta, FontPicker, FontPreviewMode, FontSpacingFilter};
177pub use teksilo_core::styles::{
178 DropRegion, DropRegionSet, DropTargetDragState, DropTargetStyle, DropTargetStyleConfig,
179 DropTargetVariant, RadioTileStyle, RadioTileStyleConfig, RadioTileVariant,
180 SharedDropTargetStyle, SharedRadioTileStyle, TabIndicatorPosition,
181};
182pub use teksilo_core::styles::density::{self, density_min_size, dp, spacing};
186pub use teksilo_data::CheckState;
187pub use grid_view::{
190 GridSectionProvider, GridSizing, GridTabTraversal, GridView, GridViewHandle, GroupingSections,
191 ScrollAnchor, SectionProvider, TileContext, grouping_sections,
192};
193pub use group_box::GroupBox;
194pub use group_header::GroupHeader;
195pub use hex_color_input::HexColorInput;
196pub use icon_button::{BuiltInIcons, IconButton, IconButtonSize};
197pub use input_dialog::InputDialog;
198pub use language_switcher::LanguageSwitcher;
199pub use link::Link;
200pub use list_view::{ListView, ListViewHandle};
201pub use menu::{
202 MenuEntry, MenuItemState, MenuItems, MenuModel, MenuNode, NativeMenuMode, StandardMenu,
203 StandardMenuRole,
204};
205pub use menu_bar::{CollapsePolicy, MenuBar};
206pub use menu_item::MenuItem;
207pub use menu_list::{MenuList, MenuSeparator};
208pub use message_box::{
209 ButtonRole, EventContextMessageBoxExt, MessageBox, MessageBoxButton, MessageBoxButtons,
210 MessageBoxDismissal, MessageBoxResult, MessageBoxSeverity, StandardButton,
211};
212pub use notification::{
213 ARCHIVE_FILE_NAME, ArchivedAction, ArchivedActionStyle, DEFAULT_ARCHIVE_LIMIT,
214 NotificationArchive, NotificationArchiveModel, NotificationCenterButton, NotificationEntry,
215 NotificationLog, NotificationLogDialog, NotificationUpdate, UPDATE_HISTORY_LIMIT,
216};
217pub use overlay_trigger::OverlayTrigger;
218pub use panel::Panel;
219pub use password_field::{AtRevealPolicy, EchoMode, PasswordField, RevealMode};
220pub use popover_surface::PopoverSurface;
221pub use popover_widget::{
222 PopoverButton, PopoverCustom, PopoverIconButton, PopoverTrigger, PopoverWidget,
223};
224pub use primitives::live_image::{
225 ImageGeometry, ImageOrientation, LiveImage, LiveImageDiffWriter, LiveImageHandle,
226 LiveImageSizing, LiveImageSource, LiveImageStats, LiveImageStatus, LiveImageWriter,
227 LivePixelFormat, PixelRect, ScalingFilter,
228};
229pub use primitives::text_input_field::{InputPurpose, ValidationFeedback, ValidationOutcome};
230pub use primitives::{
231 AspectRatio, Center, ColumnFlow, DeadZone, Divider, Expand, FixedSize, FormLayout, Grid,
232 HStack, IconWidget, ImageFit, ImageWidget, MasonryLayout, MaxSize, MinSize, Padding,
233 RectWidget, Shrinkable, Spacer, Switcher, TextWidget, TrackSize, VStack, Wrap, ZStack,
234};
235pub use primitives::{TextFieldHandle, TextInputField};
236#[cfg(feature = "telemetry")]
237pub use privacy_settings::PrivacySettings;
238pub use progress_bar::ProgressBar;
239pub use radio_button::RadioButton;
240pub use radio_group::RadioGroup;
241pub use radio_tile::{RadioTile, RadioTileIndicatorSide};
242pub use radio_tile_group::{RadioTileGroup, TileLayout};
243pub use repeater::Repeater;
244pub use scroll_area::{ScrollArea, ScrollBarMode, ScrollBarPolicy};
245pub use scroll_bar::{ScrollBar, ScrollBarOrientation};
246pub use search_field::SearchField;
247pub use segmented_control::{
248 Segment, SegmentDisplay, SegmentId, SegmentOverflow, SegmentSizing, SegmentedControl,
249};
250pub use shortcut_settings::ShortcutSettings;
251pub use slider::{Slider, SliderValueTooltipPlacement};
252pub use snackbar::Snackbar;
253pub use spin_box::{
254 ButtonLayout as SpinButtonLayout, SpinBox, SpinValue, StepType, WheelMode, WrapMode,
255};
256pub use spinner::Spinner;
257pub use split_button::SplitButton;
258pub use splitter::{
259 PaneDescriptor, PaneSnapshot, PaneState, Splitter, SplitterModel, SplitterState,
260};
261pub use teksilo_core::focus::TraversalScopePolicy;
262pub use standard_item::{StandardListItem, StandardTreeItem};
265pub use status_bar::StatusBar;
266pub use stepper::{
267 ChromePosition, Step, StepStatus, Stepper, StepperController, StepperOrientation, Wizard,
268};
269pub use tab_widget::{
270 ContextMenuFactory, IconFactory as TabIconFactory, STATIC_KIND, StaticContentFactory, TabBar,
271 TabBarOrientation, TabBarVisibility, TabDelegate, TabDisplayMode, TabHandle, TabId, TabInfo,
272 TabOverflowButton, TabSizing, TabWidget,
273};
274pub use table_view::{
275 Alignment as TableAlignment, CellContext, CellSelectionModel, Column, ColumnContext,
276 ColumnResizePolicy, ColumnSpec, ColumnWidth, EditTriggers, GridLines, PinnedSide,
277 SortDirection, TabTraversal, TableHeader, TableSelectionMode, TableView, TableViewHandle,
278 TruncationPolicy,
279};
280pub use teksilo_tokens::Orientation;
281pub use text_input::{TextInput, ValidationState};
282pub use text_scale_control::TextScaleControl;
283pub use theme_switcher::ThemeSwitcher;
284pub use time_edit::{SecondsMode, TimeEdit, TimeFormat};
285pub use title_bar::{DragRegion, ResizeStrip, TitleBar, WindowControls, WindowFrame};
286pub use toast::{
287 EventContextToastExt, Toast, ToastAction, ToastActionStyle, ToastAudience, ToastDismissCause,
288 ToastHandle, ToastHost, ToastInstallOptions, ToastPriority, ToastRegistry, ToastRoute,
289 ToastSeverity, ToastSurface,
290};
291pub use toggle::Toggle;
292pub use tool_box::{ToolBox, ToolBoxItem, ToolBoxOrientation};
293pub use toolbar::{Toolbar, ToolbarAction, ToolbarItem, ToolbarOrientation, ToolbarOverflow};
294pub use tree_source::{TreeRow, TreeRowMeta};
295pub use tree_table_view::{TreeTableView, TreeTableViewHandle};
296pub use tree_view::{TreeRowContext, TreeView, TreeViewHandle};
297
298pub fn framework_locales() -> &'static [(&'static str, &'static [&'static str])] {
319 &[
320 ("en-US", &[include_str!("../locales/en-US.ftl")]), ("ar-SA", &[include_str!("../locales/ar-SA.ftl")]), ("cs-CZ", &[include_str!("../locales/cs-CZ.ftl")]), ("da-DK", &[include_str!("../locales/da-DK.ftl")]), ("de-DE", &[include_str!("../locales/de-DE.ftl")]), ("el-GR", &[include_str!("../locales/el-GR.ftl")]), ("eo", &[include_str!("../locales/eo.ftl")]), ("es-ES", &[include_str!("../locales/es-ES.ftl")]), ("fi-FI", &[include_str!("../locales/fi-FI.ftl")]), ("fr-FR", &[include_str!("../locales/fr-FR.ftl")]), ("he-IL", &[include_str!("../locales/he-IL.ftl")]), ("hu-HU", &[include_str!("../locales/hu-HU.ftl")]), ("it-IT", &[include_str!("../locales/it-IT.ftl")]), ("ja-JP", &[include_str!("../locales/ja-JP.ftl")]), ("ko-KR", &[include_str!("../locales/ko-KR.ftl")]), ("nb-NO", &[include_str!("../locales/nb-NO.ftl")]), ("nl-NL", &[include_str!("../locales/nl-NL.ftl")]), ("pl-PL", &[include_str!("../locales/pl-PL.ftl")]), ("pt-PT", &[include_str!("../locales/pt-PT.ftl")]), ("ro-RO", &[include_str!("../locales/ro-RO.ftl")]), ("ru-RU", &[include_str!("../locales/ru-RU.ftl")]), ("sv-SE", &[include_str!("../locales/sv-SE.ftl")]), ("tr-TR", &[include_str!("../locales/tr-TR.ftl")]), ("uk-UA", &[include_str!("../locales/uk-UA.ftl")]), ]
345}
346
347#[cfg(test)]
348mod layout_integration_tests;