pub mod action;
pub mod assets;
pub mod catalog;
pub mod component;
pub mod config;
pub mod data;
pub mod design;
pub mod expression;
pub mod layout;
pub mod loader;
pub mod plugin;
pub mod plugins;
pub mod render;
pub mod resolve;
pub mod spec;
pub mod visibility;
pub mod runtime;
pub use action::{Action, ActionOutcome, ConfirmDialog, HttpMethod};
pub use assets::FERRO_BASE_CSS;
pub use component::{
ActionCardProps, ActionGroupProps, ActionItem, AlertProps, AvatarProps, BadgeProps,
BreadcrumbItem, BreadcrumbProps, ButtonGroupProps, ButtonProps, ButtonType, CardAppearance,
CardProps, CheckboxListProps, CheckboxProps, ChecklistItem, ChecklistProps, CollapsibleProps,
Column, ColumnFormat, DataTableProps, DescriptionItem, DescriptionListProps,
DropdownMenuAction, EmptyStateProps, FormMaxWidth, FormProps, FormSectionProps, GapSize,
GridProps, HeaderProps, IconPosition, ImageProps, InputProps, InputType, KanbanBoardProps,
KanbanColumnProps, ModalProps, NotificationDropdownProps, NotificationItem, Orientation,
PageHeaderProps, PaginationProps, ProductTileProps, ProgressProps, RawHtmlProps,
RichTextEditorProps, SegmentedControlProps, SegmentedItem, SelectOption, SelectProps,
SeparatorProps, SidebarGroup, SidebarLayoutItem, SidebarLayoutProps, SidebarNavItem,
SidebarProps, Size, SkeletonProps, SortDirection, StatCardProps, SwitchProps, Tab, TableProps,
TabsProps, TextElement, TextProps, ToastProps, Tone, Variant,
};
pub use config::JsonUiConfig;
pub use design::{lint, rules, DesignMeta, DesignRule, Finding, Severity, KNOWN_INTENTS};
pub use runtime::FERRO_RUNTIME_JS;
pub use layout::{
register_layout, render_layout, DashboardLayout, DashboardLayoutConfig, Layout, LayoutContext,
LayoutRegistry, NavItem, SidebarSection,
};
pub use catalog::{global_catalog, Catalog, CatalogError, ComponentSpec};
pub use expression::resolve_expressions;
pub use loader::{load_cached, LoadError};
pub use plugin::{
collect_plugin_assets, global_plugin_registry, register_plugin, registered_plugin_types,
with_plugin, Asset, CollectedAssets, JsonUiPlugin, PluginRegistry,
};
pub use plugins::{register_built_in_plugins, MapPlugin, RichTextEditorPlugin};
pub use render::{render_spec_to_html, render_spec_to_html_with_plugins, RenderResult};
pub use resolve::{
expand_directives, resolve_actions, resolve_actions_strict, resolve_errors, resolve_errors_all,
};
pub use spec::{
DataRef, Element, ElementBuilder, Spec, SpecBuilder, SpecError, TitleBinding,
MAX_NESTING_DEPTH, SCHEMA_VERSION,
};
pub use visibility::{Visibility, VisibilityCondition, VisibilityOperator};
#[cfg(feature = "projections")]
pub mod projection;
#[cfg(feature = "projections")]
pub use projection::{JsonUiRenderer, ProjectionError, RenderMode, VisualContext};