dh-remixer-badge 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +35 -0
- package/src/common/BadgeContainer.tsx +11 -0
- package/src/common/Button.tsx +15 -0
- package/src/common/Divider.tsx +5 -0
- package/src/common/MadeWithText.tsx +15 -0
- package/src/components/DefaultBadge.tsx +12 -0
- package/src/components/NavBadge.tsx +24 -0
- package/src/components/UpgradeBadge.tsx +22 -0
- package/src/declarations.d.ts +15 -0
- package/src/defaultBadge.tsx +14 -0
- package/src/fonts/ProximaNovaBold.woff +0 -0
- package/src/fonts/ProximaNovaRegular.woff +0 -0
- package/src/icons/remixer-log.svg +34 -0
- package/src/icons/right-arrow.svg +3 -0
- package/src/navBadge.tsx +15 -0
- package/src/styles/fonts.scss +13 -0
- package/src/styles/index.scss +65 -0
- package/src/upgradeBadge.tsx +14 -0
- package/tsconfig.json +14 -0
- package/webpack.config.js +44 -0
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dh-remixer-badge",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"license": "ISC",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "webpack serve",
|
|
8
|
+
"build": "webpack",
|
|
9
|
+
"type-check": "tsc"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"react": "19.2.5",
|
|
13
|
+
"react-dom": "19.2.5"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@babel/core": "7.29.0",
|
|
17
|
+
"@babel/preset-env": "7.29.3",
|
|
18
|
+
"@babel/preset-react": "7.28.5",
|
|
19
|
+
"@svgr/webpack": "8.1.0",
|
|
20
|
+
"@types/react": "19.2.14",
|
|
21
|
+
"@types/react-dom": "19.2.3",
|
|
22
|
+
"babel-loader": "10.1.1",
|
|
23
|
+
"css-loader": "7.1.4",
|
|
24
|
+
"esbuild": "0.28.0",
|
|
25
|
+
"esbuild-loader": "4.4.3",
|
|
26
|
+
"html-webpack-plugin": "5.6.7",
|
|
27
|
+
"sass": "1.99.0",
|
|
28
|
+
"sass-loader": "16.0.7",
|
|
29
|
+
"style-loader": "4.0.0",
|
|
30
|
+
"typescript": "6.0.3",
|
|
31
|
+
"webpack": "5.106.2",
|
|
32
|
+
"webpack-cli": "7.0.2",
|
|
33
|
+
"webpack-dev-server": "5.2.3"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type ButtonProps = {
|
|
2
|
+
children: React.ReactNode;
|
|
3
|
+
onClick: () => void;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
const Button = (props: ButtonProps) => {
|
|
7
|
+
const { onClick, children } = props;
|
|
8
|
+
return (
|
|
9
|
+
<button className="button" onClick={onClick}>
|
|
10
|
+
{children}
|
|
11
|
+
</button>
|
|
12
|
+
);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default Button;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import RemixerIcon from "../icons/remixer-log.svg";
|
|
2
|
+
|
|
3
|
+
const MadeWithText = () => {
|
|
4
|
+
return (
|
|
5
|
+
<div className="text-container">
|
|
6
|
+
<RemixerIcon />
|
|
7
|
+
<p className="made-with-remixer">
|
|
8
|
+
<span className="made-with">Built with</span>{" "}
|
|
9
|
+
<span className="remixer">Remixer</span>
|
|
10
|
+
</p>
|
|
11
|
+
</div>
|
|
12
|
+
);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default MadeWithText;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import BadgeContainer from "../common/BadgeContainer";
|
|
2
|
+
import Button from "../common/Button";
|
|
3
|
+
import Divider from "../common/Divider";
|
|
4
|
+
import MadeWithText from "../common/MadeWithText";
|
|
5
|
+
|
|
6
|
+
const NavBadge = () => {
|
|
7
|
+
const handleUpgrade = () => {};
|
|
8
|
+
|
|
9
|
+
const handleGetAccess = () => {};
|
|
10
|
+
|
|
11
|
+
const handleSignup = () => {};
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<BadgeContainer>
|
|
15
|
+
<MadeWithText />
|
|
16
|
+
<Divider />
|
|
17
|
+
<Button onClick={handleUpgrade}>Upgrade plan</Button>
|
|
18
|
+
<Button onClick={handleGetAccess}>Get access</Button>
|
|
19
|
+
<Button onClick={handleSignup}>Signup</Button>
|
|
20
|
+
</BadgeContainer>
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default NavBadge;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import BadgeContainer from "../common/BadgeContainer";
|
|
2
|
+
import Button from "../common/Button";
|
|
3
|
+
import Divider from "../common/Divider";
|
|
4
|
+
import MadeWithText from "../common/MadeWithText";
|
|
5
|
+
import RightIcon from "../icons/right-arrow.svg";
|
|
6
|
+
|
|
7
|
+
const UpgradeBadge = () => {
|
|
8
|
+
const handleUpgrade = () => {};
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<BadgeContainer>
|
|
12
|
+
<MadeWithText />
|
|
13
|
+
<Divider />
|
|
14
|
+
<div className="arrowed-button">
|
|
15
|
+
<Button onClick={handleUpgrade}>Upgrade plan</Button>
|
|
16
|
+
<RightIcon />
|
|
17
|
+
</div>
|
|
18
|
+
</BadgeContainer>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default UpgradeBadge;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare module "*.svg" {
|
|
2
|
+
import type { FC, SVGProps } from "react";
|
|
3
|
+
const ReactComponent: FC<SVGProps<SVGSVGElement>>;
|
|
4
|
+
export default ReactComponent;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
declare module "*.scss" {
|
|
8
|
+
const styles: Record<string, string>;
|
|
9
|
+
export default styles;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare module "*.css" {
|
|
13
|
+
const styles: Record<string, string>;
|
|
14
|
+
export default styles;
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import "./styles/index.scss";
|
|
4
|
+
import DefaultBadge from "./components/DefaultBadge";
|
|
5
|
+
|
|
6
|
+
const renderReact = () => {
|
|
7
|
+
const container = document.getElementById("root");
|
|
8
|
+
if (!container) return;
|
|
9
|
+
|
|
10
|
+
const root = createRoot(container);
|
|
11
|
+
root.render(<DefaultBadge />);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
renderReact();
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
2
|
+
<path
|
|
3
|
+
d="M18.0005 12.0025C14.6877 12.0025 12.0012 14.6889 12.0012 18.0016V24.0006H24.0024V12H18.0031L18.0005 12.0025Z"
|
|
4
|
+
fill="url(#paint0_linear_14487_36369)" />
|
|
5
|
+
<path
|
|
6
|
+
d="M12.0012 5.99904V0H0V12.0006H5.99932C9.31215 12.0006 11.9986 9.31423 11.9986 6.00155L12.0012 5.99904Z"
|
|
7
|
+
fill="url(#paint1_linear_14487_36369)" />
|
|
8
|
+
<path
|
|
9
|
+
d="M5.99902 11.999C9.31222 11.999 11.9988 14.6851 11.999 17.998C11.999 21.3112 9.31236 23.9971 5.99902 23.9971C2.68583 23.9969 0 21.3111 0 17.998C0.00021569 14.6852 2.68596 11.9992 5.99902 11.999ZM18 0C21.3133 0 24 2.68585 24 5.99902C24 9.3122 21.3133 11.998 18 11.998C14.6869 11.9978 12.001 9.31205 12.001 5.99902C12.001 2.68601 14.6869 0.00024737 18 0Z"
|
|
10
|
+
fill="url(#paint2_linear_14487_36369)" />
|
|
11
|
+
<path d="M12.0012 6H18.0005V11.999C14.6877 11.999 12.0012 9.31016 12.0012 6Z" fill="white" />
|
|
12
|
+
<path d="M5.99927 12V6.00096H11.9986C11.9986 9.31364 9.30958 12 5.99927 12Z" fill="white" />
|
|
13
|
+
<path d="M12.0012 18H6.0019L6.0019 12.001C9.31473 12.001 12.0012 14.6898 12.0012 18Z" fill="white" />
|
|
14
|
+
<path d="M18.0005 12V17.999H12.0012C12.0012 14.6864 14.6902 12 18.0005 12Z" fill="white" />
|
|
15
|
+
<defs>
|
|
16
|
+
<linearGradient id="paint0_linear_14487_36369" x1="12.0024" y1="12" x2="24.0018" y2="24"
|
|
17
|
+
gradientUnits="userSpaceOnUse">
|
|
18
|
+
<stop stop-color="#3F3F46" />
|
|
19
|
+
<stop offset="1" stop-color="#71717A" />
|
|
20
|
+
</linearGradient>
|
|
21
|
+
<linearGradient id="paint1_linear_14487_36369" x1="0.001139" y1="3.18903e-07" x2="12.0005"
|
|
22
|
+
y2="12" gradientUnits="userSpaceOnUse">
|
|
23
|
+
<stop stop-color="#71717A" />
|
|
24
|
+
<stop offset="1" stop-color="#3F3F46" />
|
|
25
|
+
</linearGradient>
|
|
26
|
+
<linearGradient id="paint2_linear_14487_36369" x1="-8.53364" y1="33.7017" x2="-6.30119"
|
|
27
|
+
y2="-14.057" gradientUnits="userSpaceOnUse">
|
|
28
|
+
<stop stop-color="#BE59FF" />
|
|
29
|
+
<stop offset="0.19" stop-color="#9D60FF" />
|
|
30
|
+
<stop offset="0.74" stop-color="#4274FF" />
|
|
31
|
+
<stop offset="1" stop-color="#1F7CFF" />
|
|
32
|
+
</linearGradient>
|
|
33
|
+
</defs>
|
|
34
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M11.1635 10.0004L7.60246 6.43958C7.48718 6.32417 7.42816 6.19646 7.42538 6.05646C7.42274 5.9166 7.48177 5.78625 7.60246 5.66542C7.72329 5.54472 7.85232 5.48438 7.98954 5.48438C8.12677 5.48438 8.25579 5.54472 8.37663 5.66542L12.2468 9.53563C12.3109 9.59979 12.3589 9.67167 12.391 9.75125C12.4231 9.83083 12.4391 9.91389 12.4391 10.0004C12.4391 10.0869 12.4231 10.17 12.391 10.2496C12.3589 10.3292 12.3109 10.401 12.2468 10.4652L8.37663 14.3354C8.26121 14.4507 8.13697 14.5063 8.00392 14.5021C7.871 14.4978 7.74413 14.4353 7.62329 14.3146C7.5026 14.1938 7.44225 14.0647 7.44225 13.9275C7.44225 13.7903 7.5026 13.6613 7.62329 13.5404L11.1635 10.0004Z" fill="#A18AFB" fill-opacity="0.5"/>
|
|
3
|
+
</svg>
|
package/src/navBadge.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import "./styles/index.scss";
|
|
4
|
+
import DefaultBadge from "./components/DefaultBadge";
|
|
5
|
+
import NavBadge from "./components/NavBadge";
|
|
6
|
+
|
|
7
|
+
const renderReact = () => {
|
|
8
|
+
const container = document.getElementById("root");
|
|
9
|
+
if (!container) return;
|
|
10
|
+
|
|
11
|
+
const root = createRoot(container);
|
|
12
|
+
root.render(<NavBadge />);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
renderReact();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: "proxima-nova";
|
|
3
|
+
src: url("../fonts/ProximaNovaRegular.woff") format("woff");
|
|
4
|
+
font-weight: normal;
|
|
5
|
+
font-style: normal;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@font-face {
|
|
9
|
+
font-family: "proxima-nova";
|
|
10
|
+
src: url("../fonts/ProximaNovaBold.woff") format("woff");
|
|
11
|
+
font-weight: bold;
|
|
12
|
+
font-style: bold;
|
|
13
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
@import "./fonts.scss";
|
|
2
|
+
|
|
3
|
+
.badge-container {
|
|
4
|
+
background-color: #09090b;
|
|
5
|
+
border: 2px solid #3f3f46;
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
padding: 8px;
|
|
9
|
+
border-radius: 14px;
|
|
10
|
+
gap: 8px;
|
|
11
|
+
|
|
12
|
+
.text-container {
|
|
13
|
+
display: flex;
|
|
14
|
+
gap: 8px;
|
|
15
|
+
align-items: center;
|
|
16
|
+
|
|
17
|
+
.made-with-remixer {
|
|
18
|
+
margin: 0;
|
|
19
|
+
line-height: 20px;
|
|
20
|
+
font-family: "MyFont", sans-serif;
|
|
21
|
+
font-size: 13px;
|
|
22
|
+
|
|
23
|
+
.made-with {
|
|
24
|
+
color: #d4d4d8;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.remixer {
|
|
28
|
+
color: #fff;
|
|
29
|
+
font-weight: 700;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.divider {
|
|
35
|
+
height: 20px;
|
|
36
|
+
width: 1px;
|
|
37
|
+
background-color: #ffffff1a;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.arrowed-button {
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.button {
|
|
46
|
+
color: #c6b7ff;
|
|
47
|
+
font-weight: 700;
|
|
48
|
+
background-color: transparent;
|
|
49
|
+
border: none;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
height: 24px;
|
|
52
|
+
padding: 0 6px;
|
|
53
|
+
font-size: 13px;
|
|
54
|
+
border-radius: 6px;
|
|
55
|
+
line-height: 20px;
|
|
56
|
+
|
|
57
|
+
&:hover {
|
|
58
|
+
background-color: #b6a3fe1a;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&:active {
|
|
62
|
+
background-color: #b6a3fe33;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import "./styles/index.scss";
|
|
4
|
+
import UpgradeBadge from "./components/UpgradeBadge";
|
|
5
|
+
|
|
6
|
+
const renderReact = () => {
|
|
7
|
+
const container = document.getElementById("root");
|
|
8
|
+
if (!container) return;
|
|
9
|
+
|
|
10
|
+
const root = createRoot(container);
|
|
11
|
+
root.render(<UpgradeBadge />);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
renderReact();
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2017",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"strict": true,
|
|
8
|
+
"noEmit": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true
|
|
12
|
+
},
|
|
13
|
+
"include": ["src"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const path = require("path");
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
mode: "development",
|
|
5
|
+
entry: {
|
|
6
|
+
defaultBadge: "./src/defaultBadge.tsx",
|
|
7
|
+
upgradeBadge: "./src/upgradeBadge.tsx",
|
|
8
|
+
navBadge: "./src/navBadge.tsx",
|
|
9
|
+
},
|
|
10
|
+
output: {
|
|
11
|
+
path: path.resolve(__dirname, "dist"),
|
|
12
|
+
filename: "[name].js",
|
|
13
|
+
clean: true,
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
resolve: {
|
|
17
|
+
extensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
18
|
+
},
|
|
19
|
+
module: {
|
|
20
|
+
rules: [
|
|
21
|
+
{
|
|
22
|
+
test: /\.[jt]sx?$/,
|
|
23
|
+
loader: "esbuild-loader",
|
|
24
|
+
options: {
|
|
25
|
+
loader: "tsx",
|
|
26
|
+
target: "es2017",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
test: /\.svg$/i,
|
|
31
|
+
issuer: /\.[jt]sx?$/,
|
|
32
|
+
use: ["@svgr/webpack"],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
test: /\.s?css$/i,
|
|
36
|
+
use: ["style-loader", "css-loader", "sass-loader"],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
test: /\.woff2?$/i,
|
|
40
|
+
type: "asset/resource",
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
};
|