first commit

This commit is contained in:
DESKTOP-GBA0BK8\Admin
2023-03-25 20:44:56 -04:00
commit 97cc85c49d
711 changed files with 109164 additions and 0 deletions
@@ -0,0 +1,297 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
const series = {
monthDataSeries1: {
prices: [
8107.85, 8128.0, 8122.9, 8165.5, 8340.7, 8423.7, 8423.5, 8514.3, 8481.85,
8487.7, 8506.9, 8626.2, 8668.95, 8602.3, 8607.55, 8512.9, 8496.25,
8500.65, 8881.1, 9340.85,
],
dates: [
"13 Nov 2018",
"14 Nov 2018",
"15 Nov 2018",
"16 Nov 2018",
"17 Nov 2018",
"20 Nov 2018",
"21 Nov 2018",
"22 Nov 2018",
"23 Nov 2018",
"24 Nov 2018",
"27 Nov 2018",
"28 Nov 2018",
"29 Nov 2018",
"30 Nov 2018",
"01 Dec 2018",
"04 Dec 2018",
"05 Dec 2018",
"06 Dec 2018",
"07 Dec 2018",
"08 Dec 2018",
],
},
monthDataSeries2: {
prices: [
8423.7, 8423.5, 8514.3, 8481.85, 8487.7, 8506.9, 8626.2, 8668.95, 8602.3,
8607.55, 8512.9, 8496.25, 8500.65, 8881.1, 9040.85, 8340.7, 8165.5,
8122.9, 8107.85, 8128.0,
],
dates: [
"13 Nov 2018",
"14 Nov 2018",
"15 Nov 2018",
"16 Nov 2018",
"17 Nov 2018",
"20 Nov 2018",
"21 Nov 2018",
"22 Nov 2018",
"23 Nov 2018",
"24 Nov 2018",
"27 Nov 2018",
"28 Nov 2018",
"29 Nov 2018",
"30 Nov 2018",
"01 Dec 2018",
"04 Dec 2018",
"05 Dec 2018",
"06 Dec 2018",
"07 Dec 2018",
"08 Dec 2018",
],
},
monthDataSeries3: {
prices: [
7114.25, 7126.6, 7116.95, 7203.7, 7233.75, 7451.0, 7381.15, 7348.95,
7347.75, 7311.25, 7266.4, 7253.25, 7215.45, 7266.35, 7315.25, 7237.2,
7191.4, 7238.95, 7222.6, 7217.9, 7359.3, 7371.55, 7371.15, 7469.2,
7429.25, 7434.65, 7451.1, 7475.25, 7566.25, 7556.8, 7525.55, 7555.45,
7560.9, 7490.7, 7527.6, 7551.9, 7514.85, 7577.95, 7592.3, 7621.95,
7707.95, 7859.1, 7815.7, 7739.0, 7778.7, 7839.45, 7756.45, 7669.2,
7580.45, 7452.85, 7617.25, 7701.6, 7606.8, 7620.05, 7513.85, 7498.45,
7575.45, 7601.95, 7589.1, 7525.85, 7569.5, 7702.5, 7812.7, 7803.75,
7816.3, 7851.15, 7912.2, 7972.8, 8145.0, 8161.1, 8121.05, 8071.25, 8088.2,
8154.45, 8148.3, 8122.05, 8132.65, 8074.55, 7952.8, 7885.55, 7733.9,
7897.15, 7973.15, 7888.5, 7842.8, 7838.4, 7909.85, 7892.75, 7897.75,
7820.05, 7904.4, 7872.2, 7847.5, 7849.55, 7789.6, 7736.35, 7819.4,
7875.35, 7871.8, 8076.5, 8114.8, 8193.55, 8217.1, 8235.05, 8215.3, 8216.4,
8301.55, 8235.25, 8229.75, 8201.95, 8164.95, 8107.85, 8128.0, 8122.9,
8165.5, 8340.7, 8423.7, 8423.5, 8514.3, 8481.85, 8487.7, 8506.9, 8626.2,
],
dates: [
"02 Jun 2018",
"05 Jun 2018",
"06 Jun 2018",
"07 Jun 2018",
"08 Jun 2018",
"09 Jun 2018",
"12 Jun 2018",
"13 Jun 2018",
"14 Jun 2018",
"15 Jun 2018",
"16 Jun 2018",
"19 Jun 2018",
"20 Jun 2018",
"21 Jun 2018",
"22 Jun 2018",
"23 Jun 2018",
"27 Jun 2018",
"28 Jun 2018",
"29 Jun 2018",
"30 Jun 2018",
"03 Jul 2018",
"04 Jul 2018",
"05 Jul 2018",
"06 Jul 2018",
"07 Jul 2018",
"10 Jul 2018",
"11 Jul 2018",
"12 Jul 2018",
"13 Jul 2018",
"14 Jul 2018",
"17 Jul 2018",
"18 Jul 2018",
"19 Jul 2018",
"20 Jul 2018",
"21 Jul 2018",
"24 Jul 2018",
"25 Jul 2018",
"26 Jul 2018",
"27 Jul 2018",
"28 Jul 2018",
"31 Jul 2018",
"01 Aug 2018",
"02 Aug 2018",
"03 Aug 2018",
"04 Aug 2018",
"07 Aug 2018",
"08 Aug 2018",
"09 Aug 2018",
"10 Aug 2018",
"11 Aug 2018",
"14 Aug 2018",
"16 Aug 2018",
"17 Aug 2018",
"18 Aug 2018",
"21 Aug 2018",
"22 Aug 2018",
"23 Aug 2018",
"24 Aug 2018",
"28 Aug 2018",
"29 Aug 2018",
"30 Aug 2018",
"31 Aug 2018",
"01 Sep 2018",
"04 Sep 2018",
"05 Sep 2018",
"06 Sep 2018",
"07 Sep 2018",
"08 Sep 2018",
"11 Sep 2018",
"12 Sep 2018",
"13 Sep 2018",
"14 Sep 2018",
"15 Sep 2018",
"18 Sep 2018",
"19 Sep 2018",
"20 Sep 2018",
"21 Sep 2018",
"22 Sep 2018",
"25 Sep 2018",
"26 Sep 2018",
"27 Sep 2018",
"28 Sep 2018",
"29 Sep 2018",
"03 Oct 2018",
"04 Oct 2018",
"05 Oct 2018",
"06 Oct 2018",
"09 Oct 2018",
"10 Oct 2018",
"11 Oct 2018",
"12 Oct 2018",
"13 Oct 2018",
"16 Oct 2018",
"17 Oct 2018",
"18 Oct 2018",
"19 Oct 2018",
"23 Oct 2018",
"24 Oct 2018",
"25 Oct 2018",
"26 Oct 2018",
"27 Oct 2018",
"30 Oct 2018",
"31 Oct 2018",
"01 Nov 2018",
"02 Nov 2018",
"03 Nov 2018",
"06 Nov 2018",
"07 Nov 2018",
"08 Nov 2018",
"09 Nov 2018",
"10 Nov 2018",
"13 Nov 2018",
"14 Nov 2018",
"15 Nov 2018",
"16 Nov 2018",
"17 Nov 2018",
"20 Nov 2018",
"21 Nov 2018",
"22 Nov 2018",
"23 Nov 2018",
"24 Nov 2018",
"27 Nov 2018",
"28 Nov 2018",
],
},
};
class BasicAreaCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "STOCK ABC",
data: series.monthDataSeries1.prices,
},
],
options: {
chart: {
zoom: {
enabled: false,
},
},
dataLabels: {
enabled: false,
},
stroke: {
curve: "straight",
},
title: {
text: "Fundamental Analysis of Stocks",
align: "left",
},
subtitle: {
text: "Price Movements",
align: "left",
},
labels: series.monthDataSeries1.dates,
xaxis: {
type: "datetime",
},
yaxis: {
opposite: true,
},
legend: {
horizontalAlign: "left",
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="area"
height={350}
/>
</Card>
</>
);
}
}
export default BasicAreaCharts;
@@ -0,0 +1,500 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class DatetimeXAxis extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
data: [
[1327359500000, 30.95],
[1327445000000, 31.34],
[1327532400000, 31.18],
[1327618800000, 31.05],
[1327878000000, 31.0],
[1327964400000, 30.95],
[1328050800000, 31.24],
[1328137200000, 31.29],
[1328223500000, 31.85],
[1328482800000, 31.86],
[1328569200000, 32.28],
[1328655500000, 32.1],
[1328742000000, 32.65],
[1328828400000, 32.21],
[1329087500000, 32.35],
[1329174000000, 32.44],
[1329260400000, 32.46],
[1329346800000, 32.86],
[1329433200000, 32.75],
[1329778800000, 32.54],
[1329865200000, 32.33],
[1329951500000, 32.97],
[1330038000000, 33.41],
[1330297200000, 33.27],
[1330383500000, 33.27],
[1330470000000, 32.89],
[1330556400000, 33.1],
[1330642800000, 33.73],
[1330902000000, 33.22],
[1330988400000, 31.99],
[1331074800000, 32.41],
[1331161200000, 33.05],
[1331247500000, 33.64],
[1331506800000, 33.56],
[1331593200000, 34.22],
[1331679500000, 33.77],
[1331765000000, 34.17],
[1331852400000, 33.82],
[1332111500000, 34.51],
[1332198000000, 33.16],
[1332284400000, 33.56],
[1332370800000, 33.71],
[1332457200000, 33.81],
[1332712800000, 34.4],
[1332799200000, 34.63],
[1332885500000, 34.46],
[1332972000000, 34.48],
[1333058400000, 34.31],
[1333317500000, 34.7],
[1333404000000, 34.31],
[1333490400000, 33.46],
[1333576800000, 33.59],
[1333922400000, 33.22],
[1334008800000, 32.61],
[1334095200000, 33.01],
[1334181500000, 33.55],
[1334268000000, 33.18],
[1334527200000, 32.84],
[1334613500000, 33.84],
[1334700000000, 33.39],
[1334786400000, 32.91],
[1334872800000, 33.06],
[1335132000000, 32.62],
[1335218400000, 32.4],
[1335304800000, 33.13],
[1335391200000, 33.26],
[1335477500000, 33.58],
[1335736800000, 33.55],
[1335823200000, 33.77],
[1335909500000, 33.76],
[1335995000000, 33.32],
[1336082400000, 32.61],
[1336341500000, 32.52],
[1336428000000, 32.67],
[1336514400000, 32.52],
[1336500800000, 31.92],
[1336687200000, 32.2],
[1336946400000, 32.23],
[1337032800000, 32.33],
[1337119200000, 32.36],
[1337205500000, 32.01],
[1337292000000, 31.31],
[1337551200000, 32.01],
[1337637500000, 32.01],
[1337724000000, 32.18],
[1337810400000, 31.54],
[1337896800000, 31.6],
[1338242400000, 32.05],
[1338328800000, 31.29],
[1338415200000, 31.05],
[1338501500000, 29.82],
[1338760800000, 30.31],
[1338847200000, 30.7],
[1338933500000, 31.69],
[1339020000000, 31.32],
[1339106400000, 31.65],
[1339365500000, 31.13],
[1339452000000, 31.77],
[1339538400000, 31.79],
[1339624800000, 31.67],
[1339711200000, 32.39],
[1339970400000, 32.63],
[1340056800000, 32.89],
[1340143200000, 31.99],
[1340229500000, 31.23],
[1340315000000, 31.57],
[1340575200000, 30.84],
[1340661500000, 31.07],
[1340748000000, 31.41],
[1340834400000, 31.17],
[1340920800000, 32.37],
[1341180000000, 32.19],
[1341266400000, 32.51],
[1341439200000, 32.53],
[1341525500000, 31.37],
[1341784800000, 30.43],
[1341871200000, 30.44],
[1341957500000, 30.2],
[1342044000000, 30.14],
[1342130400000, 30.65],
[1342389500000, 30.4],
[1342475000000, 30.65],
[1342562400000, 31.43],
[1342648800000, 31.89],
[1342735200000, 31.38],
[1342994400000, 30.64],
[1343080800000, 30.02],
[1343167200000, 30.33],
[1343253500000, 30.95],
[1343340000000, 31.89],
[1343599200000, 31.01],
[1343685500000, 30.88],
[1343772000000, 30.69],
[1343858400000, 30.58],
[1343944800000, 32.02],
[1344204000000, 32.14],
[1344290400000, 32.37],
[1344376800000, 32.51],
[1344463200000, 32.65],
[1344549500000, 32.64],
[1344808800000, 32.27],
[1344895200000, 32.1],
[1344981500000, 32.91],
[1345068000000, 33.65],
[1345154400000, 33.8],
[1345413500000, 33.92],
[1345500000000, 33.75],
[1345586400000, 33.84],
[1345672800000, 33.5],
[1345759200000, 32.26],
[1346018400000, 32.32],
[1346104800000, 32.06],
[1346191200000, 31.96],
[1346277500000, 31.46],
[1346364000000, 31.27],
[1346709500000, 31.43],
[1346795000000, 32.26],
[1346882400000, 32.79],
[1346968800000, 32.46],
[1347228000000, 32.13],
[1347314400000, 32.43],
[1347400800000, 32.42],
[1347487200000, 32.81],
[1347573500000, 33.34],
[1347832800000, 33.41],
[1347919200000, 32.57],
[1348005500000, 33.12],
[1348092000000, 34.53],
[1348178400000, 33.83],
[1348437500000, 33.41],
[1348524000000, 32.9],
[1348610400000, 32.53],
[1348696800000, 32.8],
[1348783200000, 32.44],
[1349042400000, 32.62],
[1349128800000, 32.57],
[1349215200000, 32.6],
[1349301500000, 32.68],
[1349388000000, 32.47],
[1349647200000, 32.23],
[1349733500000, 31.68],
[1349820000000, 31.51],
[1349906400000, 31.78],
[1349992800000, 31.94],
[1350252000000, 32.33],
[1350338400000, 33.24],
[1350424800000, 33.44],
[1350511200000, 33.48],
[1350597500000, 33.24],
[1350856800000, 33.49],
[1350943200000, 33.31],
[1351029500000, 33.36],
[1351115000000, 33.4],
[1351202400000, 34.01],
[1351638000000, 34.02],
[1351724400000, 34.36],
[1351810800000, 34.39],
[1352070000000, 34.24],
[1352156400000, 34.39],
[1352242800000, 33.47],
[1352329200000, 32.98],
[1352415500000, 32.9],
[1352674800000, 32.7],
[1352761200000, 32.54],
[1352847500000, 32.23],
[1352934000000, 32.64],
[1353020400000, 32.65],
[1353279500000, 32.92],
[1353365000000, 32.64],
[1353452400000, 32.84],
[1353625200000, 33.4],
[1353884400000, 33.3],
[1353970800000, 33.18],
[1354057200000, 33.88],
[1354143500000, 34.09],
[1354230000000, 34.61],
[1354489200000, 34.7],
[1354575500000, 35.3],
[1354662000000, 35.4],
[1354748400000, 35.14],
[1354834800000, 35.48],
[1355094000000, 35.75],
[1355180400000, 35.54],
[1355266800000, 35.96],
[1355353200000, 35.53],
[1355439500000, 37.56],
[1355698800000, 37.42],
[1355785200000, 37.49],
[1355871500000, 38.09],
[1355958000000, 37.87],
[1356044400000, 37.71],
[1356303500000, 37.53],
[1356476400000, 37.55],
[1356562800000, 37.3],
[1356649200000, 36.9],
[1356908400000, 37.68],
[1357081200000, 38.34],
[1357167500000, 37.75],
[1357254000000, 38.13],
[1357513200000, 37.94],
[1357599500000, 38.14],
[1357685000000, 38.66],
[1357772400000, 38.62],
[1357858800000, 38.09],
[1358118000000, 38.16],
[1358204400000, 38.15],
[1358290800000, 37.88],
[1358377200000, 37.73],
[1358463500000, 37.98],
[1358809200000, 37.95],
[1358895500000, 38.25],
[1358982000000, 38.1],
[1359068400000, 38.32],
[1359327500000, 38.24],
[1359414000000, 38.52],
[1359500400000, 37.94],
[1359586800000, 37.83],
[1359673200000, 38.34],
[1359932400000, 38.1],
[1350018800000, 38.51],
[1360105200000, 38.4],
[1360191500000, 38.07],
[1360278000000, 39.12],
[1360537200000, 38.64],
[1360623500000, 38.89],
[1360710000000, 38.81],
[1360796400000, 38.61],
[1360882800000, 38.63],
[1361228400000, 38.99],
[1361314800000, 38.77],
[1361401200000, 38.34],
[1361487500000, 38.55],
[1361746800000, 38.11],
[1361833200000, 38.59],
[1361919500000, 39.6],
],
},
],
options: {
chart: {
id: "area-datetime",
zoom: {
autoScaleYaxis: true,
},
},
annotations: {
yaxis: [
{
y: 30,
borderColor: "#999",
label: {
show: true,
text: "Support",
style: {
color: "#fff",
background: "#00E396",
},
},
},
],
xaxis: [
{
x: new Date("14 Nov 2012").getTime(),
borderColor: "#999",
yAxisIndex: 0,
label: {
show: true,
text: "Rally",
style: {
color: "#fff",
background: "#775DD0",
},
},
},
],
},
dataLabels: {
enabled: false,
},
markers: {
size: 0,
style: "hollow",
},
xaxis: {
type: "datetime",
min: new Date("01 Mar 2012").getTime(),
tickAmount: 6,
},
tooltip: {
x: {
format: "dd MMM yyyy",
},
},
fill: {
type: "gradient",
gradient: {
shadeIntensity: 1,
opacityFrom: 0.7,
opacityTo: 0.9,
stops: [0, 100],
},
},
},
selection: "one_year",
};
}
updateData(timeline) {
this.setState({
selection: timeline,
});
switch (timeline) {
case "one_month":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("28 Jan 2013").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "six_months":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("27 Sep 2012").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "one_year":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("27 Feb 2012").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "ytd":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("01 Jan 2013").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "all":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("23 Jan 2012").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
default:
}
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Spline
</Typography>
<div id="chart">
<div class="toolbar">
<button
id="one_month"
onClick={() => this.updateData("one_month")}
className={this.state.selection === "one_month" ? "active" : ""}
>
1M
</button>
&nbsp;
<button
id="six_months"
onClick={() => this.updateData("six_months")}
className={
this.state.selection === "six_months" ? "active" : ""
}
>
6M
</button>
&nbsp;
<button
id="one_year"
onClick={() => this.updateData("one_year")}
className={this.state.selection === "one_year" ? "active" : ""}
>
1Y
</button>
&nbsp;
<button
id="ytd"
onClick={() => this.updateData("ytd")}
className={this.state.selection === "ytd" ? "active" : ""}
>
YTD
</button>
&nbsp;
<button
id="all"
onClick={() => this.updateData("all")}
className={this.state.selection === "all" ? "active" : ""}
>
ALL
</button>
</div>
<div id="chart-timeline">
<Chart
options={this.state.options}
series={this.state.series}
type="area"
height={350}
/>
</div>
</div>
</Card>
</>
);
}
}
export default DatetimeXAxis;
@@ -0,0 +1,291 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Negative extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "north",
data: [
{
x: 1996,
y: 322,
},
{
x: 1997,
y: 324,
},
{
x: 1998,
y: 329,
},
{
x: 1999,
y: 342,
},
{
x: 2000,
y: 348,
},
{
x: 2001,
y: 334,
},
{
x: 2002,
y: 325,
},
{
x: 2003,
y: 316,
},
{
x: 2004,
y: 318,
},
{
x: 2005,
y: 330,
},
{
x: 2006,
y: 355,
},
{
x: 2007,
y: 366,
},
{
x: 2008,
y: 337,
},
{
x: 2009,
y: 352,
},
{
x: 2010,
y: 377,
},
{
x: 2011,
y: 383,
},
{
x: 2012,
y: 344,
},
{
x: 2013,
y: 366,
},
{
x: 2014,
y: 389,
},
{
x: 2015,
y: 334,
},
],
},
{
name: "south",
data: [
{
x: 1996,
y: 162,
},
{
x: 1997,
y: 90,
},
{
x: 1998,
y: 50,
},
{
x: 1999,
y: 77,
},
{
x: 2000,
y: 35,
},
{
x: 2001,
y: -45,
},
{
x: 2002,
y: -88,
},
{
x: 2003,
y: -120,
},
{
x: 2004,
y: -156,
},
{
x: 2005,
y: -123,
},
{
x: 2006,
y: -88,
},
{
x: 2007,
y: -66,
},
{
x: 2008,
y: -45,
},
{
x: 2009,
y: -29,
},
{
x: 2010,
y: -45,
},
{
x: 2011,
y: -88,
},
{
x: 2012,
y: -132,
},
{
x: 2013,
y: -146,
},
{
x: 2014,
y: -169,
},
{
x: 2015,
y: -184,
},
],
},
],
options: {
dataLabels: {
enabled: false,
},
stroke: {
curve: "straight",
},
title: {
text: "Area with Negative Values",
align: "left",
style: {
fontSize: "14px",
},
},
xaxis: {
type: "datetime",
axisBorder: {
show: false,
},
axisTicks: {
show: false,
},
},
yaxis: {
tickAmount: 4,
floating: false,
labels: {
style: {
colors: "#8e8da4",
},
offsetY: -7,
offsetX: 0,
},
axisBorder: {
show: false,
},
axisTicks: {
show: false,
},
},
fill: {
opacity: 0.5,
},
tooltip: {
x: {
format: "yyyy",
},
fixed: {
enabled: false,
position: "topRight",
},
},
grid: {
yaxis: {
lines: {
offsetX: -30,
},
},
padding: {
left: 20,
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
>
Negative
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="area"
height={370}
/>
</Card>
</>
);
}
}
export default Negative;
@@ -0,0 +1,89 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Spline extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "series1",
data: [31, 40, 28, 51, 42, 109, 100],
},
{
name: "series2",
data: [11, 32, 45, 32, 34, 52, 41],
},
],
options: {
dataLabels: {
enabled: false,
},
stroke: {
curve: "smooth",
},
xaxis: {
type: "datetime",
categories: [
"2018-09-19T00:00:00.000Z",
"2018-09-19T01:30:00.000Z",
"2018-09-19T02:30:00.000Z",
"2018-09-19T03:30:00.000Z",
"2018-09-19T04:30:00.000Z",
"2018-09-19T05:30:00.000Z",
"2018-09-19T06:30:00.000Z",
],
},
tooltip: {
x: {
format: "dd/MM/yy HH:mm",
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Spline
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="area"
height={350}
/>
</Card>
</>
);
}
}
export default Spline;
@@ -0,0 +1,84 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class BasicBarCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380],
},
],
options: {
plotOptions: {
bar: {
borderRadius: 4,
horizontal: true,
},
},
dataLabels: {
enabled: false,
},
xaxis: {
categories: [
"South Korea",
"Canada",
"United Kingdom",
"Netherlands",
"Italy",
"France",
"Japan",
"United States",
"China",
"Germany",
],
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic Bar Charts
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={430}
/>
</Card>
</>
);
}
}
export default BasicBarCharts;
@@ -0,0 +1,96 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Grouped extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
data: [44, 55, 41, 64, 22, 43, 21],
},
{
data: [53, 32, 33, 52, 13, 44, 32],
},
],
options: {
chart: {
type: "bar",
height: 430,
},
plotOptions: {
bar: {
horizontal: true,
dataLabels: {
position: "top",
},
},
},
dataLabels: {
enabled: true,
offsetX: -6,
style: {
fontSize: "12px",
colors: ["#fff"],
},
},
stroke: {
show: true,
width: 1,
colors: ["#fff"],
},
tooltip: {
shared: true,
intersect: false,
},
xaxis: {
categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007],
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Grouped
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={430}
/>
</Card>
</>
);
}
}
export default Grouped;
@@ -0,0 +1,126 @@
import React, { Component } from 'react';
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class StackedBar extends Component {
constructor(props) {
super(props);
this.state = {
series: [{
name: 'Marine Sprite',
data: [44, 55, 41, 37, 22, 43, 21]
}, {
name: 'Striking Calf',
data: [53, 32, 33, 52, 13, 43, 32]
}, {
name: 'Tank Picture',
data: [12, 17, 11, 9, 15, 11, 20]
}, {
name: 'Bucket Slope',
data: [9, 7, 5, 8, 6, 9, 4]
}, {
name: 'Reborn Kid',
data: [25, 12, 19, 32, 25, 24, 10]
}],
options: {
chart: {
type: 'bar',
height: 350,
stacked: true,
},
plotOptions: {
bar: {
horizontal: true,
dataLabels: {
total: {
enabled: true,
offsetX: 0,
style: {
fontSize: '13px',
fontWeight: 900
}
}
}
},
},
stroke: {
width: 1,
colors: ['#fff']
},
title: {
text: 'Fiction Books Sales'
},
xaxis: {
categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014],
labels: {
formatter: function (val) {
return val + "K"
}
}
},
yaxis: {
title: {
text: undefined
},
},
tooltip: {
y: {
formatter: function (val) {
return val + "K"
}
}
},
fill: {
opacity: 1
},
legend: {
position: 'top',
horizontalAlign: 'left',
offsetX: 40
}
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Stacked Bar
</Typography>
<Chart options={this.state.options} series={this.state.series} type="bar" height={350} />
</Card>
</>
);
}
}
export default StackedBar;
@@ -0,0 +1,114 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class StackedBars100 extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Marine Sprite",
data: [44, 55, 41, 37, 22, 43, 21],
},
{
name: "Striking Calf",
data: [53, 32, 33, 52, 13, 43, 32],
},
{
name: "Tank Picture",
data: [12, 17, 11, 9, 15, 11, 20],
},
{
name: "Bucket Slope",
data: [9, 7, 5, 8, 6, 9, 4],
},
{
name: "Reborn Kid",
data: [25, 12, 19, 32, 25, 24, 10],
},
],
options: {
chart: {
type: "bar",
height: 350,
stacked: true,
stackType: "100%",
},
plotOptions: {
bar: {
horizontal: true,
},
},
stroke: {
width: 1,
colors: ["#fff"],
},
title: {
text: "100% Stacked Bar",
},
xaxis: {
categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014],
},
tooltip: {
y: {
formatter: function (val) {
return val + "K";
},
},
},
fill: {
opacity: 1,
},
legend: {
position: "top",
horizontalAlign: "left",
offsetX: 40,
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Stacked Bars 100
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={350}
/>
</Card>
</>
);
}
}
export default StackedBars100;
@@ -0,0 +1,113 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class BasicColumnCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Net Profit",
data: [44, 55, 57, 56, 61, 58, 63, 60, 66],
},
{
name: "Revenue",
data: [76, 85, 101, 98, 87, 105, 91, 114, 94],
},
{
name: "Free Cash Flow",
data: [35, 41, 36, 26, 45, 48, 52, 53, 41],
},
],
options: {
plotOptions: {
bar: {
horizontal: false,
columnWidth: "55%",
endingShape: "rounded",
},
},
dataLabels: {
enabled: false,
},
stroke: {
show: true,
width: 2,
colors: ["transparent"],
},
xaxis: {
categories: [
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
],
},
yaxis: {
title: {
text: "$ (thousands)",
},
},
fill: {
opacity: 1,
},
tooltip: {
y: {
formatter: function (val) {
return "$ " + val + " thousands";
},
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic Column Charts
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={350}
/>
</Card>
</>
);
}
}
export default BasicColumnCharts;
@@ -0,0 +1,147 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class ColumnWithDataLabels extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Inflation",
data: [2.3, 3.1, 4.0, 10.1, 4.0, 3.6, 3.2, 2.3, 1.4, 0.8, 0.5, 0.2],
},
],
options: {
chart: {
height: 350,
type: "bar",
},
plotOptions: {
bar: {
borderRadius: 10,
dataLabels: {
position: "top", // top, center, bottom
},
},
},
dataLabels: {
enabled: true,
formatter: function (val) {
return val + "%";
},
offsetY: -20,
style: {
fontSize: "12px",
colors: ["#304758"],
},
},
xaxis: {
categories: [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec",
],
position: "top",
axisBorder: {
show: false,
},
axisTicks: {
show: false,
},
crosshairs: {
fill: {
type: "gradient",
gradient: {
colorFrom: "#D8E3F0",
colorTo: "#BED1E6",
stops: [0, 100],
opacityFrom: 0.4,
opacityTo: 0.5,
},
},
},
tooltip: {
enabled: true,
},
},
yaxis: {
axisBorder: {
show: false,
},
axisTicks: {
show: false,
},
labels: {
show: false,
formatter: function (val) {
return val + "%";
},
},
},
title: {
text: "Monthly Inflation in Argentina, 2002",
floating: true,
offsetY: 330,
align: "center",
style: {
color: "#444",
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Column With Data Labels
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={350}
/>
</Card>
</>
);
}
}
export default ColumnWithDataLabels;
@@ -0,0 +1,130 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class StackedColumns extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "PRODUCT A",
data: [44, 55, 41, 67, 22, 43],
},
{
name: "PRODUCT B",
data: [13, 23, 20, 8, 13, 27],
},
{
name: "PRODUCT C",
data: [11, 17, 15, 15, 21, 14],
},
{
name: "PRODUCT D",
data: [21, 7, 25, 13, 22, 8],
},
],
options: {
chart: {
type: "bar",
height: 350,
stacked: true,
toolbar: {
show: true,
},
zoom: {
enabled: true,
},
},
responsive: [
{
breakpoint: 480,
options: {
legend: {
position: "bottom",
offsetX: -10,
offsetY: 0,
},
},
},
],
plotOptions: {
bar: {
horizontal: false,
borderRadius: 10,
dataLabels: {
total: {
enabled: true,
style: {
fontSize: "13px",
fontWeight: 900,
},
},
},
},
},
xaxis: {
type: "datetime",
categories: [
"01/01/2011 GMT",
"01/02/2011 GMT",
"01/03/2011 GMT",
"01/04/2011 GMT",
"01/05/2011 GMT",
"01/06/2011 GMT",
],
},
legend: {
position: "right",
offsetY: 40,
},
fill: {
opacity: 1,
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Stacked Columns
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={350}
/>
</Card>
</>
);
}
}
export default StackedColumns;
@@ -0,0 +1,108 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class StackedColumns100 extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "PRODUCT A",
data: [44, 55, 41, 67, 22, 43, 21, 49],
},
{
name: "PRODUCT B",
data: [13, 23, 20, 8, 13, 27, 33, 12],
},
{
name: "PRODUCT C",
data: [11, 17, 15, 15, 21, 14, 15, 13],
},
],
options: {
chart: {
type: "bar",
height: 350,
stacked: true,
stackType: "100%",
},
responsive: [
{
breakpoint: 480,
options: {
legend: {
position: "bottom",
offsetX: -10,
offsetY: 0,
},
},
},
],
xaxis: {
categories: [
"2011 Q1",
"2011 Q2",
"2011 Q3",
"2011 Q4",
"2012 Q1",
"2012 Q2",
"2012 Q3",
"2012 Q4",
],
},
fill: {
opacity: 1,
},
legend: {
position: "right",
offsetX: 0,
offsetY: 50,
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Stacked Columns 100
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="bar"
height={350}
/>
</Card>
</>
);
}
}
export default StackedColumns100;
@@ -0,0 +1,96 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Basic extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Desktops",
data: [10, 41, 35, 51, 49, 62, 69, 91, 148],
},
],
options: {
chart: {
zoom: {
enabled: false,
},
},
dataLabels: {
enabled: false,
},
stroke: {
curve: "straight",
},
title: {
text: "Product Trends by Month",
align: "left",
},
grid: {
row: {
colors: ["#f3f3f3", "transparent"], // takes an array which will be repeated on columns
opacity: 0.5,
},
},
xaxis: {
categories: [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
],
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="line"
height={350}
/>
</Card>
</>
);
}
}
export default Basic;
@@ -0,0 +1,147 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Dashed extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Session Duration",
data: [45, 52, 38, 24, 33, 26, 21, 20, 6, 8, 15, 10],
},
{
name: "Page Views",
data: [35, 41, 62, 42, 13, 18, 29, 37, 36, 51, 32, 35],
},
{
name: "Total Visits",
data: [87, 57, 74, 99, 75, 38, 62, 47, 82, 56, 45, 47],
},
],
options: {
chart: {
zoom: {
enabled: false,
},
},
dataLabels: {
enabled: false,
},
stroke: {
width: [5, 7, 5],
curve: "straight",
dashArray: [0, 8, 5],
},
title: {
text: "Page Statistics",
align: "left",
},
legend: {
tooltipHoverFormatter: function (val, opts) {
return (
val +
" - " +
opts.w.globals.series[opts.seriesIndex][opts.dataPointIndex] +
""
);
},
},
markers: {
size: 0,
hover: {
sizeOffset: 6,
},
},
xaxis: {
categories: [
"01 Jan",
"02 Jan",
"03 Jan",
"04 Jan",
"05 Jan",
"06 Jan",
"07 Jan",
"08 Jan",
"09 Jan",
"10 Jan",
"11 Jan",
"12 Jan",
],
},
tooltip: {
y: [
{
title: {
formatter: function (val) {
return val + " (mins)";
},
},
},
{
title: {
formatter: function (val) {
return val + " per session";
},
},
},
{
title: {
formatter: function (val) {
return val;
},
},
},
],
},
grid: {
borderColor: "#f1f1f1",
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Realtime
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="line"
height={350}
/>
</Card>
</>
);
}
}
export default Dashed;
@@ -0,0 +1,122 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Gradient extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Sales",
data: [4, 3, 10, 9, 29, 19, 22, 9, 12, 7, 19, 5, 13, 9, 17, 2, 7, 5],
},
],
options: {
forecastDataPoints: {
count: 7,
},
stroke: {
width: 5,
curve: "smooth",
},
xaxis: {
type: "datetime",
categories: [
"1/11/2000",
"2/11/2000",
"3/11/2000",
"4/11/2000",
"5/11/2000",
"6/11/2000",
"7/11/2000",
"8/11/2000",
"9/11/2000",
"10/11/2000",
"11/11/2000",
"12/11/2000",
"1/11/2001",
"2/11/2001",
"3/11/2001",
"4/11/2001",
"5/11/2001",
"6/11/2001",
],
tickAmount: 10,
labels: {
formatter: function (value, timestamp, opts) {
return opts.dateFormatter(new Date(timestamp), "dd MMM");
},
},
},
title: {
text: "Forecast",
align: "left",
style: {
fontSize: "16px",
color: "#666",
},
},
fill: {
type: "gradient",
gradient: {
shade: "dark",
gradientToColors: ["#FDD835"],
shadeIntensity: 1,
type: "horizontal",
opacityFrom: 1,
opacityTo: 1,
stops: [0, 100, 100, 100],
},
},
yaxis: {
min: -10,
max: 40,
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Gradient
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="line"
height={350}
/>
</Card>
</>
);
}
}
export default Gradient;
@@ -0,0 +1,75 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Stepline extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
data: [34, 44, 54, 21, 12, 43, 33, 23, 66, 66, 58],
},
],
options: {
stroke: {
curve: "stepline",
},
dataLabels: {
enabled: false,
},
title: {
text: "Stepline Chart",
align: "left",
},
markers: {
hover: {
sizeOffset: 4,
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Zoomable Timeseries
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="line"
height={350}
/>
</Card>
</>
);
}
}
export default Stepline;
@@ -0,0 +1,104 @@
import React, { Component } from 'react';
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class LineArea extends Component {
constructor(props) {
super(props);
this.state = {
series: [{
name: 'TEAM A',
type: 'area',
data: [44, 55, 31, 47, 31, 43, 26, 41, 31, 47, 33]
}, {
name: 'TEAM B',
type: 'line',
data: [55, 69, 45, 61, 43, 54, 37, 52, 44, 61, 43]
}],
options: {
chart: {
height: 350,
type: 'line',
},
stroke: {
curve: 'smooth'
},
fill: {
type:'solid',
opacity: [0.35, 1],
},
labels: ['Dec 01', 'Dec 02','Dec 03','Dec 04','Dec 05','Dec 06','Dec 07','Dec 08','Dec 09 ','Dec 10','Dec 11'],
markers: {
size: 0
},
yaxis: [
{
title: {
text: 'Series A',
},
},
{
opposite: true,
title: {
text: 'Series B',
},
},
],
tooltip: {
shared: true,
intersect: false,
y: {
formatter: function (y) {
if(typeof y !== "undefined") {
return y.toFixed(0) + " points";
}
return y;
}
}
}
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Line Area
</Typography>
<Chart options={this.state.options} series={this.state.series} type="line" height={350} />
</Card>
</>
);
}
}
export default LineArea;
@@ -0,0 +1,93 @@
import React, { Component } from 'react';
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class LineColumn extends Component {
constructor(props) {
super(props);
this.state = {
series: [{
name: 'Website Blog',
type: 'column',
data: [440, 505, 414, 671, 227, 413, 201, 352, 752, 320, 257, 160]
}, {
name: 'Social Media',
type: 'line',
data: [23, 42, 35, 27, 43, 22, 17, 31, 22, 22, 12, 16]
}],
options: {
chart: {
height: 350,
type: 'line',
},
stroke: {
width: [0, 4]
},
title: {
text: 'Traffic Sources'
},
dataLabels: {
enabled: true,
enabledOnSeries: [1]
},
labels: ['01 Jan 2001', '02 Jan 2001', '03 Jan 2001', '04 Jan 2001', '05 Jan 2001', '06 Jan 2001', '07 Jan 2001', '08 Jan 2001', '09 Jan 2001', '10 Jan 2001', '11 Jan 2001', '12 Jan 2001'],
xaxis: {
type: 'datetime'
},
yaxis: [{
title: {
text: 'Website Blog',
},
}, {
opposite: true,
title: {
text: 'Social Media'
}
}]
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Line Column
</Typography>
<Chart options={this.state.options} series={this.state.series} type="line" height={350} />
</Card>
</>
);
}
}
export default LineColumn;
@@ -0,0 +1,136 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class LineColumnArea extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "TEAM A",
type: "column",
data: [23, 11, 22, 27, 13, 22, 37, 21, 44, 22, 30],
},
{
name: "TEAM B",
type: "area",
data: [44, 55, 41, 67, 22, 43, 21, 41, 56, 27, 43],
},
{
name: "TEAM C",
type: "line",
data: [30, 25, 36, 30, 45, 35, 64, 52, 59, 36, 39],
},
],
options: {
chart: {
height: 350,
type: "line",
stacked: false,
},
stroke: {
width: [0, 2, 5],
curve: "smooth",
},
plotOptions: {
bar: {
columnWidth: "50%",
},
},
fill: {
opacity: [0.85, 0.25, 1],
gradient: {
inverseColors: false,
shade: "light",
type: "vertical",
opacityFrom: 0.85,
opacityTo: 0.55,
stops: [0, 100, 100, 100],
},
},
labels: [
"01/01/2003",
"02/01/2003",
"03/01/2003",
"04/01/2003",
"05/01/2003",
"06/01/2003",
"07/01/2003",
"08/01/2003",
"09/01/2003",
"10/01/2003",
"11/01/2003",
],
markers: {
size: 0,
},
xaxis: {
type: "datetime",
},
yaxis: {
title: {
text: "Points",
},
min: 0,
},
tooltip: {
shared: true,
intersect: false,
y: {
formatter: function (y) {
if (typeof y !== "undefined") {
return y.toFixed(0) + " points";
}
return y;
},
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Line Column Area
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="line"
height={350}
/>
</Card>
</>
);
}
}
export default LineColumnArea;
@@ -0,0 +1,173 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class MultipleYAxis extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Income",
type: "column",
data: [1.4, 2, 2.5, 1.5, 2.5, 2.8, 3.8, 4.6],
},
{
name: "Cashflow",
type: "column",
data: [1.1, 3, 3.1, 4, 4.1, 4.9, 6.5, 8.5],
},
{
name: "Revenue",
type: "line",
data: [20, 29, 37, 36, 44, 45, 50, 58],
},
],
options: {
chart: {
height: 350,
type: "line",
stacked: false,
},
dataLabels: {
enabled: false,
},
stroke: {
width: [1, 1, 4],
},
title: {
text: "XYZ - Stock Analysis (2009 - 2016)",
align: "left",
offsetX: 110,
},
xaxis: {
categories: [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016],
},
yaxis: [
{
axisTicks: {
show: true,
},
axisBorder: {
show: true,
color: "#008FFB",
},
labels: {
style: {
colors: "#008FFB",
},
},
title: {
text: "Income (thousand crores)",
style: {
color: "#008FFB",
},
},
tooltip: {
enabled: true,
},
},
{
seriesName: "Income",
opposite: true,
axisTicks: {
show: true,
},
axisBorder: {
show: true,
color: "#00E396",
},
labels: {
style: {
colors: "#00E396",
},
},
title: {
text: "Operating Cashflow (thousand crores)",
style: {
color: "#00E396",
},
},
},
{
seriesName: "Revenue",
opposite: true,
axisTicks: {
show: true,
},
axisBorder: {
show: true,
color: "#FEB019",
},
labels: {
style: {
colors: "#FEB019",
},
},
title: {
text: "Revenue (thousand crores)",
style: {
color: "#FEB019",
},
},
},
],
tooltip: {
fixed: {
enabled: true,
position: "topLeft", // topRight, topLeft, bottomRight, bottomLeft
offsetY: 30,
offsetX: 60,
},
},
legend: {
horizontalAlign: "left",
offsetX: 40,
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Multiple Y Axis
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="line"
height={350}
/>
</Card>
</>
);
}
}
export default MultipleYAxis;
@@ -0,0 +1,130 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class PieCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [44, 55, 41, 17, 15],
options: {
chart: {
width: 380,
type: "donut",
dropShadow: {
enabled: true,
color: "#111",
top: -1,
left: 3,
blur: 3,
opacity: 0.2,
},
},
stroke: {
width: 0,
},
plotOptions: {
pie: {
donut: {
labels: {
show: true,
total: {
showAlways: true,
show: true,
},
},
},
},
},
labels: ["Comedy", "Action", "SciFi", "Drama", "Horror"],
dataLabels: {
dropShadow: {
blur: 3,
opacity: 0.8,
},
},
fill: {
type: "pattern",
opacity: 1,
pattern: {
enabled: true,
style: [
"verticalLines",
"squares",
"horizontalLines",
"circles",
"slantedLines",
],
},
},
states: {
hover: {
filter: "none",
},
},
theme: {
palette: "palette2",
},
title: {
text: "Favourite Movie Type",
},
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
legend: {
position: "bottom",
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Pie Charts
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="donut"
width={380}
/>
</Card>
</>
);
}
}
export default PieCharts;
@@ -0,0 +1,94 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class GradientDonut extends Component {
constructor(props) {
super(props);
this.state = {
series: [44, 55, 41, 17, 15],
options: {
chart: {
width: 380,
type: "donut",
},
plotOptions: {
pie: {
startAngle: -90,
endAngle: 270,
},
},
dataLabels: {
enabled: false,
},
fill: {
type: "gradient",
},
legend: {
formatter: function (val, opts) {
return val + " - " + opts.w.globals.series[opts.seriesIndex];
},
},
title: {
text: "Gradient Donut with custom Start-angle",
},
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
legend: {
position: "bottom",
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Gradient Donut
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="donut"
width={380}
/>
</Card>
</>
);
}
}
export default GradientDonut;
@@ -0,0 +1,85 @@
import React, { Component } from 'react';
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class MonochromePie extends Component {
constructor(props) {
super(props);
this.state = {
series: [25, 15, 44, 55, 41, 17],
options: {
chart: {
width: '100%',
type: 'pie',
},
labels: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
theme: {
monochrome: {
enabled: true
}
},
plotOptions: {
pie: {
dataLabels: {
offset: -5
}
}
},
title: {
text: "Monochrome Pie"
},
dataLabels: {
formatter(val, opts) {
const name = opts.w.globals.labels[opts.seriesIndex]
return [name, val.toFixed(1) + '%']
}
},
legend: {
show: false
}
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Monochrome Pie
</Typography>
<Chart options={this.state.options} series={this.state.series} type="pie" />
</Card>
</>
);
}
}
export default MonochromePie;
@@ -0,0 +1,72 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class SimpleDonut extends Component {
constructor(props) {
super(props);
this.state = {
series: [44, 55, 41, 17, 15],
options: {
chart: {
type: "donut",
},
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
legend: {
position: "bottom",
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Simple Donut
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="donut"
/>
</Card>
</>
);
}
}
export default SimpleDonut;
@@ -0,0 +1,75 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class SimplePieChart extends Component {
constructor(props) {
super(props);
this.state = {
series: [44, 55, 13, 43, 22],
options: {
chart: {
width: 380,
type: "pie",
},
labels: ["Team A", "Team B", "Team C", "Team D", "Team E"],
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
legend: {
position: "bottom",
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Simple Pie Chart
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="pie"
width={380}
/>
</Card>
</>
);
}
}
export default SimplePieChart;
@@ -0,0 +1,132 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class UpdateDonut extends Component {
constructor(props) {
super(props);
this.state = {
series: [44, 55, 13, 33],
options: {
chart: {
width: 380,
type: "donut",
},
dataLabels: {
enabled: false,
},
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
legend: {
show: false,
},
},
},
],
legend: {
position: "right",
offsetY: 0,
height: 230,
},
},
};
}
appendData() {
var arr = this.state.series.slice();
arr.push(Math.floor(Math.random() * (100 - 1 + 1)) + 1);
this.setState({
series: arr,
});
}
removeData() {
if (this.state.series.length === 1) return;
var arr = this.state.series.slice();
arr.pop();
this.setState({
series: arr,
});
}
randomize() {
this.setState({
series: this.state.series.map(function () {
return Math.floor(Math.random() * (100 - 1 + 1)) + 1;
}),
});
}
reset() {
this.setState({
series: [44, 55, 13, 33],
});
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Update Donut
</Typography>
<div>
<div class="chart-wrap">
<div id="chart">
<Chart
options={this.state.options}
series={this.state.series}
type="donut"
width={380}
/>
</div>
</div>
<div class="actions">
<button onClick={() => this.appendData()}>+ ADD</button>
&nbsp;
<button onClick={() => this.removeData()}>- REMOVE</button>
&nbsp;
<button onClick={() => this.randomize()}>RANDOMIZE</button>
&nbsp;
<button onClick={() => this.reset()}>RESET</button>
</div>
</div>
</Card>
</>
);
}
}
export default UpdateDonut;
@@ -0,0 +1,78 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class BasicPolarAreaCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [14, 23, 21, 17, 15, 10, 12, 17, 21],
options: {
chart: {
type: "polarArea",
},
stroke: {
colors: ["#fff"],
},
fill: {
opacity: 0.8,
},
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
legend: {
position: "bottom",
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic Polar Area Charts
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="polarArea"
/>
</Card>
</>
);
}
}
export default BasicPolarAreaCharts;
@@ -0,0 +1,98 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class Monochrome extends Component {
constructor(props) {
super(props);
this.state = {
series: [42, 47, 52, 58, 65],
options: {
labels: ["Rose A", "Rose B", "Rose C", "Rose D", "Rose E"],
fill: {
opacity: 1,
},
stroke: {
width: 1,
colors: undefined,
},
yaxis: {
show: false,
},
legend: {
position: "bottom",
},
plotOptions: {
polarArea: {
rings: {
strokeWidth: 0,
},
spokes: {
strokeWidth: 0,
},
},
},
theme: {
monochrome: {
enabled: true,
shadeTo: "light",
shadeIntensity: 0.6,
},
},
responsive: [
{
breakpoint: 480,
options: {
chart: {
width: 200,
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Monochrome
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="polarArea"
/>
</Card>
</>
);
}
}
export default Monochrome;
@@ -0,0 +1,72 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class BasicRadarCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Series 1",
data: [80, 50, 30, 40, 100, 20],
},
],
options: {
chart: {
height: 350,
type: "radar",
},
title: {
text: "Basic Radar Chart",
},
xaxis: {
categories: ["January", "February", "March", "April", "May", "June"],
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic Radar Charts
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="radar"
height={350}
/>
</Card>
</>
);
}
}
export default BasicRadarCharts;
@@ -0,0 +1,95 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class RadarMultipleSeries extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Series 1",
data: [80, 50, 30, 40, 100, 20],
},
{
name: "Series 2",
data: [20, 30, 40, 80, 20, 80],
},
{
name: "Series 3",
data: [44, 76, 78, 13, 43, 10],
},
],
options: {
chart: {
height: 350,
type: "radar",
dropShadow: {
enabled: true,
blur: 1,
left: 1,
top: 1,
},
},
title: {
text: "Radar Chart - Multi Series",
},
stroke: {
width: 2,
},
fill: {
opacity: 0.1,
},
markers: {
size: 0,
},
xaxis: {
categories: ["2011", "2012", "2013", "2014", "2015", "2016"],
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Radar Multiple Series
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="radar"
height={350}
/>
</Card>
</>
);
}
}
export default RadarMultipleSeries;
@@ -0,0 +1,120 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class RadarWithPolygonFill extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
name: "Series 1",
data: [20, 100, 40, 30, 50, 80, 33],
},
],
options: {
chart: {
height: 350,
type: "radar",
},
dataLabels: {
enabled: true,
},
plotOptions: {
radar: {
size: 140,
polygons: {
strokeColors: "#e9e9e9",
fill: {
colors: ["#f8f8f8", "#fff"],
},
},
},
},
title: {
text: "Radar with Polygon Fill",
},
colors: ["#FF4560"],
markers: {
size: 4,
colors: ["#fff"],
strokeColor: "#FF4560",
strokeWidth: 2,
},
tooltip: {
y: {
formatter: function (val) {
return val;
},
},
},
xaxis: {
categories: [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
},
yaxis: {
tickAmount: 7,
labels: {
formatter: function (val, i) {
if (i % 2 === 0) {
return val;
} else {
return "";
}
},
},
},
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Radar with Polygon-fill
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="radar"
height={350}
/>
</Card>
</>
);
}
}
export default RadarWithPolygonFill;
@@ -0,0 +1,69 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class BasicRadialBarCharts extends Component {
constructor(props) {
super(props);
this.state = {
series: [70],
options: {
chart: {
height: 350,
type: "radialBar",
},
plotOptions: {
radialBar: {
hollow: {
size: "70%",
},
},
},
labels: ["Cricket"],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic Radial Bar Charts
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="radialBar"
height={350}
/>
</Card>
</>
);
}
}
export default BasicRadialBarCharts;
@@ -0,0 +1,110 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class CustomAngleCircle extends Component {
constructor(props) {
super(props);
this.state = {
series: [76, 67, 61, 90],
options: {
plotOptions: {
radialBar: {
offsetY: 0,
startAngle: 0,
endAngle: 270,
hollow: {
margin: 5,
size: "50%",
background: "transparent",
image: undefined,
},
dataLabels: {
name: {
show: false,
},
value: {
show: false,
},
},
},
},
colors: ["#1ab7ea", "#0084ff", "#39539E", "#0077B5"],
labels: ["Vimeo", "Messenger", "Facebook", "LinkedIn"],
legend: {
show: true,
floating: true,
fontSize: "12px",
position: "left",
offsetX: 0,
offsetY: 0,
labels: {
useSeriesColors: true,
},
markers: {
size: 0,
},
formatter: function (seriesName, opts) {
return seriesName + ": " + opts.w.globals.series[opts.seriesIndex];
},
itemMargin: {
vertical: 3,
},
},
responsive: [
{
breakpoint: 480,
options: {
legend: {
show: false,
},
},
},
],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Custom Angle Circle
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="radialBar"
height={350}
/>
</Card>
</>
);
}
}
export default CustomAngleCircle;
@@ -0,0 +1,82 @@
import React, { Component } from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class MultipleRadialbars extends Component {
constructor(props) {
super(props);
this.state = {
series: [44, 55, 67, 83],
options: {
chart: {
height: 350,
type: "radialBar",
},
plotOptions: {
radialBar: {
dataLabels: {
name: {
fontSize: "22px",
},
value: {
fontSize: "16px",
},
total: {
show: true,
label: "Total",
formatter: function (w) {
// By default this function returns the average of all series. The below is just an example to show the use of custom formatter function
return 249;
},
},
},
},
},
labels: ["Apples", "Oranges", "Bananas", "Berries"],
},
};
}
render() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Multiple Radialbars
</Typography>
<Chart
options={this.state.options}
series={this.state.series}
type="radialBar"
height={350}
/>
</Card>
</>
);
}
}
export default MultipleRadialbars;
+29
View File
@@ -0,0 +1,29 @@
import React from 'react';
import Link from 'next/link';
import { useRouter } from "next/router";
import styles from '@/components/Pages/Charts/NavBar.module.css'
const NavBar = () => {
const router = useRouter();
return (
<>
<nav className={styles.topNavStyle}>
<ul>
<li className={router.pathname == "/pages/apexcharts" ? styles.active : ""}>
<Link href="/pages/apexcharts">
ApexCharts
</Link>
</li>
<li className={router.pathname == "/pages/recharts" ? styles.active : ""}>
<Link href="/pages/recharts">
Recharts
</Link>
</li>
</ul>
</nav>
</>
)
}
export default NavBar;
+33
View File
@@ -0,0 +1,33 @@
.topNavStyle {
margin-bottom: 20px;
border-bottom: 1px solid #eee;
}
.topNavStyle ul {
list-style-type: none;
padding: 0;
margin: 0;
}
.topNavStyle ul li {
display: inline-block;
margin-right: 10px;
}
.topNavStyle ul li:last-child {
margin-right: 0;
}
.topNavStyle ul li a {
background-color: #fff;
padding: 10px 30px;
display: inline-block;
border-radius: 20px 20px 0 0;
text-decoration: none;
font-weight: 500;
}
.topNavStyle ul li a:hover, .topNavStyle ul li.active a {
background-color: var(--primaryColor);
color: #fff;
}
/* For dark mode */
[class="dark"] .topNavStyle {
border-bottom: 1px solid var(--borderColor);
}
@@ -0,0 +1,113 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
AreaChart,
Area,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: "Page B",
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: "Page C",
uv: 2000,
pv: 9800,
amt: 2290,
},
{
name: "Page D",
uv: 2780,
pv: 3908,
amt: 2000,
},
{
name: "Page E",
uv: 1890,
pv: 4800,
amt: 2181,
},
{
name: "Page F",
uv: 2390,
pv: 3800,
amt: 2500,
},
{
name: "Page G",
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const SimpleAreaChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Simple Area Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<AreaChart
width={500}
height={400}
data={data}
margin={{
top: 10,
right: 30,
left: 0,
bottom: 0,
}}
>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Area
type="monotone"
dataKey="uv"
stroke="#8884d8"
fill="#8884d8"
/>
</AreaChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SimpleAreaChart;
@@ -0,0 +1,128 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
AreaChart,
Area,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: "Page B",
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: "Page C",
uv: 2000,
pv: 9800,
amt: 2290,
},
{
name: "Page D",
uv: 2780,
pv: 3908,
amt: 2000,
},
{
name: "Page E",
uv: 1890,
pv: 4800,
amt: 2181,
},
{
name: "Page F",
uv: 2390,
pv: 3800,
amt: 2500,
},
{
name: "Page G",
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const StackedAreaChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Stacked Area Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<AreaChart
width={500}
height={400}
data={data}
margin={{
top: 10,
right: 30,
left: 0,
bottom: 0,
}}
>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Area
type="monotone"
dataKey="uv"
stackId="1"
stroke="#8884d8"
fill="#8884d8"
/>
<Area
type="monotone"
dataKey="pv"
stackId="1"
stroke="#82ca9d"
fill="#82ca9d"
/>
<Area
type="monotone"
dataKey="amt"
stackId="1"
stroke="#ffc658"
fill="#ffc658"
/>
</AreaChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default StackedAreaChart;
@@ -0,0 +1,112 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
BarChart,
Bar,
Cell,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
Legend,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: "Page B",
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: "Page C",
uv: 2000,
pv: 9800,
amt: 2290,
},
{
name: "Page D",
uv: 2780,
pv: 3908,
amt: 2000,
},
{
name: "Page E",
uv: 1890,
pv: 4800,
amt: 2181,
},
{
name: "Page F",
uv: 2390,
pv: 3800,
amt: 2500,
},
{
name: "Page G",
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const SimpleBarChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Tiny Bar Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<BarChart
width={500}
height={300}
data={data}
margin={{
top: 5,
right: 30,
left: 20,
bottom: 5,
}}
>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Legend />
<Bar dataKey="pv" fill="#8884d8" />
<Bar dataKey="uv" fill="#82ca9d" />
</BarChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SimpleBarChart;
@@ -0,0 +1,90 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
BarChart,
Bar,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: "Page B",
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: "Page C",
uv: 2000,
pv: 9800,
amt: 2290,
},
{
name: "Page D",
uv: 2780,
pv: 3908,
amt: 2000,
},
{
name: "Page E",
uv: 1890,
pv: 4800,
amt: 2181,
},
{
name: "Page F",
uv: 2390,
pv: 3800,
amt: 2500,
},
{
name: "Page G",
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const TinyBarChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Tiny Bar Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<BarChart width={150} height={40} data={data}>
<Bar dataKey="uv" fill="#8884d8" />
</BarChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default TinyBarChart;
@@ -0,0 +1,121 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
ComposedChart,
Line,
Area,
Bar,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
Legend,
Scatter,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 590,
pv: 800,
amt: 1400,
cnt: 490,
},
{
name: "Page B",
uv: 868,
pv: 967,
amt: 1506,
cnt: 590,
},
{
name: "Page C",
uv: 1397,
pv: 1098,
amt: 989,
cnt: 350,
},
{
name: "Page D",
uv: 1480,
pv: 1200,
amt: 1228,
cnt: 480,
},
{
name: "Page E",
uv: 1520,
pv: 1108,
amt: 1100,
cnt: 460,
},
{
name: "Page F",
uv: 1400,
pv: 680,
amt: 1700,
cnt: 380,
},
];
const LineBarAreaComposedChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Line Bar Area Composed Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<ComposedChart
width={500}
height={400}
data={data}
margin={{
top: 20,
right: 20,
bottom: 20,
left: 20,
}}
>
<CartesianGrid stroke="#f5f5f5" />
<XAxis dataKey="name" scale="band" />
<YAxis />
<Tooltip />
<Legend />
<Area
type="monotone"
dataKey="amt"
fill="#8884d8"
stroke="#8884d8"
/>
<Bar dataKey="pv" barSize={20} fill="#413ea0" />
<Line type="monotone" dataKey="uv" stroke="#ff7300" />
<Scatter dataKey="cnt" fill="red" />
</ComposedChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default LineBarAreaComposedChart;
@@ -0,0 +1,107 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
ComposedChart,
Line,
Area,
Bar,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
Legend,
ResponsiveContainer,
} from 'recharts';
const data = [
{
name: 'Page A',
uv: 590,
pv: 800,
amt: 1400,
},
{
name: 'Page B',
uv: 868,
pv: 967,
amt: 1506,
},
{
name: 'Page C',
uv: 1397,
pv: 1098,
amt: 989,
},
{
name: 'Page D',
uv: 1480,
pv: 1200,
amt: 1228,
},
{
name: 'Page E',
uv: 1520,
pv: 1108,
amt: 1100,
},
{
name: 'Page F',
uv: 1400,
pv: 680,
amt: 1700,
},
];
const SameDataComposedChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Same Data Composed Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<ComposedChart
width={500}
height={400}
data={data}
margin={{
top: 20,
right: 20,
bottom: 20,
left: 20,
}}
>
<CartesianGrid stroke="#f5f5f5" />
<XAxis dataKey="name" scale="band" />
<YAxis />
<Tooltip />
<Legend />
<Bar dataKey="uv" barSize={20} fill="#413ea0" />
<Line type="monotone" dataKey="uv" stroke="#ff7300" />
</ComposedChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SameDataComposedChart;
@@ -0,0 +1,116 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
LineChart,
Line,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
Legend,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: "Page B",
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: "Page C",
uv: 2000,
pv: 9800,
amt: 2290,
},
{
name: "Page D",
uv: 2780,
pv: 3908,
amt: 2000,
},
{
name: "Page E",
uv: 1890,
pv: 4800,
amt: 2181,
},
{
name: "Page F",
uv: 2390,
pv: 3800,
amt: 2500,
},
{
name: "Page G",
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const SimpleLineChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Simple Line Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<LineChart
width={500}
height={300}
data={data}
margin={{
top: 5,
right: 30,
left: 20,
bottom: 5,
}}
>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip />
<Legend />
<Line
type="monotone"
dataKey="pv"
stroke="#8884d8"
activeDot={{ r: 8 }}
/>
<Line type="monotone" dataKey="uv" stroke="#82ca9d" />
</LineChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SimpleLineChart;
@@ -0,0 +1,112 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
LineChart,
Line,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
Legend,
ResponsiveContainer,
} from "recharts";
const data = [
{
name: "Page A",
uv: 4000,
pv: 2400,
amt: 2400,
},
{
name: "Page B",
uv: 3000,
pv: 1398,
amt: 2210,
},
{
name: "Page C",
uv: 2000,
pv: 9800,
amt: 2290,
},
{
name: "Page D",
uv: 2780,
pv: 3908,
amt: 2000,
},
{
name: "Page E",
uv: 1890,
pv: 4800,
amt: 2181,
},
{
name: "Page F",
uv: 2390,
pv: 3800,
amt: 2500,
},
{
name: "Page G",
uv: 3490,
pv: 4300,
amt: 2100,
},
];
const VerticalLineChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Vertical Line Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<LineChart
layout="vertical"
width={500}
height={300}
data={data}
margin={{
top: 20,
right: 30,
left: 20,
bottom: 5,
}}
>
<CartesianGrid strokeDasharray="3 3" />
<XAxis type="number" />
<YAxis dataKey="name" type="category" />
<Tooltip />
<Legend />
<Line dataKey="pv" stroke="#8884d8" />
<Line dataKey="uv" stroke="#82ca9d" />
</LineChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default VerticalLineChart;
@@ -0,0 +1,78 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import { PieChart, Pie, Sector, Cell, ResponsiveContainer } from "recharts";
const data01 = [
{ name: "Group A", value: 400 },
{ name: "Group B", value: 300 },
{ name: "Group C", value: 300 },
{ name: "Group D", value: 200 },
];
const data02 = [
{ name: "A1", value: 100 },
{ name: "A2", value: 300 },
{ name: "B1", value: 100 },
{ name: "B2", value: 80 },
{ name: "B3", value: 40 },
{ name: "B4", value: 30 },
{ name: "B5", value: 50 },
{ name: "C1", value: 100 },
{ name: "C2", value: 200 },
{ name: "D1", value: 150 },
{ name: "D2", value: 50 },
];
const TwoLevelPieChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Two Level Pie Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<PieChart width={400} height={400}>
<Pie
data={data01}
dataKey="value"
cx="50%"
cy="50%"
outerRadius={60}
fill="#8884d8"
/>
<Pie
data={data02}
dataKey="value"
cx="50%"
cy="50%"
innerRadius={70}
outerRadius={90}
fill="#82ca9d"
label
/>
</PieChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default TwoLevelPieChart;
@@ -0,0 +1,70 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import { PieChart, Pie, Tooltip, ResponsiveContainer } from 'recharts';
const data01 = [
{ name: 'Group A', value: 400 },
{ name: 'Group B', value: 300 },
{ name: 'Group C', value: 300 },
{ name: 'Group D', value: 200 },
{ name: 'Group E', value: 278 },
{ name: 'Group F', value: 189 },
];
const data02 = [
{ name: 'Group A', value: 2400 },
{ name: 'Group B', value: 4567 },
{ name: 'Group C', value: 1398 },
{ name: 'Group D', value: 9800 },
{ name: 'Group E', value: 3908 },
{ name: 'Group F', value: 4800 },
];
const TwoSimplePieChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Two Simple Pie Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<PieChart width={400} height={400}>
<Pie
dataKey="value"
isAnimationActive={false}
data={data01}
cx="50%"
cy="50%"
outerRadius={80}
fill="#8884d8"
label
/>
<Pie dataKey="value" data={data02} cx={500} cy={200} innerRadius={40} outerRadius={80} fill="#82ca9d" />
<Tooltip />
</PieChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default TwoSimplePieChart;
@@ -0,0 +1,96 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
Radar,
RadarChart,
PolarGrid,
PolarAngleAxis,
PolarRadiusAxis,
ResponsiveContainer,
} from "recharts";
const data = [
{
subject: "Math",
A: 120,
B: 110,
fullMark: 150,
},
{
subject: "Chinese",
A: 98,
B: 130,
fullMark: 150,
},
{
subject: "English",
A: 86,
B: 130,
fullMark: 150,
},
{
subject: "Geography",
A: 99,
B: 100,
fullMark: 150,
},
{
subject: "Physics",
A: 85,
B: 90,
fullMark: 150,
},
{
subject: "History",
A: 65,
B: 85,
fullMark: 150,
},
];
const SimpleRadarChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Simple Radar Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<RadarChart cx="50%" cy="50%" outerRadius="80%" data={data}>
<PolarGrid />
<PolarAngleAxis dataKey="subject" />
<PolarRadiusAxis />
<Radar
name="Mike"
dataKey="A"
stroke="#8884d8"
fill="#8884d8"
fillOpacity={0.6}
/>
</RadarChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SimpleRadarChart;
@@ -0,0 +1,105 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
Radar,
RadarChart,
PolarGrid,
Legend,
PolarAngleAxis,
PolarRadiusAxis,
ResponsiveContainer,
} from "recharts";
const data = [
{
subject: "Math",
A: 120,
B: 110,
fullMark: 150,
},
{
subject: "Chinese",
A: 98,
B: 130,
fullMark: 150,
},
{
subject: "English",
A: 86,
B: 130,
fullMark: 150,
},
{
subject: "Geography",
A: 99,
B: 100,
fullMark: 150,
},
{
subject: "Physics",
A: 85,
B: 90,
fullMark: 150,
},
{
subject: "History",
A: 65,
B: 85,
fullMark: 150,
},
];
const SpecifiedDomainRadarChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Specified Domain Radar Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<RadarChart cx="50%" cy="50%" outerRadius="80%" data={data}>
<PolarGrid />
<PolarAngleAxis dataKey="subject" />
<PolarRadiusAxis angle={30} domain={[0, 150]} />
<Radar
name="Mike"
dataKey="A"
stroke="#8884d8"
fill="#8884d8"
fillOpacity={0.6}
/>
<Radar
name="Lily"
dataKey="B"
stroke="#82ca9d"
fill="#82ca9d"
fillOpacity={0.6}
/>
<Legend />
</RadarChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SpecifiedDomainRadarChart;
@@ -0,0 +1,69 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
ScatterChart,
Scatter,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
ResponsiveContainer,
} from "recharts";
const data = [
{ x: 100, y: 200, z: 200 },
{ x: 120, y: 100, z: 260 },
{ x: 170, y: 300, z: 400 },
{ x: 140, y: 250, z: 280 },
{ x: 150, y: 400, z: 500 },
{ x: 110, y: 280, z: 200 },
];
const SimpleScatterChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Simple Scatter Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<ScatterChart
margin={{
top: 20,
right: 20,
bottom: 20,
left: 20,
}}
>
<CartesianGrid />
<XAxis type="number" dataKey="x" name="stature" unit="cm" />
<YAxis type="number" dataKey="y" name="weight" unit="kg" />
<Tooltip cursor={{ strokeDasharray: "3 3" }} />
<Scatter name="A school" data={data} fill="#8884d8" />
</ScatterChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default SimpleScatterChart;
@@ -0,0 +1,82 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
ScatterChart,
Scatter,
XAxis,
YAxis,
ZAxis,
CartesianGrid,
Tooltip,
Legend,
ResponsiveContainer,
} from 'recharts';
const data01 = [
{ x: 100, y: 200, z: 200 },
{ x: 120, y: 100, z: 260 },
{ x: 170, y: 300, z: 400 },
{ x: 140, y: 250, z: 280 },
{ x: 150, y: 400, z: 500 },
{ x: 110, y: 280, z: 200 },
];
const data02 = [
{ x: 200, y: 260, z: 240 },
{ x: 240, y: 290, z: 220 },
{ x: 190, y: 290, z: 250 },
{ x: 198, y: 250, z: 210 },
{ x: 180, y: 280, z: 260 },
{ x: 210, y: 220, z: 230 },
];
const ThreeDimScatterChart = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Three Dim Scatter Chart
</Typography>
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
<ScatterChart
margin={{
top: 20,
right: 20,
bottom: 20,
left: 20,
}}
>
<CartesianGrid />
<XAxis type="number" dataKey="x" name="stature" unit="cm" />
<YAxis type="number" dataKey="y" name="weight" unit="kg" />
<ZAxis type="number" dataKey="z" range={[60, 400]} name="score" unit="km" />
<Tooltip cursor={{ strokeDasharray: '3 3' }} />
<Legend />
<Scatter name="A school" data={data01} fill="#8884d8" shape="star" />
<Scatter name="B school" data={data02} fill="#82ca9d" shape="triangle" />
</ScatterChart>
</ResponsiveContainer>
</Card>
</>
);
};
export default ThreeDimScatterChart;
+116
View File
@@ -0,0 +1,116 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import Paper from '@mui/material/Paper';
import Masonry from '@mui/lab/Masonry';
import { styled } from '@mui/material/styles';
const Label = styled(Paper)(({ theme }) => ({
backgroundColor: theme.palette.mode === 'dark' ? '#1A2027' : '#fff',
...theme.typography.body2,
padding: theme.spacing(0.5),
textAlign: 'center',
color: theme.palette.text.secondary,
borderBottomLeftRadius: 0,
borderBottomRightRadius: 0,
}));
export default function GalleryContent() {
return (
<Box sx={{ width: '100%', minHeight: 829 }}>
<Masonry columns={3} spacing={2}>
{itemData.map((item, index) => (
<div key={index}>
<Label className="bg-black whiteColor">{index + 1}</Label>
<img
src={`${item.img}?w=500&auto=format`}
srcSet={`${item.img}?w=550&auto=format&dpr=2 2x`}
alt={item.title}
loading="lazy"
style={{
borderBottomLeftRadius: 4,
borderBottomRightRadius: 4,
display: 'block',
width: '100%',
}}
/>
</div>
))}
</Masonry>
</Box>
);
}
const itemData = [
{
img: 'https://images.unsplash.com/photo-1518756131217-31eb79b20e8f',
title: 'Fern',
},
{
img: 'https://images.unsplash.com/photo-1627308595229-7830a5c91f9f',
title: 'Snacks',
},
{
img: 'https://images.unsplash.com/photo-1597645587822-e99fa5d45d25',
title: 'Mushrooms',
},
{
img: 'https://images.unsplash.com/photo-1529655683826-aba9b3e77383',
title: 'Tower',
},
{
img: 'https://images.unsplash.com/photo-1471357674240-e1a485acb3e1',
title: 'Sea star',
},
{
img: 'https://images.unsplash.com/photo-1558642452-9d2a7deb7f62',
title: 'Honey',
},
{
img: 'https://images.unsplash.com/photo-1516802273409-68526ee1bdd6',
title: 'Basketball',
},
{
img: 'https://images.unsplash.com/photo-1551963831-b3b1ca40c98e',
title: 'Breakfast',
},
{
img: 'https://images.unsplash.com/photo-1627328715728-7bcc1b5db87d',
title: 'Tree',
},
{
img: 'https://images.unsplash.com/photo-1551782450-a2132b4ba21d',
title: 'Burger',
},
{
img: 'https://images.unsplash.com/photo-1522770179533-24471fcdba45',
title: 'Camera',
},
{
img: 'https://images.unsplash.com/photo-1444418776041-9c7e33cc5a9c',
title: 'Coffee',
},
{
img: 'https://images.unsplash.com/photo-1627000086207-76eabf23aa2e',
title: 'Camping Car',
},
{
img: 'https://images.unsplash.com/photo-1533827432537-70133748f5c8',
title: 'Hats',
},
{
img: 'https://images.unsplash.com/photo-1567306301408-9b74779a11af',
title: 'Tomato basil',
},
{
img: 'https://images.unsplash.com/photo-1627328561499-a3584d4ee4f7',
title: 'Mountain',
},
{
img: 'https://images.unsplash.com/photo-1589118949245-7d38baf380d6',
title: 'Bike',
},
{
img: 'https://images.unsplash.com/photo-1589118949245-7d38baf380d6',
title: 'Bike',
},
];
@@ -0,0 +1,853 @@
import * as React from "react";
import Card from "@mui/material/Card";
import { Box, Typography } from "@mui/material";
import Table from "@mui/material/Table";
import TableBody from "@mui/material/TableBody";
import TableCell from "@mui/material/TableCell";
import TableContainer from "@mui/material/TableContainer";
import TableHead from "@mui/material/TableHead";
import TableRow from "@mui/material/TableRow";
import Paper from "@mui/material/Paper";
import Button from "@mui/material/Button";
const InvoiceDetailsContent = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
}}
>
{/* Invoice Details */}
<Box>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
mb: "15px",
}}
>
Invoice Details
</Typography>
{/* Billed To: */}
<Box mb={3}>
<Typography
as="h3"
sx={{
fontSize: 15,
fontWeight: 500,
mb: "5px",
}}
>
Billed To:
</Typography>
<Typography
sx={{
fontSize: 13,
fontWeight: 500,
mb: "5px",
}}
>
Thomas Adison
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
32104 Main
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
Apt. 4c
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
Springfield ST 54321
</Typography>
</Box>
{/* Payment : */}
<Box mb={3}>
<Typography
as="h3"
sx={{
fontSize: 15,
fontWeight: 500,
mb: "5px",
}}
>
Payment :
</Typography>
<Typography
sx={{
fontSize: 13,
fontWeight: 500,
mb: "5px",
}}
>
Total Due: $12,110.55
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
Bank Name: American Bank
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
Country: United States
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
IBAN: ETD95476213874685
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
SWIFT code: BR91905
</Typography>
</Box>
</Box>
{/* Invoice id */}
<Box align="end">
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
mb: "15px",
}}
>
Invoice #4987
</Typography>
{/* Shipped To: */}
<Box mb={3}>
<Typography
as="h3"
sx={{
fontSize: 15,
fontWeight: 500,
mb: "5px",
}}
>
Shipped To:
</Typography>
<Typography
sx={{
fontSize: 13,
fontWeight: 500,
mb: "5px",
}}
>
Thomas Adison
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
32104 Main
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
Apt. 4c
</Typography>
<Typography
sx={{
fontSize: 13,
mb: "5px",
}}
>
Springfield ST 54321
</Typography>
</Box>
{/* Order Date : */}
<Box mb={3}>
<Typography
as="h3"
sx={{
fontSize: 15,
fontWeight: 500,
mb: "5px",
}}
>
Order Date:
</Typography>
<Typography
sx={{
fontSize: 13,
fontWeight: 500,
mb: "5px",
}}
>
October 14, 2021
</Typography>
</Box>
</Box>
</Box>
{/* Order Summary */}
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "10px",
}}
>
Order Summary
</Typography>
<TableContainer
component={Paper}
sx={{
boxShadow: "none",
}}
>
<Table sx={{ minWidth: 450 }} className="dark-table">
<TableHead sx={{ background: "#F7FAFF" }}>
<TableRow>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
}}
>
Item
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
}}
>
Quantity
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
}}
>
Unit Price
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
}}
>
Price
</TableCell>
</TableRow>
</TableHead>
<TableBody>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<img
src="/images/product1.png"
alt="Product Img"
width={50}
className="borderRadius10"
/>
<Typography
sx={{
fontWeight: "500",
fontSize: "13px",
}}
className='ml-10px'
>
Laptop Macos Pro
</Typography>
</Box>
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
2
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
200
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
$400
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<img
src="/images/product2.png"
alt="Product Img"
width={50}
className="borderRadius10"
/>
<Typography
sx={{
fontWeight: "500",
fontSize: "13px",
}}
className='ml-10px'
>
Smart Camera XD6
</Typography>
</Box>
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
$200.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<img
src="/images/product3.png"
alt="Product Img"
width={50}
className="borderRadius10"
/>
<Typography
sx={{
fontWeight: "500",
fontSize: "12px",
}}
className='ml-10px'
>
Pixi 8 Wireless Airphone
</Typography>
</Box>
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
$120.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
component="th"
scope="row"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<img
src="/images/product4.png"
alt="Product Img"
width={50}
className="borderRadius10"
/>
<Typography
sx={{
fontWeight: "500",
fontSize: "13px",
}}
className='ml-10px'
>
Jebble Smart Watch
</Typography>
</Box>
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
$120.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
component="th"
scope="row"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<img
src="/images/product5.png"
alt="Product Img"
width={50}
className="borderRadius10"
/>
<Typography
sx={{
fontWeight: "500",
fontSize: "13px",
}}
className='ml-10px'
>
Airpod
</Typography>
</Box>
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
1
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
$120.00
</TableCell>
</TableRow>
{/* Sub Total */}
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
align="right"
colSpan={3}
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
Sub Total :
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
$960.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
colSpan={3}
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
Discount :
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
$60.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
colSpan={3}
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
Shipping Charge :
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
$50.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
colSpan={3}
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
Estimated Tax :
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
}}
>
$00.00
</TableCell>
</TableRow>
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
colSpan={3}
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "8px 10px",
fontWeight: "500",
color: "#000",
}}
>
Total (USD) :
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "8px 10px",
fontWeight: "500",
color: "#000",
}}
>
$850.00
</TableCell>
</TableRow>
{/* Print & Button Button */}
<TableRow
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
>
<TableCell
align="right"
colSpan={4}
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
fontWeight: "500",
color: "#000",
}}
>
<Button
color="primary"
style={{
background: "rgba(117, 127, 239, 0.1)",
border: "1px solid rgba(117, 127, 239, 0.1)",
borderRadius: "8px",
textTransform: "capitalize",
fontWeight: "500",
padding: "6px 20px",
}}
>
Print
</Button>
<Button
style={{
background: "#757FEF",
border: "1px solid #757FEF",
borderRadius: "8px",
textTransform: "capitalize",
fontWeight: "500",
color: "#fff",
padding: "6px 20px",
}}
className='ml-10px'
>
download
</Button>
</TableCell>
</TableRow>
</TableBody>
</Table>
</TableContainer>
</Card>
</>
);
};
export default InvoiceDetailsContent;
+627
View File
@@ -0,0 +1,627 @@
import * as React from "react";
import { Box } from "@mui/material";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import PropTypes from "prop-types";
import { useTheme } from "@mui/material/styles";
import Table from "@mui/material/Table";
import TableHead from "@mui/material/TableHead";
import TableBody from "@mui/material/TableBody";
import TableCell from "@mui/material/TableCell";
import TableContainer from "@mui/material/TableContainer";
import TableFooter from "@mui/material/TableFooter";
import TablePagination from "@mui/material/TablePagination";
import TableRow from "@mui/material/TableRow";
import Paper from "@mui/material/Paper";
import IconButton from "@mui/material/IconButton";
import FirstPageIcon from "@mui/icons-material/FirstPage";
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
import LastPageIcon from "@mui/icons-material/LastPage";
import Checkbox from '@mui/material/Checkbox';
import Tooltip from "@mui/material/Tooltip";
import DeleteIcon from "@mui/icons-material/Delete";
import RemoveRedEyeIcon from '@mui/icons-material/RemoveRedEye';
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
const label = { inputProps: { 'aria-label': 'Checkbox demo' } };
function InvoiceList(props) {
const theme = useTheme();
const { count, page, rowsPerPage, onPageChange } = props;
const handleFirstPageButtonClick = (event) => {
onPageChange(event, 0);
};
const handleBackButtonClick = (event) => {
onPageChange(event, page - 1);
};
const handleNextButtonClick = (event) => {
onPageChange(event, page + 1);
};
const handleLastPageButtonClick = (event) => {
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
};
return (
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
<IconButton
onClick={handleFirstPageButtonClick}
disabled={page === 0}
aria-label="first page"
>
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
</IconButton>
<IconButton
onClick={handleBackButtonClick}
disabled={page === 0}
aria-label="previous page"
>
{theme.direction === "rtl" ? (
<KeyboardArrowRight />
) : (
<KeyboardArrowLeft />
)}
</IconButton>
<IconButton
onClick={handleNextButtonClick}
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
aria-label="next page"
>
{theme.direction === "rtl" ? (
<KeyboardArrowLeft />
) : (
<KeyboardArrowRight />
)}
</IconButton>
<IconButton
onClick={handleLastPageButtonClick}
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
aria-label="last page"
>
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
</IconButton>
</Box>
);
}
InvoiceList.propTypes = {
count: PropTypes.number.isRequired,
onPageChange: PropTypes.func.isRequired,
page: PropTypes.number.isRequired,
rowsPerPage: PropTypes.number.isRequired,
};
function createData(
orderID,
productName,
clientName,
clientImg,
email,
issuedDate,
total,
balance,
badgeClass,
) {
return {
orderID,
productName,
clientName,
clientImg,
email,
issuedDate,
total,
balance,
badgeClass,
};
}
const rows = [
createData(
"#14250",
"Laptop Macos Pro",
"Colin Firth",
"/images/user1.png",
"colinfirth@gmail.com",
"10 Jan 2023",
"$845",
"Paid",
"successBadge",
),
createData(
"#14251",
"Smart Camera XD6",
"Wade Dave",
"/images/user2.png",
"wadedave@gmail.com",
"11 Jan 2023",
"$189.50",
"Not Paid",
"dangerBadge",
),
createData(
"#14252",
"Pixi 8 Wireless Airphone",
"Seth Riley",
"/images/user3.png",
"sethriley@gmail.com",
"12 Jan 2023",
"$250.50",
"Paid",
"successBadge",
),
createData(
"#14253",
"Jebble Smart Watch",
"Gilbert Dan",
"/images/user4.png",
"gilbertdan@gmail.com",
"13 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14254",
"Admas Airpod x-Zon",
"Joshua Glen",
"/images/user5.png",
"joshuaGlen@gmail.com",
"14 Jan 2023",
"$289.50",
"Not Paid",
"dangerBadge",
),
createData(
"#14255",
"Smart Satch F8 Pro",
"Lewis Milton",
"/images/user6.png",
"lewisMilton@gmail.com",
"15 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14256",
"Nord Fold ZL",
"Liam Ethan",
"/images/user7.png",
"liamEthan@gmail.com",
"16 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14257",
"Wall Clock Cimbina",
"Ramon Miles",
"/images/user8.png",
"ramonMiles@gmail.com",
"17 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14258",
"Galaxo T6 Munsun",
"Brian Roberto",
"/images/user9.png",
"ramonMiles@gmail.com",
"18 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14259",
"Laptop Macos Pro",
"Colin Firth",
"/images/user10.png",
"colinFirth@gmail.com",
"19 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14260",
"Smart Camera XD6",
"Wade Dave",
"/images/user11.png",
"wadeDave@gmail.com",
"20 Jan 2023",
"$189.50",
"Paid",
"successBadge",
),
createData(
"#14261",
"Pixi 8 Wireless Airphone",
"Seth Riley",
"/images/user12.png",
"wadeDave@gmail.com",
"21 Jan 2023",
"$250.50",
"Paid",
"successBadge",
),
createData(
"#14262",
"Jebble Smart Watch",
"Gilbert Dan",
"/images/user13.png",
"wadeDave@gmail.com",
"22 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14263",
"Admas Airpod x-Zon",
"Joshua Glen",
"/images/user14.png",
"joshuaGlen@gmail.com",
"23 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14264",
"Smart Satch F8 Pro",
"Lewis Milton",
"/images/user15.png",
"lewisMilton@gmail.com",
"24 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
createData(
"#14265",
"Nord Fold ZL",
"Liam Ethan",
"/images/product7.png",
"liamEthan@gmail.com",
"25 Jan 2023",
"$289.50",
"Paid",
"successBadge",
),
].sort((a, b) => (a.orderID < b.orderID ? -1 : 1));
export default function InvoiceLists() {
const [page, setPage] = React.useState(0);
const [rowsPerPage, setRowsPerPage] = React.useState(10);
// Avoid a layout jump when reaching the last page with empty rows.
const emptyRows =
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
const handleChangePage = (event, newPage) => {
setPage(newPage);
};
const handleChangeRowsPerPage = (event) => {
setRowsPerPage(parseInt(event.target.value, 10));
setPage(0);
};
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px 25px 10px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
justifyContent: "space-between",
paddingBottom: "10px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
}}
>
Invoice Lists
</Typography>
</Box>
<TableContainer
component={Paper}
sx={{
boxShadow: "none",
}}
>
<Table
sx={{ minWidth: 900 }}
aria-label="custom pagination table"
className="dark-table"
>
<TableHead sx={{ background: "#F7FAFF" }}>
<TableRow>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
#
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
Product Name
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
Client Name
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
Issued Date
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
Total
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
Balance
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "14px",
padding: "16px 10px",
}}
>
Action
</TableCell>
</TableRow>
</TableHead>
<TableBody>
{(rowsPerPage > 0
? rows.slice(
page * rowsPerPage,
page * rowsPerPage + rowsPerPage
)
: rows
).map((row) => (
<TableRow key={row.orderID}>
<TableCell
sx={{
fontWeight: "500",
fontSize: "13px",
borderBottom: "1px solid #F7FAFF",
padding: "8px 10px",
}}
>
<Checkbox {...label} size="small" />
{row.orderID}
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
{row.productName}
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<img
src={row.clientImg}
alt="Product Img"
style={{ width: '40x', height: '40px'}}
className="borRadius100"
/>
<Box className="ml-1">
<Typography
sx={{
fontWeight: "500",
fontSize: "13px",
}}
>
{row.clientName}
</Typography>
<Typography
sx={{
fontSize: "12px",
}}
>
{row.email}
</Typography>
</Box>
</Box>
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
{row.issuedDate}
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
padding: "8px 10px",
}}
>
{row.total}
</TableCell>
<TableCell
align="center"
sx={{
fontWeight: 500,
borderBottom: "1px solid #F7FAFF",
fontSize: "11px",
padding: "8px 10px",
}}
>
<span className={row.badgeClass}>
{row.balance}
</span>
</TableCell>
<TableCell
align="right"
sx={{
borderBottom: "1px solid #F7FAFF",
padding: "8px 10px",
}}
>
<Box
sx={{
display: "inline-block",
}}
>
<Tooltip title="Delete" placement="top">
<IconButton
aria-label="remove"
size="small"
color="danger"
className="danger"
>
<DeleteIcon fontSize="inherit" />
</IconButton>
</Tooltip>
<Tooltip title="View" placement="top">
<IconButton
aria-label="view"
size="small"
color="info"
className="info"
>
<RemoveRedEyeIcon fontSize="inherit" />
</IconButton>
</Tooltip>
<Tooltip title="Rename" placement="top">
<IconButton
aria-label="rename"
size="small"
color="primary"
className="primary"
>
<DriveFileRenameOutlineIcon fontSize="inherit" />
</IconButton>
</Tooltip>
</Box>
</TableCell>
</TableRow>
))}
{emptyRows > 0 && (
<TableRow style={{ height: 53 * emptyRows }}>
<TableCell
colSpan={7}
style={{ borderBottom: "1px solid #F7FAFF" }}
/>
</TableRow>
)}
</TableBody>
<TableFooter>
<TableRow>
<TablePagination
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
colSpan={8}
count={rows.length}
rowsPerPage={rowsPerPage}
page={page}
SelectProps={{
inputProps: {
"aria-label": "rows per page",
},
native: true,
}}
onPageChange={handleChangePage}
onRowsPerPageChange={handleChangeRowsPerPage}
ActionsComponent={InvoiceList}
style={{ borderBottom: "none" }}
/>
</TableRow>
</TableFooter>
</Table>
</TableContainer>
</Card>
</>
);
}
+105
View File
@@ -0,0 +1,105 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
ComposableMap,
Geographies,
Geography,
Marker
} from "react-simple-maps";
const geoUrl =
"https://raw.githubusercontent.com/deldersveld/topojson/master/continents/south-america.json";
const markers = [
{
markerOffset: -30,
name: "Buenos Aires",
coordinates: [-58.3816, -34.6037]
},
{ markerOffset: 15, name: "La Paz", coordinates: [-68.1193, -16.4897] },
{ markerOffset: 15, name: "Brasilia", coordinates: [-47.8825, -15.7942] },
{ markerOffset: 15, name: "Santiago", coordinates: [-70.6693, -33.4489] },
{ markerOffset: 15, name: "Bogota", coordinates: [-74.0721, 4.711] },
{ markerOffset: 15, name: "Quito", coordinates: [-78.4678, -0.1807] },
{ markerOffset: -30, name: "Georgetown", coordinates: [-58.1551, 6.8013] },
{ markerOffset: -30, name: "Asuncion", coordinates: [-57.5759, -25.2637] },
{ markerOffset: 15, name: "Paramaribo", coordinates: [-55.2038, 5.852] },
{ markerOffset: 15, name: "Montevideo", coordinates: [-56.1645, -34.9011] },
{ markerOffset: 15, name: "Caracas", coordinates: [-66.9036, 10.4806] },
{ markerOffset: 15, name: "Lima", coordinates: [-77.0428, -12.0464] }
];
const BasicMarkers = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Basic Markers
</Typography>
<ComposableMap
projection="geoAzimuthalEqualArea"
projectionConfig={{
rotate: [58, 20, 0],
scale: 400
}}
>
<Geographies geography={geoUrl}>
{({ geographies }) =>
geographies.map((geo) => (
<Geography
key={geo.rsmKey}
geography={geo}
fill="#EAEAEC"
stroke="#D6D6DA"
/>
))
}
</Geographies>
{markers.map(({ name, coordinates, markerOffset }) => (
<Marker key={name} coordinates={coordinates}>
<g
fill="none"
stroke="#FF5533"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(-12, -24)"
>
<circle cx="12" cy="10" r="3" />
<path d="M12 21.7C17.3 17 20 13 20 10a8 8 0 1 0-16 0c0 3 2.7 6.9 8 11.7z" />
</g>
<text
textAnchor="middle"
y={markerOffset}
style={{ fontFamily: "system-ui", fill: "#5D5A6D" }}
>
{name}
</text>
</Marker>
))}
</ComposableMap>
</Card>
</>
);
};
export default BasicMarkers;
@@ -0,0 +1,67 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import {
ComposableMap,
Geographies,
Geography,
Graticule
} from "react-simple-maps";
const geoUrl =
"https://raw.githubusercontent.com/deldersveld/topojson/master/continents/europe.json";
const EuropeMapWithGraticule = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Europe Map With Graticule
</Typography>
<ComposableMap
width={800}
height={800}
projection="geoAzimuthalEqualArea"
projectionConfig={{
rotate: [-10.0, -53.0, 0],
scale: 1200
}}
>
<Graticule stroke="#EAEAEC" />
<Geographies geography={geoUrl}>
{({ geographies }) =>
geographies.map((geo) => (
<Geography
key={geo.rsmKey}
geography={geo}
fill="#9998A3"
stroke="#EAEAEC"
/>
))
}
</Geographies>
</ComposableMap>
</Card>
</>
);
};
export default EuropeMapWithGraticule;
+44
View File
@@ -0,0 +1,44 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
const GoogleMap = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Google Map
</Typography>
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2647.1593668385253!2d-123.36034798417073!3d48.4342810384278!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x548f739ed2a5f911%3A0x1e302c1ef0a5934c!2sQuadra%20St%2C%20Victoria%2C%20BC%2C%20Canada!5e0!3m2!1sen!2sbd!4v1678856605864!5m2!1sen!2sbd"
width="100%"
height="500"
style={{ border: 0 }}
allowFullScreen=""
loading="lazy"
referrerPolicy="no-referrer-when-downgrade"
></iframe>
</Card>
</>
);
};
export default GoogleMap;
@@ -0,0 +1,209 @@
import React from "react";
import Grid from "@mui/material/Grid";
import Card from "@mui/material/Card";
import { Box, Typography } from "@mui/material";
import Button from "@mui/material/Button";
import Link from "next/link";
import styles from "@/components/Pages/Pricing/PricingPlanStyle1.module.css";
const priceInfo = [
{
id: 1,
title: "Basic Plan",
subTitle: "A simple start for everyone",
icon: "ri-shield-check-fill",
price: "50",
duration: "per month",
priceLists: [
{
title: "Free Live Support",
},
{
title: "30GB Disk Space",
},
{
title: "Scalable Bandwith",
},
{
title: "Free Setup",
},
],
},
{
id: 2,
title: "Professional Plan",
subTitle: "A simple start for everyone",
icon: "ri-pie-chart-2-line",
price: "50",
duration: "per month",
priceLists: [
{
title: "Free Live Support",
},
{
title: "35GB Disk Space",
},
{
title: "Scalable Bandwith",
},
{
title: "Free Setup",
},
],
},
{
id: 3,
title: "Enterprise Plan",
subTitle: "A simple start for everyone",
icon: "ri-briefcase-line",
price: "150",
duration: "per month",
priceLists: [
{
title: "Free Live Support",
},
{
title: "40GB Disk Space",
},
{
title: "Scalable Bandwith",
},
{
title: "Free Setup",
},
],
},
{
id: 4,
title: "Unlimited Plan",
subTitle: "A simple start for everyone",
icon: "ri-star-half-line",
price: "200",
duration: "per month",
priceLists: [
{
title: "Free Live Support",
},
{
title: "50GB Disk Space",
},
{
title: "Scalable Bandwith",
},
{
title: "Free Setup",
},
],
},
];
const PricingPlanStyle1 = () => {
return (
<>
<Typography
as="h3"
sx={{
fontSize: 20,
fontWeight: 500,
mb: "20px",
borderBottom: "1px solid #eee",
paddingBottom: "10px",
}}
className="for-dark-bottom-border"
>
Pricing Plans - 1
</Typography>
<Grid
container
justifyContent="center"
rowSpacing={1}
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
>
{priceInfo.map((info) => (
<Grid item xs={12} sm={6} md={4} lg={4} xl={3} key={info.id}>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
justifyContent: "space-between",
mb: "20px",
}}
>
<Box>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
mb: "5px",
}}
>
{info.title}
</Typography>
<Typography
sx={{
fontSize: 14,
}}
>
{info.subTitle}
</Typography>
</Box>
<div className={styles.icon}>
<i className={info.icon}></i>
</div>
</Box>
<Typography
as="h3"
sx={{
fontSize: 32,
fontWeight: 700,
mb: "20px",
}}
>
${info.price}/{" "}
<span style={{ fontSize: "12px" }}>{info.duration}</span>
</Typography>
<Box align="center" mb={3}>
<Link href="#" className="text-decoration-none">
<Button
variant="contained"
sx={{
textTransform: "capitalize",
borderRadius: "8px",
fontSize: "14px",
p: "10px 25px",
color: "#fff !important",
}}
>
Sign Up Now
</Button>
</Link>
</Box>
<ul className={styles.priceList}>
{info.priceLists.map((list) => (
<li key={list.title}>{list.title}</li>
))}
</ul>
</Card>
</Grid>
))}
</Grid>
</>
);
};
export default PricingPlanStyle1;
@@ -0,0 +1,37 @@
.icon {
color: var(--primaryColor);
font-size: 30px;
}
.priceList {
list-style-type: none;
padding: 0;
margin: 0;
}
.priceList li {
margin-bottom: 15px;
position: relative;
padding-left: 16px;
}
.priceList li:last-child {
margin-bottom: 0;
}
.priceList li:before {
content: '';
background-color: var(--primaryColor);
position: absolute;
top: 4px;
left: 0;
width: 10px;
height: 10px;
border-radius: 100%;
}
/* For RTL Style */
[dir="rtl"] .priceList li {
padding-left: 0;
padding-right: 16px;
}
[dir="rtl"] .priceList li:before {
left: auto;
right: 0;
}
@@ -0,0 +1,196 @@
import React from "react";
import Grid from "@mui/material/Grid";
import Card from "@mui/material/Card";
import { Box, Typography } from "@mui/material";
import Button from "@mui/material/Button";
import Link from "next/link";
import styles from "@/components/Pages/Pricing/PricingPlanStyle2.module.css";
const priceInfo = [
{
id: 1,
title: "Basic Plan",
subTitle:
"Perfect for an individual or a small team starting to get bigger",
price: "50",
duration: "per month",
priceLists: [
{
title: "100 Responses a Month",
},
{
title: "Unlimited Forms and Surveys",
},
{
title: "Unlimited Fields",
},
{
title: "Basic Form Creation Tools",
},
{
title: "Up to 2 Subdomains",
},
],
},
{
id: 2,
title: "Professional Plan",
subTitle:
"Perfect for an individual or a small team starting to get bigger",
price: "50",
duration: "per month",
priceLists: [
{
title: "120 Responses a Month",
},
{
title: "Unlimited Forms and Surveys",
},
{
title: "Unlimited Fields",
},
{
title: "Basic Form Creation Tools",
},
{
title: "Up to 5 Subdomains",
},
],
},
{
id: 3,
title: "Enterprise Plan",
subTitle:
"Perfect for an individual or a small team starting to get bigger",
price: "150",
duration: "per month",
priceLists: [
{
title: "150 Responses a Month",
},
{
title: "Unlimited Forms and Surveys",
},
{
title: "Unlimited Fields",
},
{
title: "Basic Form Creation Tools",
},
{
title: "Up to 10 Subdomains",
},
],
},
];
const PricingPlanStyle2 = () => {
return (
<>
<Typography
as="h3"
sx={{
fontSize: 20,
fontWeight: 500,
mt: "20px",
mb: "20px",
borderBottom: "1px solid #eee",
paddingBottom: "10px",
}}
className="for-dark-bottom-border"
>
Pricing Plans - 2
</Typography>
<Grid
container
justifyContent="center"
rowSpacing={1}
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
>
{priceInfo.map((info) => (
<Grid item xs={12} sm={6} md={4} lg={4} xl={4} key={info.id}>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "40px 25px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
justifyContent: "space-between",
mb: "20px",
}}
>
<Box>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
mb: "5px",
}}
>
{info.title}
</Typography>
<Typography
sx={{
fontSize: 14,
}}
>
{info.subTitle}
</Typography>
</Box>
</Box>
<Typography
as="h3"
sx={{
fontSize: 32,
fontWeight: 700,
mb: "20px",
}}
>
${info.price}/{" "}
<span style={{ fontSize: "12px" }}>{info.duration}</span>
</Typography>
<Box align="center" mb={4}>
<Link href="#" className="text-decoration-none">
<Button
variant="contained"
fullWidth
sx={{
textTransform: "capitalize",
borderRadius: "30px",
fontSize: "14px",
p: "12px 20px",
color: "#fff !important",
}}
>
Get Started
</Button>
</Link>
</Box>
<ul className={styles.priceList}>
{info.priceLists.map((list) => (
<li key={list.title}>
<i className="ri-check-line"></i> {list.title}
</li>
))}
</ul>
</Card>
</Grid>
))}
</Grid>
</>
);
};
export default PricingPlanStyle2;
@@ -0,0 +1,34 @@
.priceList {
list-style-type: none;
padding: 0;
margin: 0;
}
.priceList li {
margin-bottom: 15px;
position: relative;
padding-left: 30px;
}
.priceList li:last-child {
margin-bottom: 0;
}
.priceList li i {
background-color: rgba(117, 127, 239, 0.1);
position: absolute;
top: 0px;
left: 0;
width: 22px;
height: 22px;
line-height: 22px;
border-radius: 100%;
text-align: center;
}
/* For RTL Style */
[dir="rtl"] .priceList li {
padding-left: 0;
padding-right: 30px;
}
[dir="rtl"] .priceList li i {
left: auto;
right: 0;
}
@@ -0,0 +1,40 @@
.timelineList .tList {
position: relative;
margin-bottom: 15px;
padding-bottom: 15px;
border-bottom: 1px solid #F7FAFF;
display: flex;
align-items: center;
justify-content: space-between;
}
.timelineList .tList:last-child {
border: none;
padding-bottom: 0;
margin-bottom: 0;
}
.timelineList .tList .content {
display: flex;
align-items: center;
}
.timelineList .tList .content img {
margin-right: 10px;
width: 27px;
}
.timelineList .tList .content h5 {
margin: 0;
color: #5B5B98;
font-size: 13px;
font-weight: 500;
}
.timelineList .tList .date {
color: #A9A9C8;
font-size: 12px;
margin: 0;
}
@media only screen and (min-width: 1800px) {
.timelineList .tList {
margin-bottom: 16.5px;
padding-bottom: 16.5px;
}
}
@@ -0,0 +1,158 @@
import React from "react";
import { Box, Typography } from "@mui/material";
import Card from "@mui/material/Card";
import Menu from "@mui/material/Menu";
import MenuItem from "@mui/material/MenuItem";
import IconButton from "@mui/material/IconButton";
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
import styles from "@/components/Dashboard/ProjectManagement/ActivityTimeline/ActivityTimeline.module.css";
const ActivityTimelineData = [
{
id: "1",
image: '/images/pdf-icon.png',
title: "Donald updated the status",
time: "54 min ago",
},
{
id: "2",
image: '/images/man.png',
title: "Design new UI and check sales",
time: "10 hours ago",
},
{
id: "3",
title: "James Bangs Client Meeting",
image: '/images/small-product-img.png',
time: "5 min ago",
},
{
id: "4",
title: "Joseph Rust opened new showcase",
image: '/images/small-product-img2.png',
time: "10 min ago",
},
{
id: "5",
title: "Brust opened new showcase",
image: '/images/small-product-img3.png',
time: "15 min ago",
},
{
id: "6",
title: "Create a new project for client",
image: '/images/man.png',
time: "20 min ago",
},
];
const ActivityTimeline = () => {
const [anchorEl, setAnchorEl] = React.useState(null);
const open = Boolean(anchorEl);
const handleClick = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
borderBottom: "1px solid #EEF0F7",
paddingBottom: "10px",
mb: "20px",
}}
className="for-dark-bottom-border"
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
}}
>
Activity Timeline
</Typography>
<Box>
<IconButton
onClick={handleClick}
size="small"
aria-controls={open ? "account-menu" : undefined}
aria-haspopup="true"
aria-expanded={open ? "true" : undefined}
>
<MoreHorizIcon />
</IconButton>
</Box>
<Menu
anchorEl={anchorEl}
id="account-menu"
open={open}
onClose={handleClose}
onClick={handleClose}
PaperProps={{
elevation: 0,
sx: {
overflow: "visible",
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
mt: 1.5,
"& .MuiAvatar-root": {
width: 32,
height: 32,
ml: -0.5,
mr: 1,
},
"&:before": {
content: '""',
display: "block",
position: "absolute",
top: 0,
right: 14,
width: 10,
height: 10,
bgcolor: "background.paper",
transform: "translateY(-50%) rotate(45deg)",
zIndex: 0,
},
},
}}
transformOrigin={{ horizontal: "right", vertical: "top" }}
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
>
<MenuItem>Last 15 Days</MenuItem>
<MenuItem>Last Month</MenuItem>
<MenuItem>Last Year</MenuItem>
</Menu>
</Box>
<div className={styles.timelineList}>
{ActivityTimelineData.slice(0, 6).map((timeline) => (
<div className={styles.tList} key={timeline.id}>
<div className={styles.content}>
<img src={timeline.image} alt="Icon" />
<h5>{timeline.title}</h5>
</div>
<p className={styles.date}>{timeline.time}</p>
</div>
))}
</div>
</Card>
</>
);
};
export default ActivityTimeline;
+87
View File
@@ -0,0 +1,87 @@
import React from "react";
import Grid from "@mui/material/Grid";
import Box from "@mui/material/Box";
import Card from "@mui/material/Card";
import Typography from "@mui/material/Typography";
const FeaturesData = [
{
id: "1",
subTitle: "Completed Projects",
title: "24k",
image: "/images/users-icon.png",
},
{
id: "2",
subTitle: "Pending Projects",
title: "17",
image: "/images/graph-icon.png",
},
{
id: "3",
subTitle: "Total Revenue",
title: "16.2M",
image: "/images/work-icon.png",
}
];
const Features = () => {
return (
<>
<Grid
container
justifyContent="center"
rowSpacing={1}
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
>
{FeaturesData.map((feature) => (
<Grid item xs={12} sm={6} md={4} lg={4} key={feature.id}>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "30px 20px 20px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
}}
>
<Box
sx={{
width: "58px",
height: "58px",
lineHeight: "85px",
background: "rgba(85, 112, 241, 0.12)",
borderRadius: "8px",
textAlign: "center",
}}
className='mr-15px'
>
<img src={feature.image} alt="Icon" />
</Box>
<Box>
<Typography variant="p" sx={{ fontSize: '13px' }}>
{feature.subTitle}
</Typography>
<Typography
variant="h1"
sx={{ fontSize: 28, fontWeight: 700, mt: "5px" }}
>
{feature.title}
</Typography>
</Box>
</Box>
</Card>
</Grid>
))}
</Grid>
</>
);
};
export default Features;
@@ -0,0 +1,76 @@
import React, { Component } from "react";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
import styles from "@/components/Dashboard/Analytics/Profile/ImpressionShare.module.css"
class ImpressionShare extends Component {
constructor(props) {
super(props);
this.state = {
series: [45],
options: {
chart: {
type: "radialBar",
offsetY: -20,
sparkline: {
enabled: true,
},
},
plotOptions: {
radialBar: {
startAngle: -110,
endAngle: 110,
track: {
background: "#e7e7e7",
strokeWidth: "90%",
margin: 5,
},
dataLabels: {
name: {
show: false,
},
value: {
offsetY: -2,
fontSize: "15px",
fontWeight: "500",
color: '#5B5B98'
},
},
},
},
grid: {
padding: {
top: -10,
},
},
fill: {
colors: ["#00B69B"],
},
labels: ["Average Results"],
},
};
}
render() {
return (
<>
<div className={styles.chartBox}>
<Chart
options={this.state.options}
series={this.state.series}
type="radialBar"
height={100}
// width={150}
/>
<h4>Excellent</h4>
<h3>Impression Share</h3>
</div>
</>
);
}
}
export default ImpressionShare;
@@ -0,0 +1,24 @@
.chartBox {
text-align: center;
top: 12px;
position: relative;
}
.chartBox h4 {
margin: 0;
color: #00B69B;
font-weight: 500;
font-size: 11px;
line-height: 14px;
position: absolute;
bottom: 30px;
left: 0;
right: 0;
}
.chartBox h3 {
margin: 0;
color: #5B5B98;
font-weight: 500;
font-size: 12px;
position: relative;
bottom: 7px;
}
+415
View File
@@ -0,0 +1,415 @@
import React from "react";
import { Box, Typography } from "@mui/material";
import Card from "@mui/material/Card";
import IconButton from "@mui/material/IconButton";
import PropTypes from "prop-types";
import { useTheme } from "@mui/material/styles";
import Table from "@mui/material/Table";
import TableHead from "@mui/material/TableHead";
import TableBody from "@mui/material/TableBody";
import TableCell from "@mui/material/TableCell";
import TableContainer from "@mui/material/TableContainer";
import TableFooter from "@mui/material/TableFooter";
import TablePagination from "@mui/material/TablePagination";
import TableRow from "@mui/material/TableRow";
import Paper from "@mui/material/Paper";
import FirstPageIcon from "@mui/icons-material/FirstPage";
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
import LastPageIcon from "@mui/icons-material/LastPage";
import Tooltip from "@mui/material/Tooltip";
function MyTask(props) {
const theme = useTheme();
const { count, page, rowsPerPage, onPageChange } = props;
const handleFirstPageButtonClick = (event) => {
onPageChange(event, 0);
};
const handleBackButtonClick = (event) => {
onPageChange(event, page - 1);
};
const handleNextButtonClick = (event) => {
onPageChange(event, page + 1);
};
const handleLastPageButtonClick = (event) => {
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
};
return (
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
<IconButton
onClick={handleFirstPageButtonClick}
disabled={page === 0}
aria-label="first page"
>
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
</IconButton>
<IconButton
onClick={handleBackButtonClick}
disabled={page === 0}
aria-label="previous page"
>
{theme.direction === "rtl" ? (
<KeyboardArrowRight />
) : (
<KeyboardArrowLeft />
)}
</IconButton>
<IconButton
onClick={handleNextButtonClick}
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
aria-label="next page"
>
{theme.direction === "rtl" ? (
<KeyboardArrowLeft />
) : (
<KeyboardArrowRight />
)}
</IconButton>
<IconButton
onClick={handleLastPageButtonClick}
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
aria-label="last page"
>
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
</IconButton>
</Box>
);
}
MyTask.propTypes = {
count: PropTypes.number.isRequired,
onPageChange: PropTypes.func.isRequired,
page: PropTypes.number.isRequired,
rowsPerPage: PropTypes.number.isRequired,
};
function createData(name, startDate, endDate, status, badgeClass, budget) {
return {
name,
startDate,
endDate,
status,
badgeClass,
budget
};
}
const rows = [
createData(
"Public Beta Release",
"1 Jan 2022",
"1 Apr 2022",
"Completed",
"successBadge",
"$1250"
),
createData(
"Fix Platform Errors",
"1 Mar 2022",
"1 May 2022",
"Completed",
"successBadge",
"$1550"
),
createData(
"Launch our Mobile App",
"15 Apr 2022",
"15 Jun 2022",
"On Going",
"primaryBadge",
"$2500"
),
createData(
"Add the New Pricing Page",
"15 May 2022",
"15 Jun 2022",
"Pending",
"dangerBadge",
"$100"
),
createData(
"Redesign New Online Shop",
"15 Jun 2022",
"15 Aug 2022",
"On Going",
"primaryBadge",
"$1000"
),
createData(
"Material Ui Design",
"15 Jul 2022",
"15 Sep 2022",
"On Going",
"primaryBadge",
"$2200"
),
createData(
"Add Progress Track",
"15 Mar 2022",
"15 May 2022",
"Completed",
"successBadge",
"$1400"
),
createData(
"Web Design",
"15 Aug 2022",
"15 Dec 2022",
"On Going",
"primaryBadge",
"$4000"
),
createData(
"Web Development",
"15 Nov 2022",
"15 Jan 2023",
"On Going",
"primaryBadge",
"$400"
),
createData(
"React App Development",
"15 Jan 2022",
"15 Mar 2022",
"Completed",
"successBadge",
"$1200"
),
createData(
"eCommerce Development",
"15 Mar 2022",
"15 May 2022",
"On Going",
"primaryBadge",
"$250"
),
createData(
"App Development",
"15 May 2022",
"15 Jul 2022",
"On Going",
"primaryBadge",
"$3400"
),
].sort((a, b) => (a.name < b.name ? -1 : 1));
const MyTasks = () => {
const [page, setPage] = React.useState(0);
const [rowsPerPage, setRowsPerPage] = React.useState(8);
// Avoid a layout jump when reaching the last page with empty rows.
const emptyRows =
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
const handleChangePage = (event, newPage) => {
setPage(newPage);
};
const handleChangeRowsPerPage = (event) => {
setRowsPerPage(parseInt(event.target.value, 10));
setPage(0);
};
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px 20px 15px",
mb: "15px",
}}
>
<Box
sx={{
paddingBottom: "10px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
}}
>
My Tasks
</Typography>
</Box>
<TableContainer
component={Paper}
sx={{
boxShadow: "none",
}}
>
<Table
sx={{ minWidth: 600 }}
aria-label="custom pagination table"
className="dark-table"
>
<TableHead sx={{ background: "#F7FAFF" }}>
<TableRow>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13.5px",
}}
>
Name
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13.5px",
}}
>
Start Date
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13.5px",
}}
>
End Date
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13.5px",
}}
>
Status
</TableCell>
<TableCell
align="center"
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13.5px",
}}
>
Budget
</TableCell>
</TableRow>
</TableHead>
<TableBody>
{(rowsPerPage > 0
? rows.slice(
page * rowsPerPage,
page * rowsPerPage + rowsPerPage
)
: rows
).map((row) => (
<TableRow key={row.name}>
<TableCell
sx={{
fontWeight: "500",
fontSize: "13px",
borderBottom: "1px solid #F7FAFF",
color: "#260944",
pt: '16px',
pb: '16px',
}}
>
{row.name}
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
pt: '16px',
pb: '16px',
}}
>
{row.startDate}
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
pt: '16px',
pb: '16px',
}}
>
{row.endDate}
</TableCell>
<TableCell
align="center"
sx={{
fontWeight: 500,
borderBottom: "1px solid #F7FAFF",
fontSize: "11px",
pt: '16px',
pb: '16px',
}}
>
<span className={row.badgeClass}>{row.status}</span>
</TableCell>
<TableCell
sx={{
borderBottom: "1px solid #F7FAFF",
fontSize: "13px",
pt: '16px',
pb: '16px',
}}
align="center"
>
{row.budget}
</TableCell>
</TableRow>
))}
{emptyRows > 0 && (
<TableRow style={{ height: 53 * emptyRows }}>
<TableCell
colSpan={4}
style={{ borderBottom: "1px solid #F7FAFF" }}
/>
</TableRow>
)}
</TableBody>
<TableFooter>
<TableRow>
<TablePagination
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
colSpan={8}
count={rows.length}
rowsPerPage={rowsPerPage}
page={page}
SelectProps={{
inputProps: {
"aria-label": "rows per page",
},
native: true,
}}
onPageChange={handleChangePage}
onRowsPerPageChange={handleChangeRowsPerPage}
ActionsComponent={MyTask}
style={{ borderBottom: "none" }}
/>
</TableRow>
</TableFooter>
</Table>
</TableContainer>
</Card>
</>
);
};
export default MyTasks;
+160
View File
@@ -0,0 +1,160 @@
import React from "react";
import { Box } from "@mui/material";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import InputLabel from "@mui/material/InputLabel";
import MenuItem from "@mui/material/MenuItem";
import FormControl from "@mui/material/FormControl";
import Select from "@mui/material/Select";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
const Overview = () => {
// Select Form
const [select, setSelect] = React.useState("");
const handleChange = (event) => {
setSelect(event.target.value);
};
// Chart
const series = [
{
name: "Income",
data: [20, 35, 20, 40, 40, 50, 25, 25, 35, 30, 25, 40],
},
];
const options = {
chart: {
toolbar: {
show: false,
},
events: {
click: function (chart, w, e) {
// console.log(chart, w, e)
},
},
},
colors: ["#90C6E0"],
plotOptions: {
bar: {
columnWidth: "30%",
distributed: true,
},
},
dataLabels: {
enabled: false,
},
legend: {
show: false,
},
xaxis: {
categories: [
["Jan"],
["Feb"],
["Mar"],
["Api"],
["May"],
["Jun"],
["Jul"],
["Aug"],
["Sep"],
["Oct"],
["Nov"],
["Dec"],
],
labels: {
style: {
colors: "#A9A9C8",
fontSize: "12px",
},
},
},
yaxis: {
labels: {
style: {
colors: "#A9A9C8",
fontSize: "12px",
},
},
axisBorder: {
show: false,
colors: "#f6f6f7",
},
},
fill: {
opacity: 1,
},
tooltip: {
y: {
formatter: function (val) {
return "$" + val + "k";
},
},
},
grid: {
show: true,
borderColor: "#EDEFF5",
strokeDashArray: 5,
},
};
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px 25px 15px",
mb: "15px",
}}
>
<Box
sx={{
display: "flex",
alignItems: "center",
justifyContent: "space-between",
borderBottom: "1px solid #EEF0F7",
paddingBottom: "10px",
marginBottom: "10px",
}}
className="for-dark-bottom-border"
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
}}
>
Overview
</Typography>
<Box>
<FormControl sx={{ minWidth: 120 }} size="small">
<InputLabel id="demo-select-small" sx={{ fontSize: '14px' }}>Select</InputLabel>
<Select
labelId="demo-select-small"
id="demo-select-small"
value={select}
label="Select"
onChange={handleChange}
sx={{ fontSize: '14px' }}
>
<MenuItem value={0} sx={{ fontSize: '14px' }}>Today</MenuItem>
<MenuItem value={1} sx={{ fontSize: '14px' }}>This Week</MenuItem>
<MenuItem value={2} sx={{ fontSize: '14px' }}>Last Month</MenuItem>
<MenuItem value={3} sx={{ fontSize: '14px' }}>Last 12 Months</MenuItem>
<MenuItem value={4} sx={{ fontSize: '14px' }}>All Time</MenuItem>
</Select>
</FormControl>
</Box>
</Box>
<Chart options={options} series={series} type="bar" height={250} />
</Card>
</>
);
};
export default Overview;
@@ -0,0 +1,98 @@
import React from "react";
import { Box, Typography } from "@mui/material";
import Card from "@mui/material/Card";
const personalInfo = [
{
title: 'Full Name :',
text: 'Andrew Burns',
},
{
title: 'Mobile :',
text: '(123) 123 1234',
},
{
title: 'Email :',
text: 'andrewburns@gmail.com',
},
{
title: 'Location : ',
text: 'USA',
},
{
title: 'Experience : ',
text: 'Back end Developer',
},
]
const PersonalInformation = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Box
sx={{
borderBottom: "1px solid #EEF0F7",
paddingBottom: "10px",
mb: "20px",
}}
className="for-dark-bottom-border"
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
}}
>
Personal Information
</Typography>
</Box>
<Box>
<Typography
as='h4'
fontWeight='500'
fontSize='15px'
mb={1}
>
About Me:
</Typography>
<Typography mb={1}>Hi I'm Andrew Burns,has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type.</Typography>
{personalInfo.map((info) => (
<Box
sx={{
display: 'flex',
borderBottom: '1px solid #F7FAFF',
p: '10px 0',
}}
key={info.title}
className="for-dark-bottom-border"
>
<Typography
as='h4'
fontWeight='500'
fontSize='14px'
width='100px'
>
{info.title}
</Typography>
<Typography>{info.text}</Typography>
</Box>
))}
</Box>
</Card>
</>
);
};
export default PersonalInformation;
@@ -0,0 +1,57 @@
.profileBox {
background-color: #fff;
border-radius: 10px;
position: relative;
margin-bottom: 15px;
}
.header {
background: #EAEDFB;
border-radius: 10px 10px 0px 0px;
padding: 30px 15px 50px;
position: relative;
}
.headerContent {
max-width: 300px;
position: relative;
z-index: 1;
}
.header h1 {
margin: 0 0 10px;
font-size: 18px;
color: #757FEF;
font-weight: 500;
}
.header p {
margin: 0;
font-size: 14px;
color: #757FEF;
}
.header img {
position: absolute;
bottom: 0;
right: 0;
}
.profileInfoContent {
padding: 0 15px 30px;
}
.profileInfo {
position: relative;
}
.profileInfo img {
position: absolute;
top: -30px;
width: 60px;
height: 60px;
border: 5px solid #fff;
border-radius: 100%;
box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
}
.profileInfo h3 {
margin: 0 0 5px;
font-size: 14px;
padding-top: 45px;
}
.profileInfo p {
margin: 0;
font-size: 13px;
}
@@ -0,0 +1,46 @@
import React from "react";
import Grid from "@mui/material/Grid";
import styles from "@/components/Dashboard/Analytics/Profile/Profile.module.css";
import ImpressionShare from "./ImpressionShare";
const ProfileContent = () => {
return (
<>
<div className={styles.profileBox}>
<div className={styles.header}>
<div className={styles.headerContent}>
<h1>Welcome to admash Dashboard!</h1>
<p>
You have done 68% 😎 more sales today. Check your new badge in
your profile.
</p>
</div>
<img src="/images/working-on-table.png" alt="Working on table" />
</div>
<div className={styles.profileInfoContent}>
<Grid
container
alignItems="flex-end"
rowSpacing={1}
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
>
<Grid item xs={6} md={6} lg={8}>
<div className={styles.profileInfo}>
<img src="/images/profile.png" alt="Profile" />
<h3>Andrew Burns</h3>
<p>Programmer</p>
</div>
</Grid>
<Grid item xs={6} md={6} lg={4}>
<ImpressionShare />
</Grid>
</Grid>
</div>
</div>
</>
);
};
export default ProfileContent;
+213
View File
@@ -0,0 +1,213 @@
import * as React from "react";
import { Box, Typography } from "@mui/material";
import Card from "@mui/material/Card";
import Pagination from '@mui/material/Pagination';
export default function SearchContent() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "30px",
mb: "30px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "20px",
}}
className="for-dark-bottom-border"
>
120 <span style={{ fontSize: '14px', color: '#5B5B98' }}>results found for</span> Ipsum
</Typography>
<Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
<Box
sx={{
border: '1px solid #eee',
padding: '20px',
borderRadius: '10px',
mb: '10px'
}}
className="dark-border"
>
<Typography
as="h3"
sx={{
fontSize: 16,
fontWeight: 500,
mb: "5px",
}}
>
What is Lorem Ipsum?
</Typography>
<Typography sx={{fontSize: 14}}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</Box>
</Box>
{/* Pagination */}
<Pagination
count={10}
variant="outlined"
shape="rounded"
sx={{
mt: '20px'
}}
/>
</Card>
</>
);
}
@@ -0,0 +1,47 @@
import React from 'react';
import Card from "@mui/material/Card";
import styles from '@/components/Pages/TermsConditions/TermsConditionsContent.module.css'
const TermsConditionsContent = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "30px",
mb: "30px",
maxWidth: '900px',
ml: 'auto',
mr: 'auto',
}}
>
<div className={styles.termsConditionsContent}>
<h2>Terms & Conditions</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<h2>Privacy Policy</h2>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
<p>Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.</p>
<h2>License Usage</h2>
<p>But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness.</p>
<h2>Media</h2>
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.</p>
<h2>Product Updates</h2>
<p>There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.</p>
<h2>Cookies</h2>
<p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.</p>
<p>Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p>
<p><b>Last update: January 25, 2023</b></p>
</div>
</Card>
</>
)
}
export default TermsConditionsContent;
@@ -0,0 +1,37 @@
.termsConditionsContent h1 {
margin-top: 0;
margin-bottom: 10px;
}
.termsConditionsContent h2 {
margin-top: 0;
margin-bottom: 10px;
}
.termsConditionsContent h3 {
margin-top: 0;
margin-bottom: 10px;
}
.termsConditionsContent h4 {
margin-top: 0;
margin-bottom: 10px;
}
.termsConditionsContent h5 {
margin-top: 0;
margin-bottom: 10px;
}
.termsConditionsContent h6 {
margin-top: 0;
margin-bottom: 10px;
}
.termsConditionsContent p {
margin-top: 0;
margin-bottom: 20px;
}
.termsConditionsContent ul, .termsConditionsContent ol {
margin-bottom: 20px;
}
.termsConditionsContent ul li, .termsConditionsContent ol li {
margin-bottom: 10px;
}
.termsConditionsContent ul li:last-child, .termsConditionsContent ol li:last-child {
margin-bottom: 0;
}
@@ -0,0 +1,266 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import { Swiper, SwiperSlide } from "swiper/react";
import { Navigation } from "swiper";
import styles from "@/components/Pages/Testimonials/TestimonialsOne.module.css";
const Feedbacks = [
{
id: 1,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user1.png",
name: "Roberto",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 2,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user2.png",
name: "Ramon",
designation: 'UI/UX Designer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 3,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user3.png",
name: "Nathaniel",
designation: 'Angular Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 4,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user4.png",
name: "Milton",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 5,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user5.png",
name: "Antonio",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 6,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user6.png",
name: "Julian",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
]
const TestimonialsOne = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "30px",
mb: "30px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 600,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "20px",
}}
className="for-dark-bottom-border"
>
Testimonials One
</Typography>
<Swiper
slidesPerView={1}
spaceBetween={30}
navigation={true}
breakpoints={{
0: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
992: {
slidesPerView: 3,
},
1400: {
slidesPerView: 4,
},
}}
modules={[Navigation]}
className="testimonialStyle1"
>
{Feedbacks.map((feedback) => (
<SwiperSlide key={feedback.id}>
<div className={styles.feedbackContent}>
<div className={styles.feedbackText}>
<q>
{feedback.feedbackText}
</q>
</div>
<div className={styles.feedbackImg}>
<div>
<img src={feedback.image} alt="Client" />
</div>
<div>
<h4>{feedback.name}</h4>
<p>{feedback.designation}</p>
<ul>
{feedback.ratings.map((rating) => (
<li key={rating.id}>
<i className={rating.icon}></i>
</li>
))}
</ul>
</div>
</div>
</div>
</SwiperSlide>
))}
</Swiper>
</Card>
</>
);
};
export default TestimonialsOne;
@@ -0,0 +1,61 @@
.feedbackText {
background-color: #f2f1f3;
padding: 30px;
border-radius: 25px 25px 25px 0;
font-size: 16px;
margin-bottom: 20px;
}
.feedbackImg {
display: flex;
}
.feedbackImg img {
width: 50px;
height: 50px;
border-radius: 100%;
margin-right: 10px;
}
.feedbackImg h4 {
margin: 0 0 3px;
font-size: 14px;
}
.feedbackImg p {
margin: 0 0 5px;
font-size: 12px;
}
.feedbackImg ul {
margin: 0;
list-style-type: none;
padding: 0;
}
.feedbackImg ul li {
display: inline-block;
margin-right: 3px;
color: #ffc744;
}
.feedbackImg ul li:last-child {
margin-right: 0;
}
/* For RTL Style */
[dir="rtl"] .feedbackText {
border-radius: 25px 25px 0 25px;
}
[dir="rtl"] .feedbackImg img {
margin-right: 0;
margin-left: 10px;
}
[dir="rtl"] .feedbackImg ul li {
margin-right: 0;
margin-left: 3px;
}
[dir="rtl"] .feedbackImg ul li:last-child {
margin-left: 0;
}
/* For dark mode */
[class="dark"] .feedbackText {
background-color: var(--colorBlack);
}
[class="dark"] .feedbackText q {
color: var(--darkBodyTextColor);
}
@@ -0,0 +1,265 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import { Swiper, SwiperSlide } from "swiper/react";
import { Pagination } from "swiper";
import styles from "@/components/Pages/Testimonials/TestimonialsThree.module.css";
const Feedbacks = [
{
id: 1,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/member1.png",
name: "Roberto",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 2,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/member2.png",
name: "Ramon",
designation: 'UI/UX Designer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 3,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/member3.png",
name: "Nathaniel",
designation: 'Angular Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 4,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/member4.png",
name: "Milton",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 5,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/member5.png",
name: "Antonio",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 6,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/member6.png",
name: "Julian",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
]
const TestimonialsThree = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "30px",
mb: "30px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "20px",
}}
className="for-dark-bottom-border"
>
Testimonials Three
</Typography>
<Swiper
slidesPerView={1}
spaceBetween={30}
pagination={{
clickable: true,
}}
breakpoints={{
0: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1400: {
slidesPerView: 3,
},
}}
modules={[Pagination]}
className="testimonialStyle3"
>
{Feedbacks.map((feedback) => (
<SwiperSlide key={feedback.id}>
<div className={styles.feedbackContent}>
<div className={styles.feedbackText}>
<div className={styles.feedbackImg}>
<div>
<img src={feedback.image} alt="Client" />
</div>
<div>
<h4>{feedback.name}</h4>
<p>{feedback.designation}</p>
<ul>
{feedback.ratings.map((rating) => (
<li key={rating.id}>
<i className={rating.icon}></i>
</li>
))}
</ul>
</div>
</div>
<q>
{feedback.feedbackText}
</q>
</div>
</div>
</SwiperSlide>
))}
</Swiper>
</Card>
</>
);
};
export default TestimonialsThree;
@@ -0,0 +1,48 @@
.feedbackContent {
text-align: center;
}
.feedbackText {
background-color: #f2f1f3;
padding: 40px 30px;
border-radius: 10px;
font-size: 16px;
margin-bottom: 20px;
}
.feedbackImg {
margin-bottom: 10px;
}
.feedbackImg img {
width: 100px;
height: 100px;
border-radius: 100%;
margin-bottom: 5px;
}
.feedbackImg h4 {
margin: 0 0 3px;
font-size: 18px;
}
.feedbackImg p {
margin: 0 0 5px;
font-size: 13px;
}
.feedbackImg ul {
margin: 0;
list-style-type: none;
padding: 0;
}
.feedbackImg ul li {
display: inline-block;
margin-right: 3px;
color: #ffc744;
}
.feedbackImg ul li:last-child {
margin-right: 0;
}
/* For dark mode */
[class="dark"] .feedbackText {
background-color: var(--colorBlack);
}
[class="dark"] .feedbackText q {
color: var(--darkBodyTextColor);
}
@@ -0,0 +1,269 @@
import React from "react";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
import { Swiper, SwiperSlide } from "swiper/react";
import { Navigation } from "swiper";
import styles from "@/components/Pages/Testimonials/TestimonialsTwo.module.css";
const Feedbacks = [
{
id: 1,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user1.png",
name: "Roberto",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 2,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user2.png",
name: "Ramon",
designation: 'UI/UX Designer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 3,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user3.png",
name: "Nathaniel",
designation: 'Angular Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 4,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user4.png",
name: "Milton",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 5,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user5.png",
name: "Antonio",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
{
id: 6,
feedbackText: "We look and sound so good! I am still in shock at how smooth this process was. The professionalism, collaboration and the design they come up is great.",
image: "/images/user6.png",
name: "Julian",
designation: 'React Developer',
ratings: [
{
id: 1,
icon: "ri-star-fill",
},
{
id: 2,
icon: "ri-star-fill",
},
{
id: 3,
icon: "ri-star-fill",
},
{
id: 4,
icon: "ri-star-fill",
},
{
id: 5,
icon: "ri-star-fill",
}
]
},
]
const TestimonialsTwo = () => {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "30px",
mb: "30px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "20px",
}}
className="for-dark-bottom-border"
>
Testimonials Two
</Typography>
<Swiper
slidesPerView={1}
spaceBetween={30}
navigation={true}
breakpoints={{
0: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
992: {
slidesPerView: 3,
},
1050: {
slidesPerView: 2,
},
1400: {
slidesPerView: 4,
},
}}
modules={[Navigation]}
className="testimonialStyle2"
>
{Feedbacks.map((feedback) => (
<SwiperSlide key={feedback.id}>
<div className={styles.feedbackContent}>
<div className={styles.feedbackText}>
<div className={styles.feedbackImg}>
<div>
<img src={feedback.image} alt="Client" />
</div>
<div>
<h4>{feedback.name}</h4>
<p>{feedback.designation}</p>
<ul>
{feedback.ratings.map((rating) => (
<li key={rating.id}>
<i className={rating.icon}></i>
</li>
))}
</ul>
</div>
</div>
<q>
{feedback.feedbackText}
</q>
</div>
</div>
</SwiperSlide>
))}
</Swiper>
</Card>
</>
);
};
export default TestimonialsTwo;
@@ -0,0 +1,59 @@
.feedbackText {
background-color: #f2f1f3;
padding: 40px 30px;
border-radius: 25px;
font-size: 16px;
margin-bottom: 20px;
}
.feedbackImg {
display: flex;
margin-bottom: 10px;
}
.feedbackImg img {
width: 50px;
height: 50px;
border-radius: 100%;
margin-right: 10px;
}
.feedbackImg h4 {
margin: 0 0 3px;
font-size: 14px;
}
.feedbackImg p {
margin: 0 0 5px;
font-size: 12px;
}
.feedbackImg ul {
margin: 0;
list-style-type: none;
padding: 0;
}
.feedbackImg ul li {
display: inline-block;
margin-right: 3px;
color: #ffc744;
}
.feedbackImg ul li:last-child {
margin-right: 0;
}
/* For RTL Style */
[dir="rtl"] .feedbackImg img {
margin-right: 0;
margin-left: 10px;
}
[dir="rtl"] .feedbackImg ul li {
margin-right: 0;
margin-left: 3px;
}
[dir="rtl"] .feedbackImg ul li:last-child {
margin-left: 0;
}
/* For dark mode */
[class="dark"] .feedbackText {
background-color: var(--colorBlack);
}
[class="dark"] .feedbackText q {
color: var(--darkBodyTextColor);
}
+172
View File
@@ -0,0 +1,172 @@
import * as React from "react";
import Timeline from "@mui/lab/Timeline";
import TimelineItem from "@mui/lab/TimelineItem";
import TimelineSeparator from "@mui/lab/TimelineSeparator";
import TimelineConnector from "@mui/lab/TimelineConnector";
import TimelineContent from "@mui/lab/TimelineContent";
import TimelineOppositeContent from "@mui/lab/TimelineOppositeContent";
import TimelineDot from "@mui/lab/TimelineDot";
import FastfoodIcon from "@mui/icons-material/Fastfood";
import LaptopMacIcon from "@mui/icons-material/LaptopMac";
import HotelIcon from "@mui/icons-material/Hotel";
import RepeatIcon from "@mui/icons-material/Repeat";
import Typography from "@mui/material/Typography";
import Card from "@mui/material/Card";
export default function TimelineStyle1() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Timeline Style 1
</Typography>
<Timeline position="alternate">
<TimelineItem>
<TimelineOppositeContent
sx={{ m: "auto 0" }}
align="right"
variant="body2"
color="text.secondary"
>
9:30 am
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineConnector />
<TimelineDot>
<FastfoodIcon />
</TimelineDot>
<TimelineConnector />
</TimelineSeparator>
<TimelineContent sx={{ py: "12px", px: 2 }}>
<Typography variant="h6" mb="5px">
Eat
</Typography>
<Typography mb="5px">Because you need strength</Typography>
<Typography mb="5px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
</Typography>
</TimelineContent>
</TimelineItem>
<TimelineItem>
<TimelineOppositeContent
sx={{ m: "auto 0" }}
variant="body2"
color="text.secondary"
>
10:00 am
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineConnector />
<TimelineDot color="primary">
<LaptopMacIcon />
</TimelineDot>
<TimelineConnector />
</TimelineSeparator>
<TimelineContent sx={{ py: "12px", px: 2 }}>
<Typography variant="h6" mb="5px">
Code
</Typography>
<Typography mb="5px">Because it&apos;s awesome!</Typography>
<Typography mb="5px">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium.
</Typography>
</TimelineContent>
</TimelineItem>
<TimelineItem>
<TimelineOppositeContent
sx={{ m: "auto 0" }}
align="right"
variant="body2"
color="text.secondary"
>
12:30 pm
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineConnector />
<TimelineDot color="primary" variant="outlined">
<HotelIcon />
</TimelineDot>
<TimelineConnector sx={{ bgcolor: "secondary.main" }} />
</TimelineSeparator>
<TimelineContent sx={{ py: "12px", px: 2 }}>
<Typography variant="h6" mb="5px">
Sleep
</Typography>
<Typography mb="5px">Because you need rest</Typography>
<Typography mb="5px">
But I must explain to you how all this mistaken idea of
denouncing pleasure and praising.
</Typography>
</TimelineContent>
</TimelineItem>
<TimelineItem>
<TimelineOppositeContent
sx={{ m: "auto 0" }}
align="right"
variant="body2"
color="text.secondary"
>
9:30 am
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineConnector sx={{ bgcolor: "secondary.main" }} />
<TimelineDot color="secondary">
<RepeatIcon />
</TimelineDot>
<TimelineConnector />
</TimelineSeparator>
<TimelineContent sx={{ py: "12px", px: 2 }}>
<Typography variant="h6" mb="5px">
Repeat
</Typography>
<Typography mb="5px">
Because this is the life you love!
</Typography>
<Typography mb="5px">
At vero eos et accusamus et iusto odio dignissimos ducimus qui
blanditiis praesentium!
</Typography>
</TimelineContent>
</TimelineItem>
</Timeline>
</Card>
</>
);
}
+140
View File
@@ -0,0 +1,140 @@
import * as React from "react";
import Timeline from "@mui/lab/Timeline";
import TimelineItem from "@mui/lab/TimelineItem";
import TimelineSeparator from "@mui/lab/TimelineSeparator";
import TimelineConnector from "@mui/lab/TimelineConnector";
import TimelineContent from "@mui/lab/TimelineContent";
import TimelineDot from "@mui/lab/TimelineDot";
import TimelineOppositeContent, {
timelineOppositeContentClasses,
} from "@mui/lab/TimelineOppositeContent";
import Card from "@mui/material/Card";
import { Typography } from "@mui/material";
export default function TimelineStyle2() {
return (
<>
<Card
sx={{
boxShadow: "none",
borderRadius: "10px",
p: "25px",
mb: "15px",
}}
>
<Typography
as="h3"
sx={{
fontSize: 18,
fontWeight: 500,
borderBottom: "1px solid #EEF0F7",
paddingBottom: "5px",
mb: "15px",
}}
className="for-dark-bottom-border"
>
Timeline Style 2
</Typography>
<Timeline
sx={{
[`& .${timelineOppositeContentClasses.root}`]: {
flex: 0.2,
},
}}
>
<TimelineItem>
<TimelineOppositeContent color="textSecondary">
Jan 15, 2023 (09:30 am)
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineDot />
<TimelineConnector />
</TimelineSeparator>
<TimelineContent>
<Typography variant="h6" mb="5px">
First Event
</Typography>
<Typography mb="5px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</Typography>
</TimelineContent>
</TimelineItem>
<TimelineItem>
<TimelineOppositeContent color="textSecondary">
Jan 16, 2023 (09:30 am)
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineDot />
<TimelineConnector />
</TimelineSeparator>
<TimelineContent>
<Typography variant="h6" mb="5px">
Second Event
</Typography>
<Typography mb="5px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</Typography>
</TimelineContent>
</TimelineItem>
<TimelineItem>
<TimelineOppositeContent color="textSecondary">
Jan 17, 2023 (09:30 am)
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineDot />
<TimelineConnector />
</TimelineSeparator>
<TimelineContent>
<Typography variant="h6" mb="5px">
Third Event
</Typography>
<Typography mb="5px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</Typography>
</TimelineContent>
</TimelineItem>
<TimelineItem>
<TimelineOppositeContent color="textSecondary">
Jan 18, 2023 (09:30 am)
</TimelineOppositeContent>
<TimelineSeparator>
<TimelineDot />
</TimelineSeparator>
<TimelineContent>
<Typography variant="h6" mb="5px">
Fourth Event
</Typography>
<Typography mb="5px">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa
quae ab illo inventore veritatis et quasi architecto beatae
vitae dicta sunt explicabo.
</Typography>
</TimelineContent>
</TimelineItem>
</Timeline>
</Card>
</>
);
}