1pub mod action;
30pub mod assets;
31pub mod catalog;
32pub mod component;
33pub mod config;
34pub mod data;
35pub mod expression;
36pub mod layout;
37pub mod loader;
38pub mod plugin;
39pub mod plugins;
40pub mod render;
41pub mod resolve;
42pub mod spec;
43pub mod visibility;
44
45pub mod runtime;
46
47pub use action::{Action, ActionOutcome, ConfirmDialog, DialogVariant, HttpMethod, NotifyVariant};
48pub use assets::FERRO_BASE_CSS;
49pub use component::{
50 ActionCardProps, ActionCardVariant, ActionGroupProps, ActionItem, AlertProps, AlertVariant,
51 AvatarProps, BadgeProps, BadgeVariant, BreadcrumbItem, BreadcrumbProps, ButtonGroupProps,
52 ButtonProps, ButtonType, ButtonVariant, CardProps, CardVariant, CheckboxListProps,
53 CheckboxProps, ChecklistItem, ChecklistProps, CollapsibleProps, Column, ColumnFormat,
54 DataTableProps, DescriptionItem, DescriptionListProps, DropdownMenuAction, EmptyStateProps,
55 FormMaxWidth, FormProps, FormSectionProps, GapSize, GridProps, HeaderProps, IconPosition,
56 ImageProps, InputProps, InputType, KanbanBoardProps, KanbanColumnProps, ModalProps,
57 NotificationDropdownProps, NotificationItem, Orientation, PageHeaderProps, PaginationProps,
58 ProductTileProps, ProgressProps, RawHtmlProps, RichTextEditorProps, SegmentedControlProps,
59 SegmentedItem, SelectOption, SelectProps, SeparatorProps, SidebarGroup, SidebarLayoutItem,
60 SidebarLayoutProps, SidebarNavItem, SidebarProps, Size, SkeletonProps, SortDirection,
61 StatCardProps, SwitchProps, Tab, TableProps, TabsProps, TextElement, TextProps, ToastProps,
62 ToastVariant,
63};
64pub use config::JsonUiConfig;
65pub use runtime::FERRO_RUNTIME_JS;
66pub use layout::{
68 register_layout, render_layout, DashboardLayout, DashboardLayoutConfig, Layout, LayoutContext,
69 LayoutRegistry, NavItem, SidebarSection,
70};
71pub use catalog::{global_catalog, Catalog, CatalogError, ComponentSpec};
75pub use expression::resolve_expressions;
76pub use loader::{load_cached, LoadError};
77pub use plugin::{
78 collect_plugin_assets, global_plugin_registry, register_plugin, registered_plugin_types,
79 with_plugin, Asset, CollectedAssets, JsonUiPlugin, PluginRegistry,
80};
81pub use plugins::{register_built_in_plugins, MapPlugin, RichTextEditorPlugin};
82pub use render::{render_spec_to_html, render_spec_to_html_with_plugins, RenderResult};
83pub use resolve::{
84 expand_directives, resolve_actions, resolve_actions_strict, resolve_errors, resolve_errors_all,
85};
86pub use spec::{
87 DataRef, Element, ElementBuilder, Spec, SpecBuilder, SpecError, TitleBinding,
88 MAX_NESTING_DEPTH, SCHEMA_VERSION,
89};
90pub use visibility::{Visibility, VisibilityCondition, VisibilityOperator};
91
92#[cfg(feature = "projections")]
93pub mod projection;
94
95#[cfg(feature = "projections")]
96pub use projection::{JsonUiRenderer, ProjectionError, RenderMode, VisualContext};