rae 0.1.13

Renderer-neutral Rust design catalog for desktop widgets, layouts, sanitized output, and GLSL shader primitives.
Documentation
#![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,
};