Skip to main content

tablo_ui/
lib.rs

1//! Renders the styled components `tablo-core` uses; apps depend on this crate
2//! instead of running `topcoat ui add`.
3
4pub mod components;
5pub mod icons;
6
7// Mirrors the vendored registry components verbatim (sync with
8// `cargo xtask sync-topcoat-ui`); owned code lives in `components/composites/`.
9pub use components::{
10    composites::{
11        empty_state::empty_state,
12        error_state::error_state,
13        page::{page, page_actions, page_content, page_description, page_header, page_title},
14        theme::theme_init_script,
15        toast::{
16            toast, toast_close, toast_content, toast_description, toast_icon, toast_title, toaster,
17        },
18    },
19    primitives::{
20        alert::{AlertVariant, alert, alert_description, alert_title},
21        alert_dialog::alert_dialog,
22        button::{ButtonSize, ButtonVariant, button, button_variants},
23        card::{card, card_content, card_description, card_footer, card_header, card_title},
24        checkbox::checkbox,
25        dialog::{
26            dialog, dialog_content, dialog_description, dialog_footer, dialog_header, dialog_title,
27        },
28        field::{
29            FieldLegendVariant, FieldOrientation, field, field_content, field_description,
30            field_error, field_group, field_label, field_legend, field_separator, field_set,
31            field_title,
32        },
33        input::input,
34        label::label,
35        pagination::{
36            pagination, pagination_content, pagination_ellipsis, pagination_item, pagination_link,
37            pagination_next, pagination_previous,
38        },
39        select::select,
40        separator::{SeparatorOrientation, separator},
41        sheet::{SheetSide, sheet, sheet_content},
42        sidebar::{
43            SidebarCollapsible, SidebarMenuButtonSize, SidebarMenuButtonVariant, SidebarSide,
44            SidebarVariant, sidebar, sidebar_content, sidebar_footer, sidebar_group,
45            sidebar_group_action, sidebar_group_content, sidebar_group_label, sidebar_header,
46            sidebar_input, sidebar_inset, sidebar_menu, sidebar_menu_action, sidebar_menu_badge,
47            sidebar_menu_button, sidebar_menu_button_variants, sidebar_menu_item,
48            sidebar_menu_skeleton, sidebar_menu_sub, sidebar_menu_sub_button,
49            sidebar_menu_sub_item, sidebar_provider, sidebar_rail, sidebar_separator,
50            sidebar_trigger,
51        },
52        skeleton::skeleton,
53        table::{
54            table, table_body, table_caption, table_cell, table_footer, table_head, table_header,
55            table_row,
56        },
57        textarea::textarea,
58    },
59};
60
61pub const SIDEBAR_JS: topcoat::asset::Asset = topcoat::asset::asset!("../assets/sidebar.js");
62pub const THEME_JS: topcoat::asset::Asset = topcoat::asset::asset!("../assets/theme.js");
63pub const SELECTS_JS: topcoat::asset::Asset = topcoat::asset::asset!("../assets/selects.js");
64pub const REPEATERS_JS: topcoat::asset::Asset = topcoat::asset::asset!("../assets/repeaters.js");