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