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 live_image;
23pub mod masonry;
24pub mod max_size;
25pub mod min_size;
26pub mod padding;
27pub mod rect_widget;
28pub mod shrinkable;
29pub mod spacer;
30pub mod switcher;
31/// `TextInputField` — raw editable text surface primitive built on the
32/// `text-typeset` / `text-document` stack. Consumed by `TextInput` (the
33/// styled composite) and `SpinBox` (numeric input) and available to
34/// third-party composites that need inline editable text.
35pub mod text_input_field;
36pub mod text_widget;
37pub mod touch_target;
38pub mod twist_arrow;
39pub mod validation_strip;
40pub mod vstack;
41pub mod wrap;
42pub mod zstack;
43
44pub use aspect_ratio::AspectRatio;
45pub use center::Center;
46pub use column_flow::ColumnFlow;
47pub use dead_zone::DeadZone;
48pub use divider::Divider;
49pub use expand::Expand;
50pub use fixed_size::FixedSize;
51pub use form_layout::FormLayout;
52pub use grid::{Grid, TrackSize};
53pub use hstack::HStack;
54pub use icon_widget::IconWidget;
55pub use image_mask::ImageMaskShape;
56pub use image_widget::{ImageFit, ImageWidget};
57pub use live_image::{LiveImage, LiveImageHandle, LiveImageSizing};
58pub use masonry::MasonryLayout;
59pub use max_size::MaxSize;
60pub use min_size::MinSize;
61pub use padding::Padding;
62pub use rect_widget::RectWidget;
63pub use shrinkable::Shrinkable;
64pub use spacer::Spacer;
65pub use switcher::Switcher;
66pub use text_input_field::{
67    AtRevealPolicy, EchoMode, InputPurpose, TextFieldHandle, TextInputField,
68};
69pub use text_widget::TextWidget;
70pub use touch_target::TouchTarget;
71pub use twist_arrow::TwistArrow;
72pub use validation_strip::ValidationStrip;
73pub use vstack::VStack;
74pub use wrap::Wrap;
75pub use zstack::ZStack;