+
+
+
+ );
+};
+export default Task02;
\ No newline at end of file
diff --git a/03/Task03.js b/03/Task03.js
index 6c884d18..764286bf 100644
--- a/03/Task03.js
+++ b/03/Task03.js
@@ -1,25 +1,31 @@
-import React from 'react';
+import React from "react";
-import { Row, Col, Breadcrumb as RBBreadcrumb } from 'react-bootstrap';
+import { Row, Col, Breadcrumb as RBBreadcrumb } from "react-bootstrap";
+import Breadcrumb from "./../src/components/Breadcrumb";
const Task03 = () => {
- return (
-
-
-
- Home
-
- Library
-
- Data
-
-
-
- Breadcrumb!
-
-
-)
-}
+ return (
+
+
+
+ Home
+
+ Library
+
+ Data
+
+
+
+
+ Home
+
+ Library
+
+ Data
+
+
+
+ );
+};
export default Task03;
-
diff --git a/04/Task04.js b/04/Task04.js
index 8a8e5b21..1d5fb756 100644
--- a/04/Task04.js
+++ b/04/Task04.js
@@ -1,29 +1,74 @@
import React from 'react';
import { Row, Col, Tabs as RBTabs, Tab as RBTab, } from 'react-bootstrap';
+import Tabs from "./../src/components/Tabs";
const Task04 = () => {
- return (
-
-
-
-
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur condimentum lacus nec ligula faucibus rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
-
-
-
Donec dignissim ultricies felis, eu dictum eros congue in. In gravida lobortis libero nec tempus. Cras rutrum nisl ut leo volutpat rhoncus. Nulla massa nulla, viverra hendrerit laoreet at, tincidunt eu lacus.
-
-
-
Vivamus metus nulla, fermentum eget placerat vitae, mollis interdum elit. Pellentesque arcu augue, vulputate ut porttitor ut, suscipit non orci. Integer justo odio, suscipit eget tortor nec, molestie lobortis eros. Nullam commodo elit sit amet lacus blandit aliquet. Mauris at nibh eget nisl pulvinar dignissim.
-
-
-
-
- Tabs!
-
-
- )
-}
+ return (
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur
+ condimentum lacus nec ligula faucibus rhoncus. Vestibulum ante
+ ipsum primis in faucibus orci luctus et ultrices posuere cubilia
+ Curae;{" "}
+
+
+
+
+ Donec dignissim ultricies felis, eu dictum eros congue in. In
+ gravida lobortis libero nec tempus. Cras rutrum nisl ut leo
+ volutpat rhoncus. Nulla massa nulla, viverra hendrerit laoreet at,
+ tincidunt eu lacus.
+
+
+
+
+ Vivamus metus nulla, fermentum eget placerat vitae, mollis
+ interdum elit. Pellentesque arcu augue, vulputate ut porttitor ut,
+ suscipit non orci. Integer justo odio, suscipit eget tortor nec,
+ molestie lobortis eros. Nullam commodo elit sit amet lacus blandit
+ aliquet. Mauris at nibh eget nisl pulvinar dignissim.
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur
+ condimentum lacus nec ligula faucibus rhoncus. Vestibulum ante
+ ipsum primis in faucibus orci luctus et ultrices posuere cubilia
+ Curae;
+
+
+
+
+
+ Donec dignissim ultricies felis, eu dictum eros congue in. In
+ gravida lobortis libero nec tempus. Cras rutrum nisl ut leo
+ volutpat rhoncus. Nulla massa nulla, viverra hendrerit laoreet at,
+ tincidunt eu lacus.
+
+
+
+
+
+ Vivamus metus nulla, fermentum eget placerat vitae, mollis
+ interdum elit. Pellentesque arcu augue, vulputate ut porttitor ut,
+ suscipit non orci. Integer justo odio, suscipit eget tortor nec,
+ molestie lobortis eros. Nullam commodo elit sit amet lacus blandit
+ aliquet. Mauris at nibh eget nisl pulvinar dignissim.
+
+
+
+
+
+ );
+};
export default Task04;
diff --git a/05/Task05.js b/05/Task05.js
index 6cebfeda..e195062e 100644
--- a/05/Task05.js
+++ b/05/Task05.js
@@ -1,29 +1,44 @@
import React from 'react';
import { Row, Col, Card as RBCard, Button as RBButton } from 'react-bootstrap';
+import Card from "./../src/components/Card";
+import Button from "./../src/components/Button";
const Task05 = () => {
- return (
-
-
-
-
-
- Card Title
-
- Some quick example text to build on the card title and make up the bulk of
- the card's content.
-
- Go somewhere
-
-
-
-
- Card!
-
-
- )
-}
+ return (
+
+
+
+
+
+ Card Title
+
+ Some quick example text to build on the card title and make up the
+ bulk of the card's content.
+
+ Go somewhere
+
+
+
+
+
+
+
+
+ Card title
+
+
+ Some quick example text to build on the card title and make up the
+ bulk of the card's content.
+
+
+
+
+
+
+
+ );
+};
export default Task05;
diff --git a/src/components/Alert/Alert.js b/src/components/Alert/Alert.js
index 1b5f521c..54e71282 100644
--- a/src/components/Alert/Alert.js
+++ b/src/components/Alert/Alert.js
@@ -2,10 +2,13 @@ import React from 'react';
import { StyledAlert } from './Alert.styled';
-const Alert = props => {
- return (
- {props.children}
- );
-}
+const Alert = ({ children, variant = "secondary", ...props }) => {
+ // tutaj uzwywam warunkow początkowych, fajnie było by zrobić w rozszerzeniu aplikacji zmianę stylowania jasny/ciemny, widok dwu/jednokolumnowy
+ return (
+
+ {children}
+
+ );
+};
export default Alert;
\ No newline at end of file
diff --git a/src/components/Alert/Alert.styled.js b/src/components/Alert/Alert.styled.js
index 117843d9..ecddc42a 100644
--- a/src/components/Alert/Alert.styled.js
+++ b/src/components/Alert/Alert.styled.js
@@ -1,7 +1,38 @@
-import styled from 'styled-components';
+import styled, { css } from "styled-components";
+
+const defaultVariants = {
+ primary: {
+ bg: "#cfe2ff",
+ color: "#084298",
+ border: "#b6d4fe",
+ },
+ secondary: {
+ bg: "#e2e3e5",
+ color: "#41464b",
+ border: "#d3d6d8",
+ },
+};
+
+const getVariantStyles = (variant, theme) => {
+ const themeVariants = theme?.alert?.variants;
+ const current = themeVariants?.[variant] || defaultVariants[variant];
+
+ if (!current) return "";
+
+ return css`
+ background-color: ${current.bg};
+ color: ${current.color};
+ border: 1px solid ${current.border};
+ `;
+};
const StyledAlert = styled.div`
- display: block;
-`
+ display: block;
+ padding: 1rem;
+ border-radius: 0.375rem;
+ margin: 0.5rem 0;
+
+ ${({ variant = "primary", theme }) => getVariantStyles(variant, theme)}
+`;
-export { StyledAlert };
\ No newline at end of file
+export { StyledAlert };
diff --git a/src/components/Breadcrumb/Breadcrumb.js b/src/components/Breadcrumb/Breadcrumb.js
new file mode 100644
index 00000000..1d3ba664
--- /dev/null
+++ b/src/components/Breadcrumb/Breadcrumb.js
@@ -0,0 +1,12 @@
+import React from 'react';
+import { StyledBreadcrumb } from './Breadcrumb.styled';
+
+const Breadcrumb = ({ children, ...props }) => {
+ return (
+
+ {children}
+
+ );
+};
+
+export default Breadcrumb;
\ No newline at end of file
diff --git a/src/components/Breadcrumb/Breadcrumb.styled.js b/src/components/Breadcrumb/Breadcrumb.styled.js
new file mode 100644
index 00000000..1a87ef57
--- /dev/null
+++ b/src/components/Breadcrumb/Breadcrumb.styled.js
@@ -0,0 +1,28 @@
+import styled from 'styled-components';
+
+const StyledBreadcrumb = styled.ol`
+ display: flex;
+ flex-wrap: wrap;
+ padding: 0.75rem 1rem;
+ margin: 0;
+ list-style: none;
+ background-color: #e9ecef;
+ border-radius: 0.375rem;
+
+ .breadcrumb-item + .breadcrumb-item::before {
+ content: "/";
+ padding: 0 0.5rem;
+ color: #6c757d;
+ }
+
+ .breadcrumb-item a {
+ color: #0d6efd;
+ text-decoration: none;
+ }
+
+ .breadcrumb-item.active {
+ color: #6c757d;
+ }
+`;
+
+export { StyledBreadcrumb };
\ No newline at end of file
diff --git a/src/components/Breadcrumb/BreadcrumbItem.js b/src/components/Breadcrumb/BreadcrumbItem.js
new file mode 100644
index 00000000..1a18458f
--- /dev/null
+++ b/src/components/Breadcrumb/BreadcrumbItem.js
@@ -0,0 +1,20 @@
+import React from 'react';
+
+const BreadcrumbItem = ({ children, href, active, ...props }) => {
+ return (
+