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::leaflet::{leaflet_image, LEAFLET_CSS, LEAFLET_JS};
50#[cfg(not(feature = "dev-css"))]
51pub use assets::FERRO_BASE_CSS;
52pub use assets::{ferro_base_css, GEIST_MONO_WOFF2, GEIST_OFL_TXT, GEIST_SANS_WOFF2};
53pub use component::{
54 ActionCardProps, ActionGroupProps, ActionItem, AlertProps, AvatarProps, BadgeProps,
55 BreadcrumbItem, BreadcrumbProps, ButtonGroupProps, ButtonProps, ButtonType, CardAppearance,
56 CardProps, CheckboxListProps, CheckboxProps, ChecklistItem, ChecklistProps, CollapsibleProps,
57 Column, ColumnFormat, DataTableProps, DescriptionItem, DescriptionListProps,
58 DropdownMenuAction, EmptyStateProps, FormMaxWidth, FormProps, FormSectionProps, GapSize,
59 GridProps, HeaderProps, IconPosition, ImageProps, InputProps, InputType, KanbanBoardProps,
60 KanbanColumnProps, ModalProps, NotificationDropdownProps, NotificationItem, Orientation,
61 PageHeaderProps, PaginationProps, ProgressProps, RawHtmlProps, RichTextEditorProps,
62 SegmentedControlProps, SegmentedItem, SelectOption, SelectProps, SeparatorProps, SidebarGroup,
63 SidebarLayoutItem, SidebarLayoutProps, SidebarNavItem, SidebarProps, Size, SkeletonProps,
64 SortDirection, StatCardProps, SwitchProps, Tab, TableProps, TabsProps, TextElement, TextProps,
65 TileProps, ToastProps, Tone, Variant,
66};
67pub use config::JsonUiConfig;
68pub use design::{lint, rules, DesignMeta, DesignRule, Finding, Severity, KNOWN_INTENTS};
69pub use runtime::FERRO_RUNTIME_JS;
70pub use layout::{
72 register_layout, render_layout, DashboardLayout, DashboardLayoutConfig, Layout, LayoutContext,
73 LayoutRegistry, NavItem, SidebarSection,
74};
75pub use catalog::{global_catalog, Catalog, CatalogError, ComponentSpec};
79pub use expression::resolve_expressions;
80pub use loader::{load_cached, LoadError};
81pub use plugin::{
82 collect_plugin_assets, global_plugin_registry, register_plugin, registered_plugin_types,
83 with_plugin, Asset, CollectedAssets, JsonUiPlugin, PluginRegistry,
84};
85pub use plugins::{register_built_in_plugins, MapPlugin, RichTextEditorPlugin};
86pub use render::{
87 render_spec_to_html, render_spec_to_html_with_plugins, render_subtree, RenderResult,
88};
89pub use resolve::{
90 expand_directives, resolve_actions, resolve_actions_strict, resolve_errors, resolve_errors_all,
91};
92pub use spec::{
93 DataRef, Element, ElementBuilder, Spec, SpecBuilder, SpecError, TitleBinding,
94 MAX_NESTING_DEPTH, SCHEMA_VERSION,
95};
96pub use visibility::{Visibility, VisibilityCondition, VisibilityOperator};
97
98#[cfg(feature = "projections")]
99pub mod projection;
100
101#[cfg(feature = "projections")]
102pub use projection::{JsonUiRenderer, ProjectionError, RenderMode, VisualContext};
103
104#[cfg(feature = "projections")]
105pub use projection::intent_layout::{default_template, register_template};