Skip to main content

teksilo_widgets/
primitives.rs

1// SPDX-License-Identifier: MPL-2.0
2// SPDX-FileCopyrightText: 2026 FernTech
3
4pub mod aspect_ratio;
5pub mod center;
6pub mod column_flow;
7pub mod dead_zone;
8pub mod divider;
9pub mod expand;
10pub mod fixed_size;
11pub mod form_layout;
12pub mod grid;
13pub mod hstack;
14pub mod icon_widget;
15pub mod image_mask;
16pub mod image_widget;
17/// Shared main-then-cross negotiation for linear containers (`HStack`,
18/// `VStack`). Distributes the main axis (grow via `flex`, shrink via
19/// `shrink`/`min`) and measures each child's cross axis at its *final* main
20/// size — the height-for-width pass. Internal helper, not a widget.
21pub(crate) mod linear_layout;
22pub mod masonry;
23pub mod max_size;
24pub mod min_size;
25pub mod padding;
26pub mod rect_widget;
27pub mod shrinkable;
28pub mod spacer;
29pub mod switcher;
30/// `TextInputField` — raw editable text surface primitive built on the
31/// `text-typeset` / `text-document` stack. Consumed by `TextInput` (the
32/// styled composite) and `SpinBox` (numeric input) and available to
33/// third-party composites that need inline editable text.
34pub mod text_input_field;
35pub mod text_widget;
36pub mod twist_arrow;
37pub mod validation_strip;
38pub mod vstack;
39pub mod wrap;
40pub mod zstack;
41
42pub use aspect_ratio::AspectRatio;
43pub use center::Center;
44pub use column_flow::ColumnFlow;
45pub use dead_zone::DeadZone;
46pub use divider::Divider;
47pub use expand::Expand;
48pub use fixed_size::FixedSize;
49pub use form_layout::FormLayout;
50pub use grid::{Grid, TrackSize};
51pub use hstack::HStack;
52pub use icon_widget::IconWidget;
53pub use image_mask::ImageMaskShape;
54pub use image_widget::{ImageFit, ImageWidget};
55pub use masonry::MasonryLayout;
56pub use max_size::MaxSize;
57pub use min_size::MinSize;
58pub use padding::Padding;
59pub use rect_widget::RectWidget;
60pub use shrinkable::Shrinkable;
61pub use spacer::Spacer;
62pub use switcher::Switcher;
63pub use text_input_field::{
64    AtRevealPolicy, EchoMode, InputPurpose, TextFieldHandle, TextInputField,
65};
66pub use text_widget::TextWidget;
67pub use twist_arrow::TwistArrow;
68pub use validation_strip::ValidationStrip;
69pub use vstack::VStack;
70pub use wrap::Wrap;
71pub use zstack::ZStack;