#![forbid(unsafe_code)]
#![doc = include_str!("../README.md")]
pub mod audio;
pub mod catalog;
pub mod color;
pub mod edit;
pub mod effect;
pub mod event;
pub mod hit;
pub mod input;
pub mod layout;
pub mod math;
pub mod morph;
pub mod output;
pub mod pane;
pub mod recipes;
pub mod sanitize;
pub mod scroll;
pub mod shader;
pub mod state;
pub mod theme;
pub mod tokens;
pub mod transcript;
pub mod widget;
pub use audio::{
demo_mixer_strips, standard_meter_segments, AudioChannelRole, AudioControlKind,
AudioFaderModel, AudioKnobModel, AudioMeterModel, AudioMixerStrip, AudioPluginControl,
AudioPluginPanel, AudioSpectrumModel, AudioTransportModel, AudioTransportState,
AudioWaveformModel, MeterScale, MeterSegment, AUDIO_MIXER_STRIP_MAX_PLUGINS,
AUDIO_PLUGIN_CONTROL_MAX_ITEMS, AUDIO_SPECTRUM_MAX_BANDS, AUDIO_WAVEFORM_MAX_SAMPLES,
};
pub use catalog::{
built_in_widget_catalog, CatalogValidationError, WidgetCatalog, WidgetCatalogQuery,
WidgetCategory, WidgetComplexity, WidgetDescriptor, WidgetExample, WidgetStateSet,
WidgetUseCase, WIDGET_CATALOG_MAX_WIDGETS, WIDGET_CATALOG_QUERY_MAX_RESULTS,
WIDGET_DESCRIPTOR_MAX_EXAMPLES,
};
pub use color::{Palette, Rgba};
pub use edit::{TextEditModel, TextEditSelection, TextEditValue, TextPreedit, TEXT_EDIT_MAX_WIDTH};
pub use effect::{
AnimationCurve, Elevation, Glow, InteractionState, MotionSpec, Ripple, RipplePool,
SurfaceEffectCacheKey, SurfaceEffects,
};
pub use event::{
CursorInteraction, EventResponse, EventStatus, InputMethodEvent, KeyModifiers, KeyboardEvent,
KeyboardKey, MouseButton, MouseEvent, MouseScrollDelta, NamedKey, TouchEvent, TouchPhase,
UiEvent, WindowEvent,
};
pub use hit::{hit_resize_handle, local_point, CursorKind, HitMap, HitRegion, ResizeHandle};
pub use input::{CommandItem, CommandPalette, KeyModifier, Shortcut, SnippetSet, TextSnippet};
pub use layout::{
compute_shell_layout, layout_column, layout_grid, layout_row, layout_space, layout_stack,
AppLayout, FlexLayout, FluidConstraint, Insets, LayoutAlign, LayoutAxis, LayoutItem,
LayoutLimits, LayoutNode, Length, LengthBounds, LengthSizing, Rect, Size,
};
pub use math::{
catmull_rom, clamp01, ease_in_out_cubic, fractal_brownian_motion, hash12, hsv_to_rgb, lerp,
pulse, remap, rotate, smoothstep, spring, Oscillator, Vec2, Vec3,
};
pub use morph::{
CardTopology, MaterialTokens, MorphCacheKey, MorphHitShape, MorphProfile, MorphShape,
MorphState, ShapeAnchor,
};
pub use output::{
analyze_code_line, materialize_output, tokenize_code_line, CodeBlockAnalysis, CodeBlockLines,
CodeBlockOutput, CodeBlockRef, CodeLineAnalysis, CodeToken, CodeTokenKind, OutputDocument,
OutputOptions, OutputRow,
};
pub use pane::{
PaneDirection, PaneDropRegion, PaneEdge, PaneGridModel, PaneLayoutSlot, PaneSplit,
PaneSplitAxis, PaneTreeNode,
};
pub use recipes::{
build_layout_recipe, built_in_layout_recipes, built_in_recipe_kinds, AppRecipeKind,
LayoutRecipe, LayoutRecipeSlot, LayoutRecipeSlotKind, LAYOUT_RECIPE_MAX_SLOTS,
};
pub use sanitize::{
char_display_width, copy_safe_text, sanitize_str, sanitize_title, sanitize_with_policy,
str_display_width, strip_ansi_escapes, truncate_str, AnsiStripResult, SanitizePolicy,
SanitizedText,
};
pub use scroll::{
platform_scroll_delta, AbsoluteOffset, RelativeOffset, ScrollAnchor, ScrollAxis,
ScrollDirection, ScrollState, ScrollViewport, ScrollbarAnchor, ScrollbarConfig,
ScrollbarGeometry, Scrollbars,
};
pub use shader::{
ShaderBlendMode, ShaderDescriptor, ShaderFamily, ShaderPassDescriptor, ShaderPassRole,
ShaderPassStack, ShaderSource, ShaderUniform, ShaderUniformKind, MAX_SHADER_PASS_STACK,
};
pub use state::{FocusChain, FocusDirection, FocusTarget, OverlayKind, PaneId};
pub use theme::{built_in_theme_presets, ThemeFamily, ThemePreset};
pub use tokens::{
built_in_token_presets, AudioDesignTokens, BlurTokens, BorderTokens, ColorTokens,
ComponentDefaults, ComponentRole, ComponentSize, Density, DesignTokenSet, IconTokens,
MaterialTokenSet, MotionTokens, PlatformStyle, RadiusTokens, ShadowTokens, SpacingTokens,
TypographyTokens, ZIndexTokens,
};
pub use transcript::{TranscriptRow, TranscriptView, TranscriptViewport};
pub use widget::{
DynamicPaneSet, OverlayLayer, OverlayStack, PaneChrome, PaneKind, PaneLayoutMode, PaneModel,
PromptModel, ScrollAreaModel, ScrollbarModel, StatusChip, TabBarModel, TabItem, TabPlacement,
TabSlot, TextSelection, TranscriptItem, WidgetChoiceItem, WidgetChoiceList, WidgetControl,
WidgetControlKind, WidgetFrame, WidgetInteractionStatus, WidgetMaterialDescriptor,
WidgetMaterialKind, WidgetMaterialQuality, WidgetMaterialShadow, WidgetMetrics,
WidgetResolvedMaterial, WidgetResolvedStyle, WidgetSection, WidgetShaderLayer,
WidgetShaderRole, WidgetShaderSkin, WidgetSize, WidgetState, WidgetStyleDescriptor,
WidgetStyleOverride, WidgetSurfaceKind, WidgetVariant, WidgetWorkbench, PROMPT_INPUT_MAX_WIDTH,
WIDGET_CHOICE_MAX_ITEMS, WIDGET_CONTROL_MAX_ITEMS, WIDGET_OVERLAY_MAX_ITEMS,
WIDGET_PANE_MAX_ITEMS, WIDGET_SCROLL_AREA_MAX_ITEMS, WIDGET_SHADER_SKIN_MAX_LAYERS,
WIDGET_TAB_MAX_ITEMS,
};