diff --git a/src/common/student_info.rs b/src/common/student_info.rs
index eb25697..8f8a983 100644
--- a/src/common/student_info.rs
+++ b/src/common/student_info.rs
@@ -6,4 +6,5 @@ pub struct StudentInfo {
pub first_name: String,
pub last_name: String,
pub math_sat_score: i32,
+ pub student_email: String,
}
diff --git a/src/components/mod.rs b/src/components/mod.rs
index f699c48..15ee0ee 100644
--- a/src/components/mod.rs
+++ b/src/components/mod.rs
@@ -4,5 +4,16 @@ mod multi_entry;
mod text_field;
mod select;
mod checkboxes;
+mod panel;
+mod row;
-pub use self::{action_button::*, loading::*, multi_entry::*, text_field::*, select::*, checkboxes::*};
+pub use self::{
+ action_button::*,
+ loading::*,
+ multi_entry::*,
+ text_field::*,
+ select::*,
+ checkboxes::*,
+ panel::*,
+ row::*
+};
diff --git a/src/components/panel.rs b/src/components/panel.rs
new file mode 100644
index 0000000..33e54de
--- /dev/null
+++ b/src/components/panel.rs
@@ -0,0 +1,37 @@
+use leptos::prelude::*;
+
+/// A panel for use in visual separation of a group of components. A `Panel` arranges
+/// a series of elements within a shaded rectangle using the flexbox column layout.
+///
+/// It takes a series of children. Usually these would be in the form of a `Row` element,
+/// which will arrange its own children in a row within the panel, however it can be any
+/// HTML element.
+///
+/// Example:
+/// ```
+/// view! {
+///
+///
+///
+///
+///
+///
+/// }
+/// ```
+#[component]
+pub fn Panel(
+ children: Children
+) -> impl IntoView {
+ view! {
+