Skip to main content

Crate cranpose

Crate cranpose 

Source
Expand description

High level utilities for running Cranpose applications with minimal boilerplate.

Modules§

desktop
Desktop runtime for Compose applications.
fling_animation
Re-export the UI crate so applications can depend on a single crate. Fling animation driver for scroll containers.
http
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
layout
Re-export the UI crate so applications can depend on a single crate.
prelude
Convenience imports for Cranpose applications.
recorder
Input event recorder for generating robot tests from manual interactions.
scroll
Re-export the UI crate so applications can depend on a single crate. Scroll state and node implementation for cranpose.
text
Re-export the UI crate so applications can depend on a single crate.
text_field_focus
Re-export the UI crate so applications can depend on a single crate. Global focus manager for text fields.
text_layout_result
Re-export the UI crate so applications can depend on a single crate. Text layout result with cached glyph positions.
uri_handler
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
widgets
Re-export the UI crate so applications can depend on a single crate. UI Widget components

Macros§

rememberScrollState
Re-export the UI crate so applications can depend on a single crate. Creates a remembered ScrollState.

Structs§

Alignment
Re-export the UI crate so applications can depend on a single crate. Alignment across both axes used for positioning content within a box.
AlphaElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates alpha nodes.
AlphaNode
Re-export the UI crate so applications can depend on a single crate. Node that applies alpha transparency to its content.
AppLauncher
Platform-agnostic application launcher.
AppSettings
Configuration for application settings.
BackgroundElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates background nodes.
BackgroundNode
Re-export the UI crate so applications can depend on a single crate. Node that draws a background behind its content.
BasicTextFieldOptions
Re-export the UI crate so applications can depend on a single crate. Options for customizing BasicTextField appearance and behavior.
BlurredEdgeTreatment
Re-export the UI crate so applications can depend on a single crate. Controls blur behavior outside source bounds.
BoxSpec
Re-export the UI crate so applications can depend on a single crate. Specification for Box layout behavior.
BoxWithConstraintsScopeImpl
Re-export the UI crate so applications can depend on a single crate. Concrete implementation of BoxWithConstraintsScope.
ClickableElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates clickable nodes.
ClickableNode
Re-export the UI crate so applications can depend on a single crate.
Color
Re-export the UI crate so applications can depend on a single crate.
ColumnSpec
Re-export the UI crate so applications can depend on a single crate. Specification for Column layout behavior.
Composition
Re-export the UI crate so applications can depend on a single crate.
Constraints
Re-export the UI crate so applications can depend on a single crate. Constraints used during layout measurement.
CornerRadii
Re-export the UI crate so applications can depend on a single crate.
CornerShapeElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates corner shape nodes.
CornerShapeNode
Re-export the UI crate so applications can depend on a single crate. Node that tracks the latest rounded corner shape.
DevOptions
FPS monitoring API - use these to track frame rate for performance optimization.
Dp
Re-export the UI crate so applications can depend on a single crate. Density-independent pixels
DpOffset
Re-export the UI crate so applications can depend on a single crate. Density-independent offset for shadows.
DrawCacheBuilder
Re-export the UI crate so applications can depend on a single crate.
EdgeInsets
Re-export the UI crate so applications can depend on a single crate. Padding values for each edge of a rectangle.
FillElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates fill nodes.
FillNode
Re-export the UI crate so applications can depend on a single crate. Node that fills the maximum available space in one or both dimensions.
FocusManager
Re-export the UI crate so applications can depend on a single crate. Focus manager that tracks and manages focus state across the composition.
FpsStats
FPS monitoring API - use these to track frame rate for performance optimization.
GraphicsLayer
Re-export the UI crate so applications can depend on a single crate.
HeadlessRenderer
Re-export the UI crate so applications can depend on a single crate. A lightweight renderer that walks the layout tree and materialises paint commands.
ImageBitmap
Re-export the UI crate so applications can depend on a single crate. Immutable RGBA image data used by UI primitives and render backends.
KeyEvent
Re-export the UI crate so applications can depend on a single crate. A keyboard input event.
LayoutBox
Re-export the UI crate so applications can depend on a single crate. Layout information for a single node.
LayoutMeasurements
Re-export the UI crate so applications can depend on a single crate. Result of running the measure pass for a Compose layout tree.
LayoutNode
Re-export the UI crate so applications can depend on a single crate.
LayoutNodeData
Re-export the UI crate so applications can depend on a single crate. Snapshot of the data required to render a layout node.
LayoutTree
Re-export the UI crate so applications can depend on a single crate. Result of running layout for a Compose tree.
LazyColumnSpec
Re-export the UI crate so applications can depend on a single crate. Specification for LazyColumn layout behavior.
LazyListItemInfo
Re-export the UI crate so applications can depend on a single crate. Information about a single visible item in a lazy list.
LazyListLayoutInfo
Re-export the UI crate so applications can depend on a single crate. Information about the currently visible items in a lazy list.
LazyListState
Re-export the UI crate so applications can depend on a single crate. State object for lazy list scroll position tracking.
LazyRowSpec
Re-export the UI crate so applications can depend on a single crate. Specification for LazyRow layout behavior.
MeasureResult
Re-export the UI crate so applications can depend on a single crate. Result of a measurement operation.
Modifier
Re-export the UI crate so applications can depend on a single crate. A modifier chain that can be applied to composable elements.
ModifierChainTraceGuard
Re-export the UI crate so applications can depend on a single crate. RAII guard returned when installing a modifier chain trace subscriber.
ModifierNodeSlices
Re-export the UI crate so applications can depend on a single crate. Snapshot of modifier node slices that impact draw and pointer subsystems.
Modifiers
Re-export the UI crate so applications can depend on a single crate. Modifier keys state.
OffsetElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates offset nodes.
OffsetNode
Re-export the UI crate so applications can depend on a single crate. Node that offsets its content by a fixed (x, y) amount.
PaddingElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates padding nodes.
PaddingNode
Re-export the UI crate so applications can depend on a single crate. Node that adds padding around its content.
Painter
Re-export the UI crate so applications can depend on a single crate.
ParagraphStyle
Re-export the UI crate so applications can depend on a single crate.
Placement
Re-export the UI crate so applications can depend on a single crate. Placement information for a measured child.
PlatformParagraphStyle
Re-export the UI crate so applications can depend on a single crate.
PlatformSpanStyle
Re-export the UI crate so applications can depend on a single crate.
PlatformTextStyle
Re-export the UI crate so applications can depend on a single crate.
Point
Re-export the UI crate so applications can depend on a single crate.
PointerEvent
Re-export the UI crate so applications can depend on a single crate. Pointer event with consumption tracking for gesture disambiguation.
PointerInputScope
Re-export the UI crate so applications can depend on a single crate.
PreparedTextLayout
Re-export the UI crate so applications can depend on a single crate.
RecordedRenderScene
Re-export the UI crate so applications can depend on a single crate. A collection of render operations for a composed scene.
Rect
Re-export the UI crate so applications can depend on a single crate.
ResolvedBackground
Re-export the UI crate so applications can depend on a single crate.
ResolvedModifiers
Re-export the UI crate so applications can depend on a single crate.
RoundedCornerShape
Re-export the UI crate so applications can depend on a single crate.
RowSpec
Re-export the UI crate so applications can depend on a single crate. Specification for Row layout behavior.
RuntimeShader
Re-export the UI crate so applications can depend on a single crate. A custom WGSL shader effect, analogous to Android’s RuntimeShader.
ScrollElement
Re-export the UI crate so applications can depend on a single crate. Element for creating a ScrollNode.
ScrollNode
Re-export the UI crate so applications can depend on a single crate. ScrollNode layout modifier that physically moves content based on scroll position. This is the component that actually reads ScrollState and applies the visual offset.
ScrollState
Re-export the UI crate so applications can depend on a single crate. State object for scroll position tracking.
SemanticsCallback
Re-export the UI crate so applications can depend on a single crate. Discrete event callback reference produced during semantics extraction.
SemanticsNode
Re-export the UI crate so applications can depend on a single crate. A single node within the semantics tree.
SemanticsTree
Re-export the UI crate so applications can depend on a single crate. Rooted semantics tree extracted after layout.
Shadow
Re-export the UI crate so applications can depend on a single crate. Static shadow configuration.
ShadowScope
Re-export the UI crate so applications can depend on a single crate. Pixel-space shadow scope used by block-based APIs.
Size
Re-export the UI crate so applications can depend on a single crate.
SizeElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates size nodes.
SizeNode
Re-export the UI crate so applications can depend on a single crate. Node that enforces size constraints on its content.
SnapshotState
Re-export the UI crate so applications can depend on a single crate.
SpanStyle
Re-export the UI crate so applications can depend on a single crate.
StringAnnotation
Re-export the UI crate so applications can depend on a single crate. Mirrors Jetpack Compose’s AnnotatedString.Range<String> — a tag+value annotation covering a byte range.
SubcomposeLayoutNode
Re-export the UI crate so applications can depend on a single crate. Node responsible for orchestrating measure-time subcomposition.
SubcomposeMeasureScopeImpl
Re-export the UI crate so applications can depend on a single crate. Concrete implementation of SubcomposeMeasureScope.
TextFieldElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates TextFieldModifierNode instances.
TextFieldModifierNode
Re-export the UI crate so applications can depend on a single crate.
TextLayoutOptions
Re-export the UI crate so applications can depend on a single crate. Text layout behavior options matching Compose BasicText controls.
TextMetrics
Re-export the UI crate so applications can depend on a single crate.
TextModifierElement
Re-export the UI crate so applications can depend on a single crate. Element that creates and updates TextModifierNode instances.
TextModifierNode
Re-export the UI crate so applications can depend on a single crate. Node that stores text content and handles measurement, drawing, and semantics.
TextStyle
Re-export the UI crate so applications can depend on a single crate.
TransformOrigin
Re-export the UI crate so applications can depend on a single crate.

Enums§

BlendMode
Re-export the UI crate so applications can depend on a single crate. Blend mode used for draw primitives.
Brush
Re-export the UI crate so applications can depend on a single crate.
ColorFilter
Re-export the UI crate so applications can depend on a single crate. Simple image color filter model.
CompositingStrategy
Re-export the UI crate so applications can depend on a single crate. Controls how a graphics layer is composited into its parent target.
ContentScale
Re-export the UI crate so applications can depend on a single crate.
DrawCommand
Re-export the UI crate so applications can depend on a single crate.
FillDirection
Re-export the UI crate so applications can depend on a single crate. Direction for fill modifiers (horizontal, vertical, or both).
HorizontalAlignment
Re-export the UI crate so applications can depend on a single crate. Alignment along the horizontal axis.
HttpError
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
IntrinsicSize
Re-export the UI crate so applications can depend on a single crate. Specifies how to size a component based on its intrinsic measurements.
KeyCode
Re-export the UI crate so applications can depend on a single crate. Physical key codes for keyboard input.
KeyEventType
Re-export the UI crate so applications can depend on a single crate. Type of keyboard event.
LayerShape
Re-export the UI crate so applications can depend on a single crate.
LayoutNodeKind
Re-export the UI crate so applications can depend on a single crate. Classification of the node captured inside a LayoutBox.
LinearArrangement
Re-export the UI crate so applications can depend on a single crate. Arrangement strategy matching Jetpack Compose’s linear arrangements.
LinkAnnotation
Re-export the UI crate so applications can depend on a single crate. Mirrors Jetpack Compose’s LinkAnnotation sealed class.
PaintLayer
Re-export the UI crate so applications can depend on a single crate. Layer that a paint operation targets within the rendering pipeline.
PointerEventKind
Re-export the UI crate so applications can depend on a single crate.
RenderEffect
Re-export the UI crate so applications can depend on a single crate. A render effect applied to a graphics layer’s rendered content.
RenderOp
Re-export the UI crate so applications can depend on a single crate. A rendered operation emitted by the headless renderer stub.
SemanticsAction
Re-export the UI crate so applications can depend on a single crate. Semantics action exposed to the input system.
SemanticsRole
Re-export the UI crate so applications can depend on a single crate. Semantic role describing how a node should participate in accessibility and hit testing. Roles are now derived from SemanticsConfiguration rather than widget types.
TextDrawStyle
Re-export the UI crate so applications can depend on a single crate.
TextOverflow
Re-export the UI crate so applications can depend on a single crate. How overflowing text should be handled.
UriHandlerError
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
VerticalAlignment
Re-export the UI crate so applications can depend on a single crate. Alignment along the vertical axis.

Constants§

DEFAULT_ALPHA
Re-export the UI crate so applications can depend on a single crate.

Traits§

Arrangement
Re-export the UI crate so applications can depend on a single crate. Trait implemented by arrangement strategies that distribute children on an axis.
BoxScope
Re-export the UI crate so applications can depend on a single crate. Marker trait matching Jetpack Compose’s BoxScope API.
BoxWithConstraintsScope
Re-export the UI crate so applications can depend on a single crate. Scope exposed to [BoxWithConstraints] content.
HttpClient
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
LayoutEngine
Re-export the UI crate so applications can depend on a single crate. Extension trait that equips MemoryApplier with layout computation.
Measurable
Re-export the UI crate so applications can depend on a single crate. Object capable of measuring a layout child and exposing intrinsic sizes.
Placeable
Re-export the UI crate so applications can depend on a single crate. Result of running a measurement pass for a single child.
SubcomposeLayoutScope
Re-export the UI crate so applications can depend on a single crate. Base trait for measurement scopes.
SubcomposeMeasureScope
Re-export the UI crate so applications can depend on a single crate. Public trait exposed to measure policies for subcomposition.
TextMeasurer
Re-export the UI crate so applications can depend on a single crate.
UriHandler
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.

Functions§

BasicText
Re-export the UI crate so applications can depend on a single crate. High-level element that displays text.
BasicTextField
Re-export the UI crate so applications can depend on a single crate.
BitmapPainter
Re-export the UI crate so applications can depend on a single crate.
Box
Re-export the UI crate so applications can depend on a single crate. A layout composable that stacks its children on top of each other.
BoxWithConstraints
Re-export the UI crate so applications can depend on a single crate.
Button
Re-export the UI crate so applications can depend on a single crate. A clickable button with a background and content.
Canvas
Re-export the UI crate so applications can depend on a single crate. A composable that draws custom content using a DrawScope.
ClickableText
Re-export the UI crate so applications can depend on a single crate. Displays an AnnotatedString and calls on_click with the byte offset of the character under the pointer at the time of the click.
Column
Re-export the UI crate so applications can depend on a single crate. A layout composable that places its children in a vertical sequence.
ForEach
Re-export the UI crate so applications can depend on a single crate.
Image
Re-export the UI crate so applications can depend on a single crate.
Layout
Re-export the UI crate so applications can depend on a single crate.
LazyColumn
Re-export the UI crate so applications can depend on a single crate. A vertically scrolling list that only composes visible items.
LazyRow
Re-export the UI crate so applications can depend on a single crate. A horizontally scrolling list that only composes visible items.
LinkedText
Re-export the UI crate so applications can depend on a single crate. Renders an AnnotatedString and automatically dispatches link clicks:
ProvideUriHandler
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
Row
Re-export the UI crate so applications can depend on a single crate. A layout composable that places its children in a horizontal sequence.
Spacer
Re-export the UI crate so applications can depend on a single crate. A component that represents an empty space.
SubcomposeLayout
Re-export the UI crate so applications can depend on a single crate.
Text
Re-export the UI crate so applications can depend on a single crate.
active_focus_target
Re-export the UI crate so applications can depend on a single crate. Returns the currently active focus target, if any.
clear_focus_invalidations
Re-export the UI crate so applications can depend on a single crate. Clears all pending focus invalidations without processing them.
clear_pointer_repasses
Re-export the UI crate so applications can depend on a single crate. Clears all pending pointer repasses without processing them.
collect_modifier_slices
Re-export the UI crate so applications can depend on a single crate. Collects modifier node slices directly from a reconciled ModifierNodeChain.
collect_slices_from_modifier
Re-export the UI crate so applications can depend on a single crate. Collects modifier node slices by instantiating a temporary node chain from a Modifier.
current_density
Re-export the UI crate so applications can depend on a single crate. Returns the current density scale factor (logical px per dp).
current_fps
FPS monitoring API - use these to track frame rate for performance optimization.
default_http_client
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
default_uri_handler
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
execute_draw_commands
Re-export the UI crate so applications can depend on a single crate.
format_layout_tree
Re-export the UI crate so applications can depend on a single crate. Returns a formatted string representation of the layout tree
format_modifier_chain
Re-export the UI crate so applications can depend on a single crate. Formats the modifier chain using inspector data.
format_render_scene
Re-export the UI crate so applications can depend on a single crate. Returns a formatted string representation of the render scene
fps_display
FPS monitoring API - use these to track frame rate for performance optimization.
fps_display_detailed
FPS monitoring API - use these to track frame rate for performance optimization.
fps_stats
FPS monitoring API - use these to track frame rate for performance optimization.
get_cursor_x_for_offset
Re-export the UI crate so applications can depend on a single crate.
get_offset_for_position
Re-export the UI crate so applications can depend on a single crate.
has_focused_field
Re-export the UI crate so applications can depend on a single crate. Returns true if any text field currently has focus. Checks weak ref liveness and clears stale focus state.
has_pending_draw_repasses
Re-export the UI crate so applications can depend on a single crate. Returns true if any draw repasses are pending.
has_pending_focus_invalidations
Re-export the UI crate so applications can depend on a single crate. Returns true if any focus invalidations are pending.
has_pending_layout_repasses
Re-export the UI crate so applications can depend on a single crate. Returns true if any layout repasses are pending.
has_pending_pointer_repasses
Re-export the UI crate so applications can depend on a single crate. Returns true if any pointer repasses are pending.
install_modifier_chain_trace
Re-export the UI crate so applications can depend on a single crate. Installs a callback that receives modifier chain snapshots when debugging is enabled.
is_cursor_visible
Re-export the UI crate so applications can depend on a single crate. Returns whether the cursor should be visible right now.
layout_text
Re-export the UI crate so applications can depend on a single crate.
local_http_client
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
local_uri_handler
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
log_layout_tree
Re-export the UI crate so applications can depend on a single crate. Logs the current layout tree to stdout with indentation showing hierarchy
log_modifier_chain
Re-export the UI crate so applications can depend on a single crate. Logs the contents of a modifier node chain including capabilities.
log_render_scene
Re-export the UI crate so applications can depend on a single crate. Logs the current render scene to stdout showing all draw operations
log_screen_summary
Re-export the UI crate so applications can depend on a single crate. Logs a compact summary of what’s on screen (counts by type)
measure_layout
Re-export the UI crate so applications can depend on a single crate. Runs the measure phase for the subtree rooted at root.
measure_text
Re-export the UI crate so applications can depend on a single crate.
measure_text_with_options
Re-export the UI crate so applications can depend on a single crate.
mutableStateOf
Core runtime helpers commonly used by applications. Creates a new MutableState initialized with the given value.
next_cursor_blink_time
Re-export the UI crate so applications can depend on a single crate. Returns the next cursor blink transition time, if any. Use this for WaitUntil scheduling in the event loop.
peek_focus_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a focus invalidation is pending without clearing it.
peek_layout_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a layout invalidation is pending without clearing it.
peek_pointer_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a pointer invalidation is pending without clearing it.
peek_render_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a render invalidation is pending without clearing it.
prepare_text_layout
Re-export the UI crate so applications can depend on a single crate.
process_focus_invalidations
Re-export the UI crate so applications can depend on a single crate. Processes all pending focus invalidations.
process_pointer_repasses
Re-export the UI crate so applications can depend on a single crate. Processes all pending pointer repasses.
remember
Core runtime helpers commonly used by applications.
rememberUpdatedState
Core runtime helpers commonly used by applications. Returns a MutableState that always holds the latest value.
request_focus_invalidation
Re-export the UI crate so applications can depend on a single crate. Requests a focus recomposition without affecting layout/draw dirties.
request_layout_invalidation
Re-export the UI crate so applications can depend on a single crate. Requests a global layout re-run.
request_pointer_invalidation
Re-export the UI crate so applications can depend on a single crate. Requests a new pointer-input pass without touching layout or draw dirties.
request_render_invalidation
Re-export the UI crate so applications can depend on a single crate. Requests that the renderer rebuild the current scene.
reset_cursor_blink
Re-export the UI crate so applications can depend on a single crate. Resets cursor to visible and restarts the blink timer. Call this on any input (key press, paste) so cursor stays visible while typing.
run_test_composition
Re-export the UI crate so applications can depend on a single crate. Build a composition with a simple in-memory applier and run the provided closure once.
schedule_draw_repass
Re-export the UI crate so applications can depend on a single crate. Schedules a draw-only repass for a specific node.
schedule_focus_invalidation
Re-export the UI crate so applications can depend on a single crate. Schedules a focus invalidation for the specified node.
schedule_layout_repass
Re-export the UI crate so applications can depend on a single crate. Schedules a layout repass for a specific node.
schedule_pointer_repass
Re-export the UI crate so applications can depend on a single crate. Schedules a pointer repass for the specified node.
set_active_focus_target
Re-export the UI crate so applications can depend on a single crate. Sets the currently active focus target.
set_density
Re-export the UI crate so applications can depend on a single crate. Updates the current density scale factor.
set_text_measurer
Re-export the UI crate so applications can depend on a single crate.
start_cursor_blink
Re-export the UI crate so applications can depend on a single crate. Starts the global cursor blink animation. Called when a text field gains focus.
stop_cursor_blink
Re-export the UI crate so applications can depend on a single crate. Stops the global cursor blink animation. Called when no text field is focused.
take_draw_repass_nodes
Re-export the UI crate so applications can depend on a single crate. Takes all pending draw repass node IDs.
take_focus_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a focus invalidation was pending and clears the flag.
take_layout_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a layout invalidation was pending and clears the flag.
take_layout_repass_nodes
Re-export the UI crate so applications can depend on a single crate. Takes all pending layout repass node IDs.
take_pointer_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a pointer invalidation was pending and clears the flag.
take_render_invalidation
Re-export the UI crate so applications can depend on a single crate. Returns true if a render invalidation was pending and clears the flag.
tick_cursor_blink
Re-export the UI crate so applications can depend on a single crate. Advances the cursor blink state if needed. Returns true if a redraw is needed.
tree_needs_layout
Re-export the UI crate so applications can depend on a single crate. Check if a node or any of its descendants needs measure (selective measure optimization). This can be used by the app shell to skip layout when the tree is clean.
useState
Core runtime helpers commonly used by applications. A composable hook that creates and remembers a MutableState.

Type Aliases§

HttpClientRef
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
HttpFuture
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.
Key
Re-export the UI crate so applications can depend on a single crate.
TestComposition
Re-export the UI crate so applications can depend on a single crate. Convenience alias used in examples and tests.
UriHandlerRef
Re-export framework services (HTTP, URI, etc.) from the dedicated services crate.

Attribute Macros§

composable
Re-export the UI crate so applications can depend on a single crate.