1#![forbid(unsafe_code)]
2
3pub mod a11y;
4mod animated;
5mod any;
6pub mod app;
7pub mod async_view;
8mod backdrop;
9mod cache;
10mod canvas;
11mod clock;
12mod damage;
13pub mod dev_overlay;
14mod dnd;
15mod dock;
16pub mod dock_float;
17pub mod dock_view;
18pub mod dock_window;
19pub mod dockable;
20pub mod edge_dock;
21pub mod error_boundary;
22mod filter_view;
23mod focus_ring;
24mod hit_shape;
25mod icon;
26mod image;
27mod layout_live;
28mod leaf;
29mod list;
30pub mod live;
31mod live_view;
32mod modifiers;
33mod overlay;
34mod paint_draw;
35mod paint_region;
36mod painter;
37mod portal;
38mod presence;
39mod responsive;
40mod rich_text;
41mod runtime;
42mod scroll_view;
43mod scrub;
44mod split_panel;
45mod styleable;
46mod surface;
47pub mod table;
48pub mod thumbnail;
49mod track;
50mod transition;
51pub mod tree;
52mod value;
53mod view;
54mod views;
55mod virtual_list;
56
57pub use a11y::{Accessible, AccessibleNode, AccessibleRole};
58pub use animated::{
59 Animated, MAX_ANIM_DT, Opacity, Pulse, Shake, Translate, fade_sample, pop_sample, pulse_sample,
60 shake_sample, slide_progress,
61};
62pub use any::AnyView;
63pub use async_view::AsyncView;
64pub use backdrop::BackdropBlur;
65pub use cache::{LayerCache, LayerKey};
66pub use canvas::{Canvas, KeyBinding};
67pub use clock::{FrameClock, MAX_FRAME_STEP_SECS};
68pub use damage::{DamageTracker, FrameOutcome};
69pub use dev_overlay::DevOverlay;
70pub use dnd::{
71 DRAG_THRESHOLD, DragEnd, DragId, DragOptions, DragPayload, DragSession, DropPosition,
72 exceeded_threshold, grab_offset, insertion_index, move_item, preview_origin,
73};
74pub use dock::DockArea;
75pub use dock_float::DockFloatLayer;
76pub use dock_view::{DockSlot, DockView};
77pub use dock_window::{DetachedWindow, DockWindowHost, DockWindowRoot};
78pub use dockable::{DockHeader, DockPanel, Dockable};
79pub use edge_dock::{
80 EDGE_GHOST_PX, EDGE_HINT_PX, EDGE_LINE_PX, EdgeGhost, EdgeSide, EdgeSlab, MIN_VISIBLE_H,
81 MIN_VISIBLE_W, UNDOCK_THRESHOLD_PX, clamp_card_top_left, edge_ghost_rect, edge_hint_at,
82 exceeded_undock, main_first_index,
83};
84pub use error_boundary::ErrorBoundary;
85pub use filter_view::{
86 BackdropFiltered, DrawGradientMask, EffectNode, FilterExt, Filtered, draw_gradient_mask,
87};
88pub use focus_ring::{FocusRing, RING_OFFSET, RING_WIDTH, ring_rect};
89pub use hit_shape::{HitCircle, HitRect};
90pub use icon::Icon;
91pub use image::Image;
92pub use layout_live::AnimatedSize;
93pub use leaf::Leaf;
94pub use list::List;
95pub use live::{AnimSpec, Live, MemoLiveExt, Prop, SignalLiveExt, SpringSpec};
96pub use live_view::{LiveBackground, LiveExt, LiveOffset, LiveOpacity};
97pub use modifiers::{
98 Clip, Enter, Motion, Rotated, Scaled, StatePatch, States, ViewModifiers, When, fade, slide_y,
99 when,
100};
101pub use overlay::{
102 Anchor, Dismiss, InputMode, OverlayEntry, OverlayId, OverlayLayer, OverlayOverflow, Placement,
103 Position,
104};
105pub use painter::Painter;
106pub use portal::{DismissableLayer, Popper, Portal};
107pub use presence::{
108 ENTER_SECS, EXIT_SECS, Presence, enter_progress, enter_sample, exit_done, exit_progress,
109 exit_sample,
110};
111pub use responsive::{
112 Breakpoint, Breakpoints, Responsive, ScreenOrientation, WithSize, orientation_of,
113 screen_orientation_of,
114};
115pub use rich_text::RichText;
116pub use runtime::{ElementId, InteractState, Runtime, RuntimeError, Stats, ViewState};
117pub use scroll_view::{ScrollAxis, ScrollView, ScrollbarVisibility};
118pub use scrub::Scrub;
119pub use sequoia_animation::Easing;
120pub use sequoia_dock::{
121 DecodeError, DockDrop, DockModel, DockNode, DockOp, FloatingPanel, PanelId, PanelPayload,
122 SplitAxis, decode as dock_decode, drop_from_fraction, drop_from_fraction_or_float,
123 encode as dock_encode, preview_rect as dock_preview_rect,
124};
125pub use split_panel::SplitPanel;
126pub use styleable::{Decoratable, Styleable};
127pub use surface::{SurfaceDraw, SurfaceInputBinding};
128pub use table::{SortDir, Table, TableColumn, table_filters};
129pub use thumbnail::{ThumbnailCache, shared_cache};
130pub use track::{Orientation, Pad2D, Track1D};
131pub use transition::{Sequence, SequenceFrame, fade_in, pop_in, slide_in, stagger};
132pub use tree::{FlatRow, TreeNode, TreeView};
133pub use value::{Value, ValueExt, derived, spring_spec, value};
134pub use view::{CustomLayout, EventCtx, PaintCtx, TextMetrics, View};
135pub use views::{
136 AspectRatio, Cached, Column, FocusScope, Fragment, Grid, IntoChildren, Margined, Masonry,
137 Panel, Row, Spacer, Stack, StackPos, Text, Unit, Wrap,
138};
139pub use virtual_list::VirtualList;
140
141pub use sequoia_assets::{
142 AssetRegistry, MAX_PHOTO_DIM, PhotoError, Sprite, decode_pixels, decode_pixels_thumbnail,
143 icon_key, load_pixels, load_pixels_thumbnail,
144};
145
146pub use sequoia_core::{
147 BrushStroke, Fill, GradientKind, GradientStops, MAX_GRADIENT_STOPS, Pixels, Size, WindowId,
148};
149
150pub use sequoia_draw::{
151 Dash, FillRule, Gradient, GradientStop, LineCap, LineJoin, MinMax, Path, Peaks, Radius,
152 RasterOptions, Shape, ShapeCache, ShapeStats, Span, StrokeStyle, Transform, WaveformCache,
153 WaveformOpts, bake_strip, layout_bars, waveform_line_points, white_noise,
154};
155
156pub use paint_draw::GRADIENT_BAND_PX;
157pub use paint_region::CullCtx;
158
159pub use sequoia_input::{
160 CursorIcon, DropEffect, Event, EventPhase, Key, KeyEvent, Modifiers, PenTool, PointerButton,
161 PointerEvent, effect_for_modifiers,
162};
163pub use sequoia_layout::{
164 Align, Axis, ContainerStyle, Dock, DockStyle, FlexItem, GridFlow, GridPlacement, GridStyle,
165 Indents, Inset, Justify, LayoutCtx, LayoutStyle, MasonryStyle, Overflow, Track,
166};
167pub use sequoia_style::{
168 Backdrop, BorderSide, BoxStyle, Effect, Filter, Mask, ShadowSpec, TextStyle, VisualState,
169};
170pub use sequoia_text::{
171 ElideMode, FontStyle, FontWeight, LetterSpacing, LineHeight, RichAlign, RichCaret, RichHit,
172 RichLine, RichParagraph, RichRect, TextSpan, TextVAlign, WrapMode,
173};
174
175pub mod prelude {
176 pub use crate::a11y::{Accessible, AccessibleNode, AccessibleRole};
177 pub use crate::animated::{Animated, Opacity, Pulse, Shake, Translate};
178 pub use crate::any::AnyView;
179 pub use crate::async_view::AsyncView;
180 pub use crate::backdrop::BackdropBlur;
181 pub use crate::cache::{LayerCache, LayerKey};
182 pub use crate::canvas::{Canvas, KeyBinding};
183 pub use crate::damage::{DamageTracker, FrameOutcome};
184 pub use crate::dev_overlay::DevOverlay;
185 pub use crate::dnd::{
186 DRAG_THRESHOLD, DragEnd, DragId, DragOptions, DragPayload, DragSession, DropPosition,
187 exceeded_threshold, grab_offset, insertion_index, move_item, preview_origin,
188 };
189 pub use crate::dock::DockArea;
190 pub use crate::dock_float::DockFloatLayer;
191 pub use crate::dock_view::{DockSlot, DockView};
192 pub use crate::dock_window::{DetachedWindow, DockWindowHost, DockWindowRoot};
193 pub use crate::dockable::{DockHeader, DockPanel, Dockable};
194 pub use crate::edge_dock::{
195 EDGE_GHOST_PX, EDGE_HINT_PX, EDGE_LINE_PX, EdgeGhost, EdgeSide, EdgeSlab,
196 clamp_card_top_left, edge_ghost_rect, edge_hint_at, exceeded_undock, main_first_index,
197 };
198 pub use crate::error_boundary::ErrorBoundary;
199 pub use crate::filter_view::{
200 BackdropFiltered, EffectNode, FilterExt, Filtered, draw_gradient_mask,
201 };
202 pub use crate::focus_ring::{FocusRing, RING_OFFSET, RING_WIDTH, ring_rect};
203 pub use crate::hit_shape::{HitCircle, HitRect};
204 pub use crate::icon::Icon;
205 pub use crate::image::Image;
206 pub use crate::layout_live::AnimatedSize;
207 pub use crate::leaf::Leaf;
208 pub use crate::list::List;
209 pub use crate::live::{AnimSpec, Live, MemoLiveExt, Prop, SignalLiveExt, SpringSpec};
210 pub use crate::live_view::{LiveBackground, LiveExt, LiveOffset, LiveOpacity};
211 pub use crate::modifiers::{
212 Clip, Enter, Motion, Rotated, Scaled, StatePatch, States, ViewModifiers, When, fade,
213 slide_y, when,
214 };
215 pub use crate::overlay::{
216 Anchor, Dismiss, InputMode, OverlayEntry, OverlayId, OverlayLayer, OverlayOverflow,
217 Placement, Position,
218 };
219 pub use crate::painter::Painter;
220 pub use crate::portal::{DismissableLayer, Popper, Portal};
221 pub use crate::presence::{
222 ENTER_SECS, EXIT_SECS, Presence, enter_progress, enter_sample, exit_done, exit_progress,
223 exit_sample,
224 };
225 pub use crate::responsive::{
226 Breakpoint, Breakpoints, Responsive, ScreenOrientation, WithSize, orientation_of,
227 screen_orientation_of,
228 };
229 pub use crate::rich_text::RichText;
230 pub use crate::runtime::{ElementId, InteractState, Runtime, RuntimeError, Stats, ViewState};
231 pub use crate::scroll_view::{ScrollAxis, ScrollView, ScrollbarVisibility};
232 pub use crate::scrub::Scrub;
233 pub use crate::split_panel::SplitPanel;
234 pub use crate::styleable::{Decoratable, Styleable};
235 pub use crate::surface::{SurfaceDraw, SurfaceInputBinding};
236 pub use crate::table::{SortDir, Table, TableColumn};
237 pub use crate::thumbnail::{ThumbnailCache, shared_cache};
238 pub use crate::track::{Orientation, Pad2D, Track1D};
239 pub use crate::transition::{Sequence, fade_in, pop_in, slide_in, stagger};
240 pub use crate::tree::{FlatRow, TreeNode, TreeView};
241 pub use crate::value::{Value, ValueExt, derived, spring_spec, value};
242 pub use crate::view::{CustomLayout, EventCtx, PaintCtx, TextMetrics, View};
243 pub use crate::views::{
244 AspectRatio, Cached, Column, FocusScope, Fragment, Grid, IntoChildren, Margined, Masonry,
245 Panel, Row, Spacer, Stack, StackPos, Text, Unit, Wrap,
246 };
247 pub use crate::virtual_list::VirtualList;
248 pub use sequoia_animation::Easing;
249
250 pub use sequoia_assets::{
251 AssetRegistry, MAX_PHOTO_DIM, PhotoError, Sprite, decode_pixels, decode_pixels_thumbnail,
252 load_pixels, load_pixels_thumbnail,
253 };
254 pub use sequoia_core::BrushStop;
255 pub use sequoia_core::{
256 BrushStroke, Fill, GradientKind, GradientStops, MAX_GRADIENT_STOPS, Pixels, WindowId,
257 };
258 pub use sequoia_draw::{
259 Dash, FillRule, Gradient, GradientStop, LineCap, LineJoin, MinMax, Path, Peaks, Radius,
260 RasterOptions, Shape, ShapeCache, StrokeStyle, Transform, WaveformCache, WaveformOpts,
261 bake_strip, layout_bars, waveform_line_points, white_noise,
262 };
263 pub use sequoia_input::{
264 CursorIcon, DropEffect, Event, EventPhase, Key, KeyEvent, Modifiers, PenTool,
265 PointerButton, PointerEvent, effect_for_modifiers,
266 };
267 pub use sequoia_layout::{
268 Align, Axis, ContainerStyle, Dock, DockStyle, FlexItem, GridFlow, GridPlacement, GridStyle,
269 Indents, Inset, Justify, LayoutCtx, LayoutStyle, MasonryStyle, Overflow, Track, WrapStyle,
270 };
271 pub use sequoia_style::{
272 Backdrop, BorderSide, BoxStyle, Effect, Filter, Mask, ShadowSpec, TextStyle,
273 };
274 pub use sequoia_text::{
275 ElideMode, FontStyle, FontWeight, LetterSpacing, LineHeight, RichAlign, RichCaret, RichHit,
276 RichLine, RichParagraph, RichRect, TextSpan, TextVAlign, WrapMode,
277 };
278}