Merge branch 'master' into Profile-table-item
This commit is contained in:
@@ -79,6 +79,10 @@ import AvatarPage from './pages/component/AvatarPage';
|
|||||||
import TooltipPage from './pages/component/TooltipPage';
|
import TooltipPage from './pages/component/TooltipPage';
|
||||||
import AccordionPage from './pages/component/AccordionPage';
|
import AccordionPage from './pages/component/AccordionPage';
|
||||||
import IconsPage from './pages/component/IconsPage';
|
import IconsPage from './pages/component/IconsPage';
|
||||||
|
import Onboarding1 from "./pages/Onboarding1";
|
||||||
|
import Onboarding2 from "./pages/Onboarding2";
|
||||||
|
import Onboarding3 from "./pages/Onboarding3";
|
||||||
|
import Onboarding4 from "./pages/Onboarding4";
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
|
|
||||||
@@ -149,6 +153,10 @@ function App() {
|
|||||||
<Route path="/onboarding-02" element={<Onboarding02 />} />
|
<Route path="/onboarding-02" element={<Onboarding02 />} />
|
||||||
<Route path="/onboarding-03" element={<Onboarding03 />} />
|
<Route path="/onboarding-03" element={<Onboarding03 />} />
|
||||||
<Route path="/onboarding-04" element={<Onboarding04 />} />
|
<Route path="/onboarding-04" element={<Onboarding04 />} />
|
||||||
|
<Route path="/onboarding-1" element={<Onboarding1 />} />
|
||||||
|
<Route path="/onboarding-2" element={<Onboarding2 />} />
|
||||||
|
<Route path="/onboarding-3" element={<Onboarding3 />} />
|
||||||
|
<Route path="/onboarding-4" element={<Onboarding4 />} />
|
||||||
<Route path="/component/button" element={<ButtonPage />} />
|
<Route path="/component/button" element={<ButtonPage />} />
|
||||||
<Route path="/component/form" element={<FormPage />} />
|
<Route path="/component/form" element={<FormPage />} />
|
||||||
<Route path="/component/dropdown" element={<DropdownPage />} />
|
<Route path="/component/dropdown" element={<DropdownPage />} />
|
||||||
|
|||||||
@@ -103,4 +103,4 @@ input[type="search"]::-webkit-search-results-decoration {
|
|||||||
.no-scrollbar {
|
.no-scrollbar {
|
||||||
-ms-overflow-style: none; /* IE and Edge */
|
-ms-overflow-style: none; /* IE and Edge */
|
||||||
scrollbar-width: none; /* Firefox */
|
scrollbar-width: none; /* Firefox */
|
||||||
}
|
}
|
||||||
|
|||||||
95
src/images/GenerateOnboardingSvg/GenerateSvg.js
Normal file
95
src/images/GenerateOnboardingSvg/GenerateSvg.js
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
function createBlob(options) {
|
||||||
|
|
||||||
|
let points = [];
|
||||||
|
let slice = (Math.PI * 2) / options.numPoints;
|
||||||
|
let startAngle = 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < options.subkey.length; i++) {
|
||||||
|
let angle = startAngle + i * slice;
|
||||||
|
let rnd = Number("0x"+options.subkey.substring(i+0,i+1));
|
||||||
|
let point = {
|
||||||
|
x: options.centerX + Math.cos(angle) * (options.radius + rnd),
|
||||||
|
y: options.centerY + Math.sin(angle) * (options.radius + rnd)
|
||||||
|
};
|
||||||
|
points.push(point);
|
||||||
|
}
|
||||||
|
|
||||||
|
let size = points.length;
|
||||||
|
let path = "M" + points[0].x + " " + points[0].y + " C";
|
||||||
|
|
||||||
|
for (let i = 0; i < size; i++) {
|
||||||
|
let p0 = points[(i - 1 + size) % size];
|
||||||
|
let p1 = points[i];
|
||||||
|
let p2 = points[(i + 1) % size];
|
||||||
|
let p3 = points[(i + 2) % size];
|
||||||
|
|
||||||
|
let x1 = p1.x + (p2.x - p0.x) / 6;
|
||||||
|
let y1 = p1.y + (p2.y - p0.y) / 6;
|
||||||
|
|
||||||
|
let x2 = p2.x - (p3.x - p1.x) / 6;
|
||||||
|
let y2 = p2.y - (p3.y - p1.y) / 6;
|
||||||
|
|
||||||
|
path += " " + x1 + " " + y1 + " " + x2 + " " + y2 + " " + p2.x + " " + p2.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
return path + "z";
|
||||||
|
}
|
||||||
|
|
||||||
|
export var generateSvgAvatar = (function () {
|
||||||
|
return function (seed, raw) {
|
||||||
|
let pubKey = localStorage.getItem('svgKey') || Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16) + Math.floor(Math.random()*65535*65535).toString(16);
|
||||||
|
//pubKey = "73f47d4929d7b2b6598ca4999d52567f9bb5aef3e353e0a66b468096db6e4e88"
|
||||||
|
if (!localStorage.getItem('svgKey')) {
|
||||||
|
localStorage.setItem('svgKey', `${pubKey}`)
|
||||||
|
}
|
||||||
|
let particles = [];
|
||||||
|
let gradients = ['#000000'];
|
||||||
|
let defs = [];
|
||||||
|
|
||||||
|
for (let a = 0; a<64; a = a + 8) {
|
||||||
|
let blob = createBlob({
|
||||||
|
numPoints: 8,
|
||||||
|
centerX: 256,
|
||||||
|
centerY: 256-a*4,
|
||||||
|
radius: 16,
|
||||||
|
subkey: pubKey.substring(a,a + 8)
|
||||||
|
});
|
||||||
|
|
||||||
|
let color = "#" + pubKey.substring(a+2,a+8);
|
||||||
|
let width = Number("0x"+pubKey.substring(a,a+1));
|
||||||
|
let opacity = Number("0x"+pubKey.substring(a+1,a+2))/8;
|
||||||
|
|
||||||
|
gradients.push(color);
|
||||||
|
defs.push(`<radialGradient id="a-${a}" cx="0" cy="0" r="0.75" fx="0.35" fy="0.5" spreadMethod="reflect"><stop offset="0%" stop-color="${gradients[gradients.length-1]}"/><stop offset="100%" stop-color="${gradients[gradients.length]}"/></radialGradient>`);
|
||||||
|
particles.push(`<path d="${blob}" stroke="url(#a-${a})" stroke-width="${width}" stroke-opacity = "${opacity}" fill="transparent"/>`);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
let ph = "";
|
||||||
|
let off = 4 + Number("0x"+pubKey.substring(0,1));
|
||||||
|
let rotate = 0;
|
||||||
|
for (var i = 0; i < off; i++){
|
||||||
|
ph = ph + `<use xlink:href="#pattern-${pubKey}" mask="url(#mask)" class="segment" style="transform-origin:center center;transform: scaleY(1) rotate(${rotate}deg)"></use>,` + "\n";
|
||||||
|
rotate = rotate + 360/off;
|
||||||
|
}
|
||||||
|
|
||||||
|
var svg = [
|
||||||
|
'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" preserveAspectRatio="xMidYMid slice" viewBox="0 0 512 512">',
|
||||||
|
'<defs>',
|
||||||
|
'<radialGradient id="e" cx="0" cy="0" r="0.75" fx="0.35" fy="0.5" spreadMethod="reflect">',
|
||||||
|
'<stop offset="0%" stop-color="red"/>',
|
||||||
|
'<stop offset="100%" stop-color="blue"/>',
|
||||||
|
'</radialGradient>',defs.join('\n'),
|
||||||
|
'</defs>',
|
||||||
|
'<symbol id="pattern-' + pubKey + '">',
|
||||||
|
particles.join(''),
|
||||||
|
'</symbol>',
|
||||||
|
'<g style="transform-origin:center center; transform: rotate(' + pubKey + 'deg)">',
|
||||||
|
ph,
|
||||||
|
'</g>',
|
||||||
|
'</svg>',
|
||||||
|
].join('');
|
||||||
|
return raw ? svg : 'data:image/svg+xml;base64,' + btoa(svg);
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { useState } from 'react';
|
import React, {useEffect, useState} from 'react';
|
||||||
|
|
||||||
import Sidebar from '../partials/Sidebar';
|
import Sidebar from '../partials/Sidebar';
|
||||||
import Header from '../partials/Header';
|
import Header from '../partials/Header';
|
||||||
@@ -19,7 +19,9 @@ import DashboardCard10 from '../partials/dashboard/DashboardCard10';
|
|||||||
import DashboardCard11 from '../partials/dashboard/DashboardCard11';
|
import DashboardCard11 from '../partials/dashboard/DashboardCard11';
|
||||||
|
|
||||||
function Dashboard() {
|
function Dashboard() {
|
||||||
|
useEffect(() => {
|
||||||
|
localStorage.setItem('svgKey', '')
|
||||||
|
}, [])
|
||||||
const [sidebarOpen, setSidebarOpen] = useState(false);
|
const [sidebarOpen, setSidebarOpen] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -58,7 +60,7 @@ function Dashboard() {
|
|||||||
<path d="M15 7H9V1c0-.6-.4-1-1-1S7 .4 7 1v6H1c-.6 0-1 .4-1 1s.4 1 1 1h6v6c0 .6.4 1 1 1s1-.4 1-1V9h6c.6 0 1-.4 1-1s-.4-1-1-1z" />
|
<path d="M15 7H9V1c0-.6-.4-1-1-1S7 .4 7 1v6H1c-.6 0-1 .4-1 1s.4 1 1 1h6v6c0 .6.4 1 1 1s1-.4 1-1V9h6c.6 0 1-.4 1-1s-.4-1-1-1z" />
|
||||||
</svg>
|
</svg>
|
||||||
<span className="hidden xs:block ml-2">Add View</span>
|
<span className="hidden xs:block ml-2">Add View</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -88,7 +90,7 @@ function Dashboard() {
|
|||||||
<DashboardCard10 />
|
<DashboardCard10 />
|
||||||
{/* Card (Income/Expenses) */}
|
{/* Card (Income/Expenses) */}
|
||||||
<DashboardCard11 />
|
<DashboardCard11 />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -100,4 +102,4 @@ function Dashboard() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Dashboard;
|
export default Dashboard;
|
||||||
|
|||||||
130
src/pages/Onboarding1.jsx
Normal file
130
src/pages/Onboarding1.jsx
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
import OnboardingImage from '../images/onboarding-image.jpg';
|
||||||
|
import OnboardingDecoration from '../images/auth-decoration.png';
|
||||||
|
import Logo from "../images/logo.png";
|
||||||
|
|
||||||
|
function Onboarding1() {
|
||||||
|
return (
|
||||||
|
<main className="bg-white">
|
||||||
|
|
||||||
|
<div className="relative flex">
|
||||||
|
|
||||||
|
{/* Content */}
|
||||||
|
<div className="w-full md:w-1/2">
|
||||||
|
|
||||||
|
<div className="min-h-screen h-full flex flex-col after:flex-1">
|
||||||
|
|
||||||
|
<div className="flex-1">
|
||||||
|
|
||||||
|
{/* Header */}
|
||||||
|
<div className="flex items-center justify-between h-16 px-4 sm:px-6 lg:px-8">
|
||||||
|
{/* Logo */}
|
||||||
|
<Link className="block" to="/">
|
||||||
|
<img alt='logo' src={Logo} width="89" height="32"/>
|
||||||
|
</Link>
|
||||||
|
<div className="text-sm">
|
||||||
|
Have an account? <Link className="font-medium text-indigo-500 hover:text-indigo-600" to="/signin">Sign In</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Progress bar */}
|
||||||
|
<div className="px-4 pt-12 pb-8">
|
||||||
|
<div className="max-w-md mx-auto w-full">
|
||||||
|
<div className="relative">
|
||||||
|
<div className="absolute left-0 top-1/2 -mt-px w-full h-0.5 bg-slate-200" aria-hidden="true"></div>
|
||||||
|
<ul className="relative flex justify-between w-full">
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-1">1</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-slate-100 text-slate-500" to="/onboarding-2">2</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-slate-100 text-slate-500" to="/onboarding-3">3</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-slate-100 text-slate-500" to="/onboarding-4">4</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="px-4 py-8">
|
||||||
|
<div className="max-w-md mx-auto">
|
||||||
|
|
||||||
|
<h1 className="text-3xl text-slate-800 font-bold mb-6">Tell us about your company ✨</h1>
|
||||||
|
{/* Form */}
|
||||||
|
<form>
|
||||||
|
<div className="sm:flex space-y-3 sm:space-y-0 sm:space-x-4 mb-8">
|
||||||
|
<label className="flex-1 relative block cursor-pointer">
|
||||||
|
<input type="radio" name="radio-buttons" className="peer sr-only" defaultChecked />
|
||||||
|
<div className="h-full text-center bg-white px-4 py-6 rounded border border-slate-200 hover:border-slate-300 shadow-sm duration-150 ease-in-out">
|
||||||
|
<svg className="inline-flex w-10 h-10 shrink-0 fill-current mb-2" viewBox="0 0 40 40">
|
||||||
|
<circle className="text-indigo-100" cx="20" cy="20" r="20" />
|
||||||
|
<path className="text-indigo-500" d="m26.371 23.749-3.742-1.5a1 1 0 0 1-.629-.926v-.878A3.982 3.982 0 0 0 24 17v-1.828A4.087 4.087 0 0 0 20 11a4.087 4.087 0 0 0-4 4.172V17a3.982 3.982 0 0 0 2 3.445v.878a1 1 0 0 1-.629.928l-3.742 1.5a1 1 0 0 0-.629.926V27a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.323a1 1 0 0 0-.629-.928Z" />
|
||||||
|
</svg>
|
||||||
|
<div className="font-medium text-slate-800 mb-1">Individual</div>
|
||||||
|
<div className="text-sm">Lorem ipsum is place text commonly used.</div>
|
||||||
|
</div>
|
||||||
|
<div className="absolute inset-0 border-2 border-transparent peer-checked:border-indigo-400 rounded pointer-events-none" aria-hidden="true"></div>
|
||||||
|
</label>
|
||||||
|
<label className="flex-1 relative block cursor-pointer">
|
||||||
|
<input type="radio" name="radio-buttons" className="peer sr-only" />
|
||||||
|
<div className="h-full text-center bg-white px-4 py-6 rounded border border-slate-200 hover:border-slate-300 shadow-sm duration-150 ease-in-out">
|
||||||
|
<svg className="inline-flex w-10 h-10 shrink-0 fill-current mb-2" viewBox="0 0 40 40">
|
||||||
|
<circle className="text-indigo-100" cx="20" cy="20" r="20" />
|
||||||
|
<path className="text-indigo-500" d="m26.371 23.749-3.742-1.5a1 1 0 0 1-.629-.926v-.878A3.982 3.982 0 0 0 24 17v-1.828A4.087 4.087 0 0 0 20 11a4.087 4.087 0 0 0-4 4.172V17a3.982 3.982 0 0 0 2 3.445v.878a1 1 0 0 1-.629.928l-3.742 1.5a1 1 0 0 0-.629.926V27a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.323a1 1 0 0 0-.629-.928Z" />
|
||||||
|
<circle className="text-indigo-100" cx="20" cy="20" r="20" />
|
||||||
|
<path className="text-indigo-300" d="m30.377 22.749-3.709-1.5a1 1 0 0 1-.623-.926v-.878A3.989 3.989 0 0 0 28.027 16v-1.828c.047-2.257-1.728-4.124-3.964-4.172-2.236.048-4.011 1.915-3.964 4.172V16a3.989 3.989 0 0 0 1.982 3.445v.878a1 1 0 0 1-.623.928c-.906.266-1.626.557-2.159.872-.533.315-1.3 1.272-2.299 2.872 1.131.453 6.075-.546 6.072.682V28a2.99 2.99 0 0 1-.182 1h7.119A.996.996 0 0 0 31 28v-4.323a1 1 0 0 0-.623-.928Z" />
|
||||||
|
<path className="text-indigo-500" d="m22.371 24.749-3.742-1.5a1 1 0 0 1-.629-.926v-.878A3.982 3.982 0 0 0 20 18v-1.828A4.087 4.087 0 0 0 16 12a4.087 4.087 0 0 0-4 4.172V18a3.982 3.982 0 0 0 2 3.445v.878a1 1 0 0 1-.629.928l-3.742 1.5a1 1 0 0 0-.629.926V28a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.323a1 1 0 0 0-.629-.928Z" />
|
||||||
|
</svg>
|
||||||
|
<div className="font-medium text-slate-800 mb-1">Organization</div>
|
||||||
|
<div className="text-sm">Lorem ipsum is place text commonly used.</div>
|
||||||
|
</div>
|
||||||
|
<div className="absolute inset-0 border-2 border-transparent peer-checked:border-indigo-400 rounded pointer-events-none" aria-hidden="true"></div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center justify-between space-x-6 mb-8">
|
||||||
|
<div>
|
||||||
|
<div className="font-medium text-slate-800 text-sm mb-1">💸 Lorem ipsum is place text commonly?</div>
|
||||||
|
<div className="text-xs">Lorem ipsum is placeholder text commonly used in the graphic, print, and publishing industries for previewing layouts.</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<div className="form-switch">
|
||||||
|
<input type="checkbox" id="switch" className="sr-only" defaultChecked />
|
||||||
|
<label className="bg-slate-400" htmlFor="switch">
|
||||||
|
<span className="bg-white shadow-sm" aria-hidden="true"></span>
|
||||||
|
<span className="sr-only">Switch label</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<Link className="btn bg-indigo-500 hover:bg-indigo-600 text-white ml-auto" to="/onboarding-2">Next Step -></Link>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Image */}
|
||||||
|
<div className="hidden md:block absolute top-0 bottom-0 right-0 md:w-1/2" aria-hidden="true">
|
||||||
|
<img className="object-cover object-center w-full h-full" src={OnboardingImage} width="760" height="1024" alt="Onboarding" />
|
||||||
|
<img className="absolute top-1/4 left-0 transform -translate-x-1/2 ml-8 hidden lg:block" src={OnboardingDecoration} width="218" height="224" alt="Authentication decoration" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Onboarding1;
|
||||||
117
src/pages/Onboarding2.jsx
Normal file
117
src/pages/Onboarding2.jsx
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
import OnboardingImage from '../images/onboarding-image.jpg';
|
||||||
|
import OnboardingDecoration from '../images/auth-decoration.png';
|
||||||
|
import Logo from "../images/logo.png";
|
||||||
|
|
||||||
|
function Onboarding2() {
|
||||||
|
return (
|
||||||
|
<main className="bg-white">
|
||||||
|
|
||||||
|
<div className="relative flex">
|
||||||
|
|
||||||
|
{/* Content */}
|
||||||
|
<div className="w-full md:w-1/2">
|
||||||
|
|
||||||
|
<div className="min-h-screen h-full flex flex-col after:flex-1">
|
||||||
|
|
||||||
|
<div className="flex-1">
|
||||||
|
|
||||||
|
{/* Header */}
|
||||||
|
<div className="flex items-center justify-between h-16 px-4 sm:px-6 lg:px-8">
|
||||||
|
{/* Logo */}
|
||||||
|
<Link className="block" to="/">
|
||||||
|
<img alt='logo' src={Logo} width="89" height="32"/>
|
||||||
|
</Link>
|
||||||
|
<div className="text-sm">
|
||||||
|
Have an account? <Link className="font-medium text-indigo-500 hover:text-indigo-600" to="/signin">Sign In</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Progress bar */}
|
||||||
|
<div className="px-4 pt-12 pb-8">
|
||||||
|
<div className="max-w-md mx-auto w-full">
|
||||||
|
<div className="relative">
|
||||||
|
<div className="absolute left-0 top-1/2 -mt-px w-full h-0.5 bg-slate-200" aria-hidden="true"></div>
|
||||||
|
<ul className="relative flex justify-between w-full">
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-1">1</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-2">2</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-slate-100 text-slate-500" to="/onboarding-3">3</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-slate-100 text-slate-500" to="/onboarding-4">4</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="px-4 py-8">
|
||||||
|
<div className="max-w-sm mx-auto">
|
||||||
|
<h1 className="text-3xl text-slate-800 font-bold mb-6">Create your Account ✨</h1>
|
||||||
|
{/* Form */}
|
||||||
|
<form>
|
||||||
|
<div className="space-y-4 mb-8">
|
||||||
|
<div>
|
||||||
|
<label className="block text-sm font-medium mb-1" htmlFor="email">Email Address <span className="text-rose-500">*</span></label>
|
||||||
|
<input id="email" className="form-input w-full" type="email" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label className="block text-sm font-medium mb-1" htmlFor="name">Full Name <span className="text-rose-500">*</span></label>
|
||||||
|
<input id="name" className="form-input w-full" type="text" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label className="block text-sm font-medium mb-1" htmlFor="role">Gender <span className="text-rose-500">*</span></label>
|
||||||
|
<select id="role" className="form-select w-full">
|
||||||
|
<option>male</option>
|
||||||
|
<option>feemale</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label className="block text-sm font-medium mb-1" htmlFor="password">Date of birth <span className="text-rose-500">*</span></label>
|
||||||
|
<input id="password" className="form-input w-full" type="password" autoComplete="on" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center justify-between mt-6">
|
||||||
|
<div className="mr-1">
|
||||||
|
<label className="flex items-center">
|
||||||
|
<input type="checkbox" className="form-checkbox" />
|
||||||
|
<span className="text-sm ml-2">Email me about product news.</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<Link className="btn bg-indigo-500 hover:bg-indigo-600 text-white ml-3 whitespace-nowrap" to="/onboarding-3">Sign Up</Link>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{/* Footer */}
|
||||||
|
<div className="pt-5 mt-6 border-t border-slate-200">
|
||||||
|
<div className="text-sm">
|
||||||
|
Have an account? <Link className="font-medium text-indigo-500 hover:text-indigo-600" to="/signin">Sign In</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Image */}
|
||||||
|
<div className="hidden md:block absolute top-0 bottom-0 right-0 md:w-1/2" aria-hidden="true">
|
||||||
|
<img className="object-cover object-center w-full h-full" src={OnboardingImage} width="760" height="1024" alt="Onboarding" />
|
||||||
|
<img className="absolute top-1/4 left-0 transform -translate-x-1/2 ml-8 hidden lg:block" src={OnboardingDecoration} width="218" height="224" alt="Authentication decoration" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Onboarding2;
|
||||||
111
src/pages/Onboarding3.jsx
Normal file
111
src/pages/Onboarding3.jsx
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
import {generateSvgAvatar} from "../images/GenerateOnboardingSvg/GenerateSvg";
|
||||||
|
import Logo from "../images/logo.png";
|
||||||
|
|
||||||
|
function Onboarding3() {
|
||||||
|
const arrayBadges = ['judge', 'jelly', 'wasp', 'true', 'clog', 'forward', 'talent', 'ozone', 'belive', 'fresh', 'bulk', 'hobby']
|
||||||
|
return (
|
||||||
|
<main className="bg-white">
|
||||||
|
|
||||||
|
<div className="relative flex">
|
||||||
|
|
||||||
|
{/* Content */}
|
||||||
|
<div className="w-full md:w-1/2">
|
||||||
|
|
||||||
|
<div className="min-h-screen h-full flex flex-col after:flex-1">
|
||||||
|
|
||||||
|
<div className="flex-1">
|
||||||
|
|
||||||
|
{/* Header */}
|
||||||
|
<div className="flex items-center justify-between h-16 px-4 sm:px-6 lg:px-8">
|
||||||
|
{/* Logo */}
|
||||||
|
<Link className="block" to="/">
|
||||||
|
<img alt='logo' src={Logo} width="89" height="32"/>
|
||||||
|
</Link>
|
||||||
|
<div className="text-sm">
|
||||||
|
Have an account? <Link className="font-medium text-indigo-500 hover:text-indigo-600" to="/signin">Sign In</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Progress bar */}
|
||||||
|
<div className="px-4 pt-12 pb-8">
|
||||||
|
<div className="max-w-md mx-auto w-full">
|
||||||
|
<div className="relative">
|
||||||
|
<div className="absolute left-0 top-1/2 -mt-px w-full h-0.5 bg-slate-200" aria-hidden="true"></div>
|
||||||
|
<ul className="relative flex justify-between w-full">
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-1">1</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-2">2</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-3">3</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-slate-100 text-slate-500" to="/onboarding-4">4</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="px-4 mt-20 py-8">
|
||||||
|
<div className="max-w-fit mx-auto flex flex-col gap-y-36">
|
||||||
|
|
||||||
|
<div className="gap-0.5">
|
||||||
|
<h1 className="text-3xl text-slate-800 font-bold mb-12">Company information ✨</h1>
|
||||||
|
{/* htmlForm */}
|
||||||
|
<div className="grid grid-cols-4 gap-2.5 mb-14">
|
||||||
|
{arrayBadges.map(tag => (
|
||||||
|
<button key={tag} className="min-w-93px w-24 min-h-26px h-26px bg-slate-100 text-slate-500 cursor-pointer hover:bg-blue-100 hover:text-blue-600 rounded-full text-center px-2.5">
|
||||||
|
<span className="text-sm font-medium">{tag}</span>
|
||||||
|
</button>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
<div className="flex justify-center gap-x-5">
|
||||||
|
<button className="btn pl-9 pr-16 border-slate-200 hover:border-slate-300 text-slate-600">
|
||||||
|
<svg className="w-4 h-4 fill-current text-slate-400 shrink-0 mb-0.5" viewBox="0 0 16 16">
|
||||||
|
<path
|
||||||
|
d="M11.7.3c-.4-.4-1-.4-1.4 0l-10 10c-.2.2-.3.4-.3.7v4c0 .6.4 1 1 1h4c.3 0 .5-.1.7-.3l10-10c.4-.4.4-1 0-1.4l-4-4zM4.6 14H2v-2.6l6-6L10.6 8l-6 6zM12 6.6L9.4 4 11 2.4 13.6 5 12 6.6z"></path>
|
||||||
|
</svg>
|
||||||
|
<span className="ml-2">Paste</span>
|
||||||
|
</button>
|
||||||
|
<button className="btn pr-11 pl-7 border-slate-200 hover:border-slate-300 text-rose-500">
|
||||||
|
<svg className="mb-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M14.5744 5.66943L13.1504 7.09343C13.4284 7.44043 13.6564 7.75743 13.8194 8.00043C13.0594 9.13043 10.9694 11.8204 8.25836 11.9854L6.44336 13.8004C6.93936 13.9244 7.45736 14.0004 8.00036 14.0004C12.7074 14.0004 15.7444 8.71643 15.8714 8.49243C16.0424 8.18843 16.0434 7.81643 15.8724 7.51243C15.8254 7.42743 15.3724 6.63143 14.5744 5.66943Z" fill="#F43F5E"/>
|
||||||
|
<path fillRule="evenodd" clipRule="evenodd" d="M1.00038 16.0002C0.744375 16.0002 0.488375 15.9022 0.293375 15.7072C-0.0976249 15.3162 -0.0976249 14.6842 0.292375 14.2942L2.82138 11.7653C1.17238 10.2913 0.198375 8.61425 0.128375 8.48925C-0.0416249 8.18625 -0.0426249 7.81725 0.126375 7.51425C0.251375 7.28925 3.24537 2.00025 8.00037 2.00025C9.33138 2.00025 10.5154 2.43125 11.5484 3.03825L14.2934 0.29325C14.6844 -0.09775 15.3164 -0.09775 15.7074 0.29325C16.0984 0.68425 16.0984 1.31625 15.7074 1.70725L1.70738 15.7072C1.51238 15.9022 1.25638 16.0002 1.00038 16.0002ZM8.00037 4.00025C5.14637 4.00025 2.95837 6.83525 2.18138 7.99925C2.55938 8.56225 3.28538 9.51025 4.24038 10.3463L6.07438 8.51225C6.02938 8.34825 6.00037 8.17825 6.00037 8.00025C6.00037 6.89525 6.89537 6.00025 8.00037 6.00025C8.17838 6.00025 8.34838 6.02925 8.51237 6.07425L10.0784 4.50825C9.43738 4.20125 8.74237 4.00025 8.00037 4.00025Z" fill="#F43F5E"/>
|
||||||
|
</svg>
|
||||||
|
<span className="ml-2">Generate</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<Link className="text-sm underline hover:no-underline" to="/onboarding-2"><- Back</Link>
|
||||||
|
<Link className="btn bg-indigo-500 hover:bg-indigo-600 text-white ml-auto" to="/onboarding-4">Next Step -></Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Image */}
|
||||||
|
<div className="flex flex-col items-center h-full w-full hidden md:block absolute top-0 bottom-0 right-0 md:w-1/2" aria-hidden="true">
|
||||||
|
<div className="flex mt-40 flex-col items-center gap-2.5">
|
||||||
|
<img className="object-cover object-center" src={generateSvgAvatar()} width="493px" height="493px" alt="Onboarding" />
|
||||||
|
<span className="text-sm">Your generated Digital ID</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Onboarding3;
|
||||||
102
src/pages/Onboarding4.jsx
Normal file
102
src/pages/Onboarding4.jsx
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
import React, {useEffect} from 'react';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
import {generateSvgAvatar} from "../images/GenerateOnboardingSvg/GenerateSvg";
|
||||||
|
import Logo from "../images/logo.png";
|
||||||
|
|
||||||
|
function Onboarding4() {
|
||||||
|
return (
|
||||||
|
<main className="bg-white">
|
||||||
|
|
||||||
|
<div className="relative flex">
|
||||||
|
|
||||||
|
{/* Content */}
|
||||||
|
<div className="w-full md:w-1/2">
|
||||||
|
|
||||||
|
<div className="min-h-screen h-full flex flex-col after:flex-1">
|
||||||
|
|
||||||
|
<div className="flex-1">
|
||||||
|
|
||||||
|
{/* Header */}
|
||||||
|
<div className="flex items-center justify-between h-16 px-4 sm:px-6 lg:px-8">
|
||||||
|
{/* Logo */}
|
||||||
|
<Link className="block" to="/">
|
||||||
|
<img alt='logo' src={Logo} width="89" height="32"/>
|
||||||
|
</Link>
|
||||||
|
<div className="text-sm">
|
||||||
|
Have an account? <Link className="font-medium text-indigo-500 hover:text-indigo-600" to="/signin">Sign In</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Progress bar */}
|
||||||
|
<div className="px-4 pt-12 pb-8">
|
||||||
|
<div className="max-w-md mx-auto w-full">
|
||||||
|
<div className="relative">
|
||||||
|
<div className="absolute left-0 top-1/2 -mt-px w-full h-0.5 bg-slate-200" aria-hidden="true"></div>
|
||||||
|
<ul className="relative flex justify-between w-full">
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-1">1</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-2">2</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-3">3</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link className="flex items-center justify-center w-6 h-6 rounded-full text-xs font-semibold bg-indigo-500 text-white" to="/onboarding-4">4</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="px-4 mt-40 py-8">
|
||||||
|
<div className=" flex flex-col items-center gap-20 max-w-md mx-auto">
|
||||||
|
|
||||||
|
<div className="text-center">
|
||||||
|
<svg className="inline-flex w-16 h-16 fill-current mb-6" viewBox="0 0 64 64">
|
||||||
|
<circle className="text-emerald-100" cx="32" cy="32" r="32" />
|
||||||
|
<path className="text-emerald-500" d="m28.5 41-8-8 3-3 5 5 12-12 3 3z" />
|
||||||
|
</svg>
|
||||||
|
<h1 className="text-3xl text-slate-800 font-bold mb-8">Nice to meet you, Ivan 🙌</h1>
|
||||||
|
<Link className="btn bg-indigo-500 hover:bg-indigo-600 text-white" to="/settings/account">Go To Profile -></Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex items-center justify-between mt-6">
|
||||||
|
<div className="mr-1">
|
||||||
|
<label className="flex items-center">
|
||||||
|
<input type="checkbox" className="form-checkbox" />
|
||||||
|
<span className="text-sm ml-2">I understand that Idntty cannot recover pass phrase</span>
|
||||||
|
</label>
|
||||||
|
<label className="flex items-center">
|
||||||
|
<input type="checkbox" className="form-checkbox" />
|
||||||
|
<div className="text-sm ml-2">
|
||||||
|
<Link className="font-medium text-indigo-500 hover:text-indigo-600" to="/">I store my pharse</Link> very carefuly
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Image */}
|
||||||
|
<div className="flex flex-col items-center h-full w-full hidden md:block absolute top-0 bottom-0 right-0 md:w-1/2" aria-hidden="true">
|
||||||
|
<div className="flex mt-40 flex-col items-center gap-2.5">
|
||||||
|
<img className="object-cover object-center" src={generateSvgAvatar()} width="493px" height="493px" alt="Onboarding" />
|
||||||
|
<span className="text-sm">Your generated Digital ID</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Onboarding4;
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
import React from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import AuthImage from '../images/auth-image.jpg';
|
import AuthImage from '../images/auth-image.jpg';
|
||||||
import AuthDecoration from '../images/auth-decoration.png';
|
import AuthDecoration from '../images/auth-decoration.png';
|
||||||
|
|
||||||
function Signin() {
|
function Signin() {
|
||||||
|
useEffect(() => {
|
||||||
|
localStorage.setItem('svgKey', '')
|
||||||
|
}, [])
|
||||||
return (
|
return (
|
||||||
<main className="bg-white">
|
<main className="bg-white">
|
||||||
|
|
||||||
@@ -94,4 +97,4 @@ function Signin() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Signin;
|
export default Signin;
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ function Validate () {
|
|||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Validate;
|
export default Validate;
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ function ValidationLog () {
|
|||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ValidationLog;
|
export default ValidationLog;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { useState } from 'react';
|
import React, {useEffect, useState} from 'react';
|
||||||
|
|
||||||
import Sidebar from '../../partials/Sidebar';
|
import Sidebar from '../../partials/Sidebar';
|
||||||
import Header from '../../partials/Header';
|
import Header from '../../partials/Header';
|
||||||
@@ -6,7 +6,9 @@ import SettingsSidebar from '../../partials/settings/SettingsSidebar';
|
|||||||
import AccountPanel from '../../partials/settings/AccountPanel';
|
import AccountPanel from '../../partials/settings/AccountPanel';
|
||||||
|
|
||||||
function Account() {
|
function Account() {
|
||||||
|
useEffect(() => {
|
||||||
|
localStorage.setItem('svgKey', '')
|
||||||
|
}, [])
|
||||||
const [sidebarOpen, setSidebarOpen] = useState(false);
|
const [sidebarOpen, setSidebarOpen] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -15,7 +17,7 @@ function Account() {
|
|||||||
{/* Sidebar */}
|
{/* Sidebar */}
|
||||||
<Sidebar sidebarOpen={sidebarOpen} setSidebarOpen={setSidebarOpen} />
|
<Sidebar sidebarOpen={sidebarOpen} setSidebarOpen={setSidebarOpen} />
|
||||||
|
|
||||||
{/* Content area */}
|
{/* Content area */}
|
||||||
<div className="relative flex flex-col flex-1 overflow-y-auto overflow-x-hidden">
|
<div className="relative flex flex-col flex-1 overflow-y-auto overflow-x-hidden">
|
||||||
|
|
||||||
{/* Site header */}
|
{/* Site header */}
|
||||||
@@ -30,7 +32,7 @@ function Account() {
|
|||||||
<h1 className="text-2xl md:text-3xl text-slate-800 font-bold">Account Settings ✨</h1>
|
<h1 className="text-2xl md:text-3xl text-slate-800 font-bold">Account Settings ✨</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Content */}
|
{/* Content */}
|
||||||
<div className="bg-white shadow-lg rounded-sm mb-8">
|
<div className="bg-white shadow-lg rounded-sm mb-8">
|
||||||
<div className="flex flex-col md:flex-row md:-mr-px">
|
<div className="flex flex-col md:flex-row md:-mr-px">
|
||||||
<SettingsSidebar />
|
<SettingsSidebar />
|
||||||
@@ -42,9 +44,9 @@ function Account() {
|
|||||||
</main>
|
</main>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Account;
|
export default Account;
|
||||||
|
|||||||
@@ -65,4 +65,4 @@ function Header({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Header;
|
export default Header;
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ function Sidebar({
|
|||||||
|
|
||||||
const trigger = useRef(null);
|
const trigger = useRef(null);
|
||||||
const sidebar = useRef(null);
|
const sidebar = useRef(null);
|
||||||
|
|
||||||
const storedSidebarExpanded = localStorage.getItem('sidebar-expanded');
|
const storedSidebarExpanded = localStorage.getItem('sidebar-expanded');
|
||||||
const [sidebarExpanded, setSidebarExpanded] = useState(storedSidebarExpanded === null ? false : storedSidebarExpanded === 'true');
|
const [sidebarExpanded, setSidebarExpanded] = useState(storedSidebarExpanded === null ? false : storedSidebarExpanded === 'true');
|
||||||
|
|
||||||
@@ -1433,6 +1432,34 @@ function Sidebar({
|
|||||||
</span>
|
</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
|
<li className="mb-1 last:mb-0">
|
||||||
|
<NavLink end to="/onboarding-1" className="block text-slate-400 hover:text-slate-200 transition duration-150 truncate">
|
||||||
|
<span className="text-sm font-medium lg:opacity-0 lg:sidebar-expanded:opacity-100 2xl:opacity-100 duration-200">
|
||||||
|
Step 1
|
||||||
|
</span>
|
||||||
|
</NavLink>
|
||||||
|
</li>
|
||||||
|
<li className="mb-1 last:mb-0">
|
||||||
|
<NavLink end to="/onboarding-2" className="block text-slate-400 hover:text-slate-200 transition duration-150 truncate">
|
||||||
|
<span className="text-sm font-medium lg:opacity-0 lg:sidebar-expanded:opacity-100 2xl:opacity-100 duration-200">
|
||||||
|
Step 2
|
||||||
|
</span>
|
||||||
|
</NavLink>
|
||||||
|
</li>
|
||||||
|
<li className="mb-1 last:mb-0">
|
||||||
|
<NavLink end to="/onboarding-3" className="block text-slate-400 hover:text-slate-200 transition duration-150 truncate">
|
||||||
|
<span className="text-sm font-medium lg:opacity-0 lg:sidebar-expanded:opacity-100 2xl:opacity-100 duration-200">
|
||||||
|
Step 3
|
||||||
|
</span>
|
||||||
|
</NavLink>
|
||||||
|
</li>
|
||||||
|
<li className="mb-1 last:mb-0">
|
||||||
|
<NavLink end to="/onboarding-4" className="block text-slate-400 hover:text-slate-200 transition duration-150 truncate">
|
||||||
|
<span className="text-sm font-medium lg:opacity-0 lg:sidebar-expanded:opacity-100 2xl:opacity-100 duration-200">
|
||||||
|
Step 4
|
||||||
|
</span>
|
||||||
|
</NavLink>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
@@ -1683,4 +1710,4 @@ function Sidebar({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Sidebar;
|
export default Sidebar;
|
||||||
|
|||||||
Reference in New Issue
Block a user