1extern crate self as tablo_core;
55
56#[doc(hidden)]
57pub mod __macro {
58 pub use toasty::{
59 Executor, Result as DbResult,
60 codegen_support::Version,
61 schema::{Embed, Model},
62 stmt,
63 stmt::{List, Path},
64 };
65 pub use topcoat::{context::Cx, icon::IconData};
66
67 pub use crate::{
68 Color, Lens, Text,
69 detail::Detail,
70 extend::{Includes, OptionSource},
71 form::{
72 FieldError, FormField, FormInput, FormScalar, FormValues, NullableScalar, RecordForm,
73 assert_form_scalar, links_include, links_key, parse_list, parse_password, parse_scalar,
74 required_input, write_links,
75 },
76 i18n::option_label,
77 schema::{
78 ChoiceField, CustomField, EmbeddedForm, Field, FileField, HoldsTabs, IntoSchema,
79 Options, RepeaterField, Schema, TextField,
80 embedded::{Embedded, EmbeddedBuilder, embedded_field, take_leaf, take_value},
81 form_key, parse_items,
82 tree::Retype,
83 write_items,
84 },
85 table::{
86 ModelColumns, Table,
87 model::{Reference, pick},
88 },
89 toasty_compat::VariantId,
90 values::write_list,
91 };
92}
93mod audit;
96pub mod auth;
97mod bus;
98mod chart;
99mod column;
100mod cookie;
101pub mod csrf;
102pub mod db;
103mod declaration;
104mod derive;
105mod detail;
106mod display;
107#[doc(hidden)]
108pub mod dom;
109mod error;
110pub mod extend;
111mod flash;
112mod form;
113mod i18n;
114mod lens;
115mod limits;
116mod models;
117mod naming;
118mod navigation;
119pub mod notification;
120mod outcome;
121mod page;
122mod panel;
123mod policy;
124mod resource;
125#[cfg(feature = "rich-text")]
126pub mod rich_text;
127mod schema;
128mod table;
129mod tenancy;
130#[cfg(test)]
131mod test_support;
132mod toasty_compat;
133mod topcoat_compat;
134mod upload;
135mod values;
136mod widget;
137
138pub(crate) type BoxFuture<'a, T> = std::pin::Pin<Box<dyn Future<Output = T> + Send + 'a>>;
140
141pub use audit::{AuditChange, AuditEntry, AuditEvent};
142pub use auth::{
143 config::Auth,
144 external::ExternalAuth,
145 impersonation::Impersonation,
146 mail::AuthMail,
147 oidc::{IdentityLinker, Oidc, OidcProvider, ProviderIdentity},
148 panel_user::{Authenticator, PanelUser},
149 password::{PasswordAuth, PasswordSignUp},
150 password_reset::PasswordReset,
151 profile::{Profile, ProfileEditor, ProfileUpdate},
152 registration::{Registrar, SignUp},
153 tenant_registration::TenantRegistration,
154 throttle::LoginThrottle,
155 two_factor::TwoFactor,
156 verification::EmailVerification,
157};
158pub use chart::{Chart, Series, chart};
159#[cfg(feature = "rich-text")]
160pub use column::RichTextColumn;
161pub use column::{
162 BooleanColumn, ColorColumn, ColumnToggle, ColumnWidth, ComputedColumn, CountColumn, DateColumn,
163 DateValue, EmbeddedColumn, FileColumn, IconColumn, ImageColumn, IntoColumns, ListColumn,
164 RelationColumn, RelationLens, RepeaterColumn, SelectColumn, TextColumn, TextInputColumn,
165 ToOneRelation, ToggleColumn, contains_expr,
166};
167pub use declaration::{
168 ActionInputFault, AreaFault, AuthMailFault, DeclarationError, DeclarationErrorKind,
169 EditableColumnFault, FieldAccessFault, FieldRuleFault, LocaleFault, ManyToManyFault,
170 MountError, OidcFault, PolicyFault, ProfileFault, RelatedFormFault, ResetFault, SegmentFault,
171 SignUpFault, Site, TenancyFault, TenantProfileFault, TenantRegistrationFault, TwoFactorFault,
172 VerificationFault,
173};
174pub use derive::{EmbeddedForm, FormInput, ModelColumns, ModelForm, Options, RecordForm};
175pub use detail::{Detail, IntoDetail};
176pub use display::{Alignment, Color, Currency, FontWeight, Number, Numeric};
177pub use form::{NoForm, Posted, RecordForm};
178pub use i18n::Text;
179pub use lens::{Lens, Reads};
180pub use limits::Limits;
181pub use models::register_models;
182pub use navigation::{NavTarget, NavigationItem};
183pub use notification::stored::Notifications;
184pub use outcome::{Notification, NotificationAction, NotificationStatus, Outcome};
185pub use page::{Page, PageDef, PageFilter, PageFilters};
186pub use panel::{
187 Area, AreaGroup, AuditLog, Banner, Brand, ChangedField, ChangedRecord, CommitHook, Environment,
188 Impersonate, Panel, PanelChange, PanelHandle, Radius, RouterBuilderPanelExt, WiredTable,
189 can_list, can_open, can_view_field, list_query, navigation_item, page_filter_bar, page_filters,
190 pages::{header_action_button, header_action_buttons},
191 record_table, stats, url, widgets, wired_table,
192};
193pub use policy::{Abilities, Ability, Allow, And, Deny, Or, Policy, ReadOnly, When, when};
194pub use resource::{
195 Action, Change, FieldAccess, ForeignKey, GlobalSearch, HeaderAction, HeaderActions, Places,
196 PublicLink, RecordPage, RecordPageDef, Relation, Resource, ResourceDef, ResourcePage, Trashed,
197 WriteError, can, filter_keys, scoped_query, scoped_query_in, write_create, write_delete,
198 write_force_delete, write_restore, write_update,
199};
200#[cfg(feature = "rich-text")]
201pub use rich_text::tool::Tool;
202#[cfg(feature = "rich-text")]
203pub use schema::RichTextField;
204pub use schema::{
205 ChoiceField, CustomField, EmbeddedForm, Field, FileField, Grid, Group, IntoFormValue,
206 IntoOptions, IntoSchema, MAX_RELATIONSHIP_OPTIONS, MAX_REPEATER_ROWS, Options, RepeaterField,
207 Schema, Section, Source, Step, Switch, Tab, Tabs, TextField, Toggle, Watched, Wizard,
208 input::FormInput, parse_items, write_items,
209};
210pub use table::{
211 ActionLayout, Cursor, DEFAULT_PAGE_SIZE, DEFAULT_PER_PAGE_OPTIONS, DateFilter, FilterValue,
212 IntoFilters, ListTab, ModelColumns, NumberFilter, PagePosition, Pagination, PresenceFilter,
213 QueryFilter, RowLink, SelectFilter, Sort, Summary, Table, TablePage, TableState, TernaryFilter,
214 TextFilter, TextMatch,
215};
216pub use tenancy::{
217 ClaimedTenant, Membership, Tenancy, Tenant, TenantColumn, TenantId, require_tenant, tenant_id,
218};
219pub use upload::{DirUploader, Uploader, sanitize_filename};
220pub use values::{
221 FieldError, FieldErrorKind, FieldErrors, FormField, FormScalar, FormValue, FormValues,
222 parse_list, parse_password, parse_scalar, time_zone, write_list,
223};
224pub use widget::{
225 DEFAULT_RECORD_ROWS, MAX_RECORD_ROWS, RecordTable, Stat, Trend, Widget, WidgetDef,
226};