gpui-rhai 0.1.8

A Rhai-authored declarative UI runtime for GPUI
Documentation
//! Runtime foundations for building GPUI applications from Rhai source.

pub mod column_resize;
pub mod component;
pub mod component_styles;
pub mod context;
pub mod date;
pub mod dependency;
pub mod devtools;
pub mod diagnostic;
pub mod document;
pub mod document_view;
pub mod drag_drop;
pub mod draggable;
pub mod effect;
pub mod element_ref;
pub mod engine;
mod environment_dependency;
pub mod event;
pub mod font;
pub mod geometry;
pub mod host_slot;
pub mod inline_svg;
mod interaction;
mod invocation;
pub mod lifecycle;
pub mod locale;
pub mod native_collection;
pub mod native_handler;
pub mod node;
pub mod overlay;
mod overlay_element;
pub mod pan_zoom;
pub mod primitive;
pub mod range_input;
pub mod range_slider;
mod read_dependency;
pub mod reload;
pub mod renderer;
pub mod resizable;
pub mod responsive;
pub mod retained;
pub mod rotatable;
pub mod schema;
mod script_lint;
pub mod script_source;
pub mod scrollbar;
pub mod selection_area;
pub mod signal;
mod slot_runtime;
pub mod sortable;
pub mod source;
pub mod split_resize;
pub mod state;
pub mod store;
pub mod style;
mod table_layout;
pub mod text_area;
mod text_edit;
pub mod text_input;
pub mod theme;
pub mod timer;
pub mod value;
pub mod virtual_list;
mod virtual_list_element;
pub mod window;

#[cfg(feature = "charts")]
pub mod chart;

pub mod accessibility;
pub mod action;
pub mod app;
pub mod asset;
pub mod async_runtime;
pub mod automation;
mod backend;
pub mod budget;
pub mod canvas;
pub mod capability;
pub mod clock;
mod collection_projection;
pub mod motion;

pub use gpui;
pub use gpui_platform;

pub use accessibility::{
    AccessibilityError, AccessibilityNode, AccessibilityTree, CommittedSemanticFrame,
};
pub use action::{
    ActionError, ActionId, ActionInvocation, ActionRegistry, DispatchScriptAction, KeyBindingSpec,
};
pub use app::{
    EmbeddedScriptView, FileScriptView, PreparedScriptView, ScriptApplication, ScriptViewConfig,
    ScriptViewError, ScriptViewExtension, ScriptViewHandle, ScriptViewHost,
    ScriptViewPerformanceSnapshot, ScriptViewState, ThemeHandle, install,
};
pub use asset::{
    AssetData, AssetError, AssetId, AssetProvider, AssetRegistry, DirectoryAssetProvider,
    ImageDecodeHandle, ImageHandle, InMemoryAssetProvider, SvgCacheStats,
};
pub use async_runtime::{
    AsyncDelivery, AsyncRuntimeError, AsyncScope, SubscriptionCloseReason,
    SubscriptionDeliveryPolicy, SubscriptionEmitter, SubscriptionHandle, SubscriptionOptions,
    SubscriptionRegistration, SubscriptionRegistry, TaskCancellation, TaskHandle, TaskRegistry,
};
pub use automation::{
    AutomationBounds, AutomationCommand, AutomationDispatchReport, AutomationError,
    AutomationFailure, AutomationLocator, AutomationNode, AutomationRequest, AutomationResponse,
    AutomationResult, AutomationSnapshot, handle_automation_json_line, run_automation_json_lines,
};
pub use budget::{RuntimeBudgetError, RuntimeBudgets};
pub use canvas::{
    CanvasClipRect, CanvasCommand, CanvasError, CanvasFill, CanvasPathSample, CanvasPathSegment,
    CanvasScene, CanvasTransform,
};
pub use capability::{
    AppManifest, AsyncCapabilityHandler, CapabilityDescriptor, CapabilityError, CapabilityHandler,
    CapabilityId, CapabilityMethod, CapabilityRegistry, SubscriptionCapabilityHandler,
    SubscriptionWork, TaskWork,
};
#[cfg(feature = "charts")]
pub use chart::*;
pub use clock::{ManualRuntimeClock, RuntimeClock, RuntimeClockSource};
pub use column_resize::{ColumnResizePrimitiveHandler, column_resize_primitive_descriptor};
pub use component::{
    ComponentDefinition, ComponentError, ComponentExportCollector, ComponentExportError,
    ComponentHeaderError, ComponentInvocation, ComponentMetadata, ComponentPropConversionError,
    ComponentPropValue, ComponentProps, ComponentRegistry, ComponentRegistryError, ComponentSchema,
    EventSchema, RuntimeApiRange, SlotSchema, parse_component_header,
};
pub use component_styles::{ComponentStyleError, ComponentStyleSheet, load_component_styles};
pub use context::{
    ComponentIncarnation, ExecutionPhase, PendingEvent, UiContext, UiContextError, UiMutationBatch,
    UiRuntimeState, UiStateSnapshot, UiTransactionError,
};
pub use date::{CalendarClock, CalendarClockSource, DateError, GregorianDate, Weekday};
pub use dependency::{
    DependencyError, ModuleCompileCache, ModuleDependencyGraph, ModuleRefreshReport,
    extract_imports,
};
#[cfg(feature = "dev-reload")]
pub use dependency::{FileChangeBatch, FileWatcher, WatcherError};
pub use devtools::{
    InspectorComponent, InspectorEffect, InspectorElementRef, InspectorMotion, InspectorNode,
    InspectorSignal, InspectorSnapshot, InspectorTimeline, InspectorTimer, RuntimeTrace,
    RuntimeTraceKind, TraceBuffer,
};
pub use diagnostic::{
    Diagnostic, DiagnosticCode, DiagnosticContext, DiagnosticContextError, DiagnosticErrorKind,
    DiagnosticExecutionTiming, DiagnosticFrame, DiagnosticOperationBudget, DiagnosticSeverity,
    DiagnosticStateSnapshot,
};
pub use document::{
    DiffAlignedRow, DiffDisplayRow, DiffRowKind, DiffViewMode, DiffWhitespace, DocumentDescriptor,
    DocumentError, DocumentLimits, DocumentLine, DocumentRuntimeConfig, DocumentSource,
    DocumentWrap, NativeTextDocument, NativeTextDocumentRegistry, PreparedDiff, PreparedDocument,
    SyntaxRegistry, SyntaxSpan, SyntaxTokenKind, prepare_diff, prepare_diff_with_limits,
    prepare_document, prepare_document_with_limits,
};
pub use document_view::{
    CodeViewerPrimitiveHandler, DiffSide, DiffViewerPrimitiveHandler, RevealDocumentLine,
    code_viewer_primitive_descriptor, diff_viewer_primitive_descriptor, init_document_view,
};
pub use drag_drop::{
    DragSourcePrimitiveHandler, DropZonePrimitiveHandler, drag_source_primitive_descriptor,
    drop_zone_primitive_descriptor,
};
pub use draggable::{DraggablePrimitiveHandler, draggable_primitive_descriptor};
pub use effect::{EffectDescriptor, EffectError, EffectId, EffectRegistry};
pub use element_ref::{ElementRef, ElementRefError, ElementRefId, ElementRefRegistry};
pub use engine::{
    CompiledUi, ComponentInvocationRecipe, DEFAULT_SCRIPT_OPERATION_LIMIT, ExecutionOperation,
    ExecutionTiming, OPERATION_SEMANTICS_VERSION, RuntimeEngine, RuntimeError, ScriptCallback,
    ScriptCallbackDefinitionError, ScriptGeneration,
};
pub use event::{
    EventDispatchReport, EventModifiers, EventPhase, EventPropagation, EventResponse, EventRouter,
    HostCallback, LogicalPoint, PointerCaptureDirective, PointerCaptureRegistry, PointerEventData,
    PropagationControl, UiEvent, UiEventBinding, UiEventHandler, WheelEventData,
};
pub use font::{FontError, FontSource, validate_font_sources};
pub use geometry::{
    Affine2D, ElementGeometry, GeometryBounds, GeometryError, GeometryRegistry, PresentedGeometry,
};
pub use host_slot::{HostSlotError, HostSlotRegistry};
pub use inline_svg::{InlineSvg, InlineSvgError};
pub use lifecycle::{LifecycleError, LifecycleState, ScriptLifecycle};
pub use locale::{
    CalendarMetadata, CalendarNames, DatePatterns, DateStyle, LocaleBundle, LocaleError,
    LocaleManager, NumberFormatOptions, NumberMetadata, TextDirection, format_date_with_metadata,
    format_integer_with_metadata, format_number_with_metadata, load_locale_source,
};
pub use motion::{
    MotionEasing, MotionError, MotionFrame, MotionHandle, MotionInertia, MotionIntent, MotionKey,
    MotionKeyframe, MotionKeyframes, MotionPlaybackState, MotionPreference, MotionProgressBinding,
    MotionProgressDriver, MotionProperty, MotionQuality, MotionResourceUsage, MotionRuntime,
    MotionSnapshot, MotionSource, MotionSpring, MotionTimeline, MotionTimelineEvent,
    MotionTimelineEventKind, MotionTimelineSnapshot, MotionTimelineStep, MotionTrack,
    MotionTransition,
};
pub use native_collection::{
    NativeCollection, NativeCollectionError, NativeCollectionRegistry, VirtualCollectionData,
};
pub use native_handler::{
    NativeEvent, NativeHandlerDescriptor, NativeHandlerError, NativeHandlerId, NativeHandlerRef,
    NativeHandlerRegistry,
};
pub use node::{
    ImageSourceSpec, LayerNodeSpec, LayerPlacement, NodeKey, OverlayDismissPolicy,
    OverlayInitialFocus, OverlayNodeSpec, OverlayWidthPolicy, SourceLocation, Span, TooltipDelays,
    UiNode, UiNodeKind, UiNodeKindTag,
};
pub use overlay::{
    DismissReport, FocusToken, OverlayBounds, OverlayError, OverlayId, OverlayKind, OverlayManager,
    OverlayPlacement, OverlaySpec, PlacementResult, TooltipScheduler, TooltipTransition,
};
pub use pan_zoom::{PanZoomPrimitiveHandler, pan_zoom_primitive_descriptor};
pub use primitive::{
    EffectPrimitiveDescriptor, PrimitiveAccessibilityProjection, PrimitiveContext,
    PrimitiveDescriptor, PrimitiveError, PrimitiveHandler, PrimitiveId, PrimitiveInstance,
    PrimitiveInstanceId, PrimitiveNode, PrimitivePlatform, PrimitiveProps, PrimitiveRegistry,
    PrimitiveResourceError, PrimitiveResourceHandle, PrimitiveResourceScope,
    PrimitiveSemanticProposal, PrimitiveTheme, PrimitiveValue,
};
pub use range_input::{RangeInputPrimitiveHandler, range_input_primitive_descriptor};
pub use range_slider::{RangeSliderPrimitiveHandler, range_slider_primitive_descriptor};
pub use reload::{LiveScript, ReloadOutcome};
pub use renderer::{
    ColorResolver, GpuiNodeRenderer, LiteralColorResolver, NodeEventDispatcher, StaticUiView,
    StaticUiViewError,
};
pub use resizable::{ResizablePrimitiveHandler, resizable_primitive_descriptor};
pub use responsive::{ResponsiveError, ResponsiveRuntime, ViewportBreakpoints, ViewportClass};
pub use retained::{
    NodeId, ReconcileError, ReconcileMetrics, ReconcileReport, RetainedChildLink, RetainedNode,
    RetainedUiTree,
};
pub use rotatable::{RotatablePrimitiveHandler, rotatable_primitive_descriptor};
pub use schema::{
    ObjectField, SchemaDefinitionError, SchemaIssue, SchemaValidationError, ValueSchema,
};
pub use script_lint::{KnownCallDiagnostic, KnownCallLintError};
pub use script_source::{
    EmbeddedScriptSource, FileScriptSource, ScriptAsset, ScriptSource, ScriptSourceError,
};
pub use scrollbar::{ScrollbarSpec, ScrollbarVisibility};
pub use selection_area::{SelectionAreaPrimitiveHandler, selection_area_primitive_descriptor};
pub use signal::{
    NativeSignal, SignalError, SignalId, SignalKind, SignalProperty, SignalRegistry,
    SignalSnapshot, SignalValue, SignalWriter,
};
pub use sortable::{SortablePrimitiveHandler, sortable_primitive_descriptor};
pub use source::{ModuleId, ModuleIdError, RestrictedModuleResolver};
pub use split_resize::{SplitResizePrimitiveHandler, split_resize_primitive_descriptor};
pub use state::{
    ComponentInstancePath, ComponentStateSchema, RenderStateTransaction, StateError, StateField,
    StateInstanceSnapshot, StateReconcileReport, StateStore, StateValueSnapshot,
};
pub use store::{StoreError, StoreId, StoreReadSession, StoreRegistry, StoreScope, StoreSnapshot};
pub use style::{
    Align, AutoLength, BorderLineStyle, ColorParseError, ColorValue, CornerLengths, CursorKind,
    DisplayMode, EdgeLengths, FlexDirection, FlexWrapMode, FontSlant, HitTestBehavior,
    InteractionState, Justify, LayoutEdgeLengths, LayoutLength, Length, LengthError,
    LinearGradientSpec, OverflowMode, PositionMode, PseudoState, RadiusToken, Rgba8, ShadowSpec,
    SignedLength, SpacingToken, Style, StyleProperties, StyleValueError, TextAlignMode,
    WhiteSpaceMode,
};
pub use text_area::{TextAreaPrimitiveHandler, init_text_area, text_area_primitive_descriptor};
pub use text_input::{
    TextBuffer, TextInputPrimitiveHandler, init_text_input, text_input_primitive_descriptor,
};
pub use theme::{
    REQUIRED_TYPOGRAPHY, ResolvedTheme, ResolvedTypography, SystemAppearance, ThemeError,
    ThemeFamily, ThemeManager, ThemeMode, ThemeMotion, ThemeMotionOverrides, ThemeMotionSpring,
    ThemePreference, ThemeSelection, ThemeSnapshot, ThemeTokenOverrides, ThemeTokenValue,
    ThemeTokens, ThemeTypography, ThemeTypographyOverrides, ThemeVariant, ThemeVariantInfo,
    TypographyToken, load_theme_source,
};
pub use timer::{TimerDescriptor, TimerError, TimerId, TimerRegistry, TimerSnapshot};
pub use value::{
    OpaqueHandle, UiValue, UiValueError, UiValuePath, UiValuePathError, UiValuePathSegment,
};
pub use virtual_list::{
    VariableListSpec, VariableListState, VariableListWindow, VirtualCollectionId,
    VirtualCollectionMetrics, VirtualCollectionNodeSpec, VirtualListError, VirtualRequestRegistry,
};
pub use window::{
    QueuedWindowCommand, ScriptWindowSpec, WindowCommand, WindowCommandError, WindowCommandPolicy,
    WindowCommandRegistry,
};

/// The first runtime API generation understood by component source.
pub const RUNTIME_API_VERSION: u32 = 2;