opsnippets 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -1,49 +1,47 @@
1
- # Installation
2
-
3
- ```bash
4
- npm i opsnippets
5
- ```
6
-
7
- # Usage
8
-
9
-
10
- ```javascript
11
- import { CodeBlock} from "demo"
12
- function App() {
13
- const code = `
14
- import React from 'react';
15
- import CodeSnippet from './CodeSnippet';
16
- const App = () => {
17
- return (
18
- <div>
19
- <h1>My Code Snippet Example</h1>
20
- <CodeSnippet />
21
- </div>
22
- );
23
- };
24
- export default App;`
25
- return (
26
- <>
27
- <CodeBlock code={code} />
28
- </>
29
- )
30
- }
31
- export default App;
32
- ```
33
- <a href="https://imgbb.com/"><img src="https://i.ibb.co/gVrTCJN/Screenshot-from-2024-08-10-18-12-35.png" border="0"></a>
34
-
35
-
36
- ```javascript
37
- import { OneLineBlock} from "demo"
38
- function App() {
39
- return (
40
- <>
41
- <OneLineBlock command="npm i mongoose" />
42
- </>
43
- )
44
- }
45
- export default App;
46
- ```
47
-
48
-
49
- <a href="https://imgbb.com/"><img src="https://i.ibb.co/vYJqrrc/Screenshot-from-2024-08-10-18-13-23.png" alt="Screenshot-from-2024-08-10-18-13-23" border="0"></a>
1
+ # Installation
2
+
3
+ ```bash
4
+ npm i opsnippets
5
+ ```
6
+
7
+ # Usage
8
+ ```javascript
9
+ import { CodeBlock} from "demo"
10
+ function App() {
11
+ const code = `
12
+ import React from 'react';
13
+ import CodeSnippet from './CodeSnippet';
14
+ const App = () => {
15
+ return (
16
+ <div>
17
+ <h1>My Code Snippet Example</h1>
18
+ <CodeSnippet />
19
+ </div>
20
+ );
21
+ };
22
+ export default App;`
23
+ return (
24
+ <>
25
+ <CodeBlock code={code} />
26
+ </>
27
+ )
28
+ }
29
+ export default App;
30
+ ```
31
+ <a href="https://imgbb.com/"><img src="https://i.ibb.co/gVrTCJN/Screenshot-from-2024-08-10-18-12-35.png" border="0"></a>
32
+
33
+
34
+ ```javascript
35
+ import { OneLineBlock} from "demo"
36
+ function App() {
37
+ return (
38
+ <>
39
+ <OneLineBlock command="npm i mongoose" />
40
+ </>
41
+ )
42
+ }
43
+ export default App;
44
+ ```
45
+
46
+
47
+ <a href="https://imgbb.com/"><img src="https://i.ibb.co/vYJqrrc/Screenshot-from-2024-08-10-18-13-23.png" alt="Screenshot-from-2024-08-10-18-13-23" border="0"></a>
package/assets.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- // src/assets.d.ts
2
- declare module '*.png' {
3
- const src: string;
4
- export default src;
5
- }
1
+ // src/assets.d.ts
2
+ declare module '*.png' {
3
+ const src: string;
4
+ export default src;
5
+ }
6
6
 
File without changes
File without changes
File without changes
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ type TypeProp = "dark" | "light" | "basic" | "blue" | "green" | "purple" | "orange" | "red" | "yellow" | "teal";
3
+ interface props {
4
+ command: string;
5
+ type: TypeProp;
6
+ width?: string;
7
+ height?: string;
8
+ title?: string;
9
+ }
10
+ declare const OneLineBlock: ({ command, type, width, height, title, }: props) => React.JSX.Element;
11
+ export { OneLineBlock };
File without changes
package/dist/index.d.ts CHANGED
@@ -1,4 +1,2 @@
1
- export * from "./components/Button";
2
- export * from "./hooks/counter";
3
- export * from "./components/OneLineComand";
1
+ export * from "./components/OneLineCommand";
4
2
  export * from "./components/CodeBlock";
package/dist/index.js CHANGED
@@ -3,31 +3,11 @@ import { useState } from 'react';
3
3
  import { Prism } from 'react-syntax-highlighter';
4
4
  import { atomDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
5
5
 
6
- const UseCounter = () => {
7
- const [count, setCount] = useState(0);
8
- const increment = () => {
9
- setCount(count + 1);
10
- };
11
- const decrement = () => {
12
- setCount(count - 1);
13
- };
14
- return { increment, decrement, count };
15
- };
16
-
17
- const Increment = () => {
18
- const { increment } = UseCounter();
19
- return (React.createElement("button", { onClick: increment }, "Increment"));
20
- };
21
- const Decrement = () => {
22
- const { decrement } = UseCounter();
23
- return (React.createElement("button", { onClick: decrement }, "Decrement"));
24
- };
25
-
26
6
  var copyIcon = "data:image/png;base64,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";
27
7
 
28
8
  var tickIcon = "data:image/png;base64,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";
29
9
 
30
- const OneLineBlock = ({ command }) => {
10
+ const OneLineBlock = ({ command, type, width = "400", height = "0", title = "Terminal", }) => {
31
11
  const [isCopied, setIsCopied] = useState(false);
32
12
  const copyToClipboard = () => {
33
13
  navigator.clipboard.writeText(command);
@@ -36,52 +16,115 @@ const OneLineBlock = ({ command }) => {
36
16
  setIsCopied(false);
37
17
  }, 1000);
38
18
  };
19
+ const colorScheme = {
20
+ dark: {
21
+ background: "#1A1B26",
22
+ text: "#A3E635",
23
+ highlight: "#7dd3fc",
24
+ border: "1px solid #2D3748",
25
+ },
26
+ light: {
27
+ background: "#f8fafc",
28
+ text: "#334155",
29
+ highlight: "#2563eb",
30
+ border: "1px solid #94a3b8",
31
+ },
32
+ basic: {
33
+ background: "#272822",
34
+ text: "#F8F8F2",
35
+ highlight: "#66D9EF",
36
+ border: "1px solid #A6E22E",
37
+ },
38
+ blue: {
39
+ background: "#1E3A8A",
40
+ text: "#BFDBFE",
41
+ highlight: "#3B82F6",
42
+ border: "1px solid #60A5FA",
43
+ },
44
+ green: {
45
+ background: "#064E3B",
46
+ text: "#D1FAE5",
47
+ highlight: "#10B981",
48
+ border: "1px solid #22D3EE",
49
+ },
50
+ purple: {
51
+ background: "#4C1D95",
52
+ text: "#E9D5FF",
53
+ highlight: "#A78BFA",
54
+ border: "1px solid #C084FC",
55
+ },
56
+ orange: {
57
+ background: "#7C2D12",
58
+ text: "#FFEDD5",
59
+ highlight: "#FB923C",
60
+ border: "1px solid #F97316",
61
+ },
62
+ red: {
63
+ background: "#7F1D1D",
64
+ text: "#FFE4E6",
65
+ highlight: "#EF4444",
66
+ border: "1px solid #F87171",
67
+ },
68
+ yellow: {
69
+ background: "#78350F",
70
+ text: "#FEF9C3",
71
+ highlight: "#FACC15",
72
+ border: "1px solid #FBBF24",
73
+ },
74
+ teal: {
75
+ background: "#134E4A",
76
+ text: "#CCFBF1",
77
+ highlight: "#14B8A6",
78
+ border: "1px solid #2DD4BF",
79
+ },
80
+ };
81
+ const colors = colorScheme[type];
39
82
  return (React.createElement("div", { style: {
40
- width: "400px",
41
- background: '#1e293b',
42
- display: 'flex',
83
+ width: width + "px",
84
+ background: colors.background,
85
+ display: "flex",
43
86
  flexDirection: "column",
44
- // justifyItems: "center",
45
87
  padding: "2px",
46
88
  borderRadius: "5px",
47
- color: "white",
89
+ color: colors.text,
48
90
  fontFamily: "Arial, sans-serif",
49
91
  fontSize: "18px",
50
92
  fontWeight: "bold",
51
93
  } },
52
94
  React.createElement("div", { style: {
53
- height: '50px',
54
- display: 'flex',
95
+ height: "50px",
96
+ display: "flex",
55
97
  justifyContent: "space-between",
56
- border: "1px ",
57
98
  alignItems: "center",
58
- borderBottom: "1px solid white",
59
- padding: '5px'
99
+ borderBottom: colors.border,
100
+ padding: "5px",
60
101
  } },
61
102
  React.createElement("p", { style: {
62
- color: "#7dd3fc",
63
- fontSize: '20px',
103
+ color: colors.highlight,
104
+ fontSize: "20px",
64
105
  padding: "5px",
65
- fontWeight: 'lighter'
66
- } }, "Terminal"),
106
+ fontWeight: "lighter",
107
+ } }, title),
67
108
  React.createElement("button", { onClick: () => copyToClipboard(), style: {
68
109
  width: "30px",
69
- height: '30px',
70
- cursor: "pointer"
110
+ height: "30px",
111
+ cursor: "pointer",
112
+ background: "none",
113
+ border: "none",
71
114
  } },
72
115
  React.createElement("img", { width: "100%", height: "100%", style: {
73
- objectFit: "contain"
74
- }, src: !isCopied ? copyIcon : tickIcon }))),
116
+ objectFit: "contain",
117
+ }, src: !isCopied ? copyIcon : tickIcon, alt: isCopied ? "Copied" : "Copy" }))),
75
118
  React.createElement("div", { style: {
76
119
  display: "flex",
77
120
  alignItems: "center",
78
- gap: "10px"
121
+ gap: "10px",
79
122
  } },
80
123
  React.createElement("span", { className: "icon" },
81
- React.createElement("svg", { viewBox: "0 0 24 24", fill: "#7dd3fc", color: '#7dd3fc', height: "1 3", width: "13", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", className: "w-[19px] h-[19px] text-gray-800 dark:text-white" },
82
- React.createElement("path", { d: "m9 5 7 7-7 7", "stroke-width": "3", "stroke-linejoin": "round", "stroke-linecap": "round", stroke: "currentColor" }))),
124
+ React.createElement("svg", { viewBox: "0 0 24 24", fill: colors.highlight, height: "13", width: "13", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" },
125
+ React.createElement("path", { d: "m9 5 7 7-7 7", strokeWidth: "3", strokeLinejoin: "round", strokeLinecap: "round", stroke: "currentColor" }))),
83
126
  React.createElement("p", { style: {
84
- fontFamily: "monospace"
127
+ fontFamily: "monospace",
85
128
  } }, command))));
86
129
  };
87
130
 
@@ -117,4 +160,4 @@ const CodeBlock = ({ code }) => {
117
160
  }, src: !isCopied ? copyIcon : tickIcon }))));
118
161
  };
119
162
 
120
- export { CodeBlock, Decrement, Increment, OneLineBlock, UseCounter };
163
+ export { CodeBlock, OneLineBlock };
package/package.json CHANGED
@@ -1,29 +1,29 @@
1
- {
2
- "name": "opsnippets",
3
- "version": "1.0.2",
4
- "description": "",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "types": "dist/index.d.ts",
8
-
9
- "scripts": {
10
- "build": "npx rollup -c"
11
- },
12
- "keywords": ["code","snippets","block","code block","snippets generator"],
13
- "author": "om pharate",
14
- "license": "ISC",
15
- "devDependencies": {
16
- "@rollup/plugin-babel": "^6.0.4",
17
- "@rollup/plugin-typescript": "^11.1.6",
18
- "@types/react": "^18.3.3",
19
- "react": "^18.3.1",
20
- "react-dom": "^18.3.1",
21
- "rollup": "^4.20.0",
22
- "rollup-plugin-url": "^3.0.1",
23
- "tslib": "^2.6.3"
24
- },
25
- "dependencies": {
26
- "@types/react-syntax-highlighter": "^15.5.13",
27
- "react-syntax-highlighter": "^15.5.0"
28
- }
29
- }
1
+ {
2
+ "name": "opsnippets",
3
+ "version": "1.0.3",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "types": "dist/index.d.ts",
8
+
9
+ "scripts": {
10
+ "build": "npx rollup -c"
11
+ },
12
+ "keywords": ["code","snippets","block","code block","snippets generator"],
13
+ "author": "om pharate",
14
+ "license": "ISC",
15
+ "devDependencies": {
16
+ "@rollup/plugin-babel": "^6.0.4",
17
+ "@rollup/plugin-typescript": "^11.1.6",
18
+ "@types/react": "^18.3.3",
19
+ "react": "^18.3.1",
20
+ "react-dom": "^18.3.1",
21
+ "rollup": "^4.20.0",
22
+ "rollup-plugin-url": "^3.0.1",
23
+ "tslib": "^2.6.3"
24
+ },
25
+ "dependencies": {
26
+ "@types/react-syntax-highlighter": "^15.5.13",
27
+ "react-syntax-highlighter": "^15.5.0"
28
+ }
29
+ }
package/rollup.config.js CHANGED
@@ -1,22 +1,22 @@
1
- import { defineConfig } from "rollup";
2
- import typescript from "@rollup/plugin-typescript";
3
- import url from "rollup-plugin-url"; // Import the URL plugin
4
-
5
- export default defineConfig({
6
- input: "src/index.ts",
7
- output: {
8
- dir: "dist",
9
- format: "es",
10
- name: "demo",
11
- },
12
- external: ["react", "react-dom"],
13
- plugins: [
14
- typescript({ tsconfig: "tsconfig.json" }),
15
- url({
16
- // Inline files smaller than 10 kbytes
17
- limit: 10 * 1024,
18
- // Output the files in a specific directory if the limit is exceeded
19
- fileName: '[name].[hash][extname]',
20
- }),
21
- ],
22
- });
1
+ import { defineConfig } from "rollup";
2
+ import typescript from "@rollup/plugin-typescript";
3
+ import url from "rollup-plugin-url"; // Import the URL plugin
4
+
5
+ export default defineConfig({
6
+ input: "src/index.ts",
7
+ output: {
8
+ dir: "dist",
9
+ format: "es",
10
+ name: "demo",
11
+ },
12
+ external: ["react", "react-dom"],
13
+ plugins: [
14
+ typescript({ tsconfig: "tsconfig.json" }),
15
+ url({
16
+ // Inline files smaller than 10 kbytes
17
+ limit: 10 * 1024,
18
+ // Output the files in a specific directory if the limit is exceeded
19
+ fileName: '[name].[hash][extname]',
20
+ }),
21
+ ],
22
+ });
File without changes
File without changes
@@ -1,42 +1,42 @@
1
- import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
2
- import { atomDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
3
- import copyIcon from '../assets/copy.png'
4
- import tickIcon from '../assets/tick.png'
5
- import { useState } from 'react';
6
- import * as React from 'react';
7
- const CodeBlock = ({ code }: { code: string }) => {
8
- const [isCopied, setIsCopied] = useState(false);
9
- const copyToClipboard = () => {
10
- navigator.clipboard.writeText(code);
11
- setIsCopied(true);
12
- setTimeout(() => {
13
- setIsCopied(false);
14
- }, 1000);
15
- }
16
- return (
17
- <div style={{
18
- display:"flex",
19
- alignItems:'start',
20
- justifyContent:"space-between",
21
- padding:"5px",
22
- borderRadius:"5px",
23
- color:"white",
24
- fontFamily:"Arial, sans-serif",
25
- fontSize:"18px",
26
- backgroundColor:'rgb(29, 31, 33)',
27
- width:"40%",
28
- }}>
29
- <SyntaxHighlighter language="javascript" style={atomDark}>
30
- {code}
31
- </SyntaxHighlighter>
32
- <button onClick={() => copyToClipboard()} style={{
33
- width: "30px",
34
- height: '30px',
35
- cursor: "pointer"
36
- }}><img width={"100%"} height={"100%"} style={{
37
- objectFit: "contain"
38
- }} src={!isCopied ? copyIcon : tickIcon} /></button>
39
- </div>
40
- )
41
- }
1
+ import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
2
+ import { atomDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
3
+ import copyIcon from '../assets/copy.png'
4
+ import tickIcon from '../assets/tick.png'
5
+ import { useState } from 'react';
6
+ import * as React from 'react';
7
+ const CodeBlock = ({ code }: { code: string }) => {
8
+ const [isCopied, setIsCopied] = useState(false);
9
+ const copyToClipboard = () => {
10
+ navigator.clipboard.writeText(code);
11
+ setIsCopied(true);
12
+ setTimeout(() => {
13
+ setIsCopied(false);
14
+ }, 1000);
15
+ }
16
+ return (
17
+ <div style={{
18
+ display:"flex",
19
+ alignItems:'start',
20
+ justifyContent:"space-between",
21
+ padding:"5px",
22
+ borderRadius:"5px",
23
+ color:"white",
24
+ fontFamily:"Arial, sans-serif",
25
+ fontSize:"18px",
26
+ backgroundColor:'rgb(29, 31, 33)',
27
+ width:"40%",
28
+ }}>
29
+ <SyntaxHighlighter language="javascript" style={atomDark}>
30
+ {code}
31
+ </SyntaxHighlighter>
32
+ <button onClick={() => copyToClipboard()} style={{
33
+ width: "30px",
34
+ height: '30px',
35
+ cursor: "pointer"
36
+ }}><img width={"100%"} height={"100%"} style={{
37
+ objectFit: "contain"
38
+ }} src={!isCopied ? copyIcon : tickIcon} /></button>
39
+ </div>
40
+ )
41
+ }
42
42
  export {CodeBlock}
@@ -0,0 +1,201 @@
1
+ import * as React from "react";
2
+ import { useState } from "react";
3
+ import copyIcon from "../assets/copy.png";
4
+ import tickIcon from "../assets/tick.png";
5
+
6
+ type TypeProp =
7
+ | "dark"
8
+ | "light"
9
+ | "basic"
10
+ | "blue"
11
+ | "green"
12
+ | "purple"
13
+ | "orange"
14
+ | "red"
15
+ | "yellow"
16
+ | "teal";
17
+
18
+ interface props {
19
+ command: string;
20
+ type: TypeProp;
21
+ width?: string;
22
+ height?: string;
23
+ title?: string;
24
+ }
25
+
26
+ const OneLineBlock = ({
27
+ command,
28
+ type,
29
+ width = "400",
30
+ height = "0",
31
+ title = "Terminal",
32
+ }: props) => {
33
+ const [isCopied, setIsCopied] = useState(false);
34
+
35
+ const copyToClipboard = () => {
36
+ navigator.clipboard.writeText(command);
37
+ setIsCopied(true);
38
+ setTimeout(() => {
39
+ setIsCopied(false);
40
+ }, 1000);
41
+ };
42
+
43
+ const colorScheme = {
44
+ dark: {
45
+ background: "#1A1B26",
46
+ text: "#A3E635",
47
+ highlight: "#7dd3fc",
48
+ border: "1px solid #2D3748",
49
+ },
50
+ light: {
51
+ background: "#f8fafc",
52
+ text: "#334155",
53
+ highlight: "#2563eb",
54
+ border: "1px solid #94a3b8",
55
+ },
56
+ basic: {
57
+ background: "#272822",
58
+ text: "#F8F8F2",
59
+ highlight: "#66D9EF",
60
+ border: "1px solid #A6E22E",
61
+ },
62
+ blue: {
63
+ background: "#1E3A8A",
64
+ text: "#BFDBFE",
65
+ highlight: "#3B82F6",
66
+ border: "1px solid #60A5FA",
67
+ },
68
+ green: {
69
+ background: "#064E3B",
70
+ text: "#D1FAE5",
71
+ highlight: "#10B981",
72
+ border: "1px solid #22D3EE",
73
+ },
74
+ purple: {
75
+ background: "#4C1D95",
76
+ text: "#E9D5FF",
77
+ highlight: "#A78BFA",
78
+ border: "1px solid #C084FC",
79
+ },
80
+ orange: {
81
+ background: "#7C2D12",
82
+ text: "#FFEDD5",
83
+ highlight: "#FB923C",
84
+ border: "1px solid #F97316",
85
+ },
86
+ red: {
87
+ background: "#7F1D1D",
88
+ text: "#FFE4E6",
89
+ highlight: "#EF4444",
90
+ border: "1px solid #F87171",
91
+ },
92
+ yellow: {
93
+ background: "#78350F",
94
+ text: "#FEF9C3",
95
+ highlight: "#FACC15",
96
+ border: "1px solid #FBBF24",
97
+ },
98
+ teal: {
99
+ background: "#134E4A",
100
+ text: "#CCFBF1",
101
+ highlight: "#14B8A6",
102
+ border: "1px solid #2DD4BF",
103
+ },
104
+ };
105
+
106
+ const colors = colorScheme[type];
107
+
108
+ return (
109
+ <div
110
+ style={{
111
+ width: width + "px",
112
+ background: colors.background,
113
+ display: "flex",
114
+ flexDirection: "column",
115
+ padding: "2px",
116
+ borderRadius: "5px",
117
+ color: colors.text,
118
+ fontFamily: "Arial, sans-serif",
119
+ fontSize: "18px",
120
+ fontWeight: "bold",
121
+ }}
122
+ >
123
+ <div
124
+ style={{
125
+ height: "50px",
126
+ display: "flex",
127
+ justifyContent: "space-between",
128
+ alignItems: "center",
129
+ borderBottom: colors.border,
130
+ padding: "5px",
131
+ }}
132
+ >
133
+ <p
134
+ style={{
135
+ color: colors.highlight,
136
+ fontSize: "20px",
137
+ padding: "5px",
138
+ fontWeight: "lighter",
139
+ }}
140
+ >
141
+ {title}
142
+ </p>
143
+ <button
144
+ onClick={() => copyToClipboard()}
145
+ style={{
146
+ width: "30px",
147
+ height: "30px",
148
+ cursor: "pointer",
149
+ background: "none",
150
+ border: "none",
151
+ }}
152
+ >
153
+ <img
154
+ width={"100%"}
155
+ height={"100%"}
156
+ style={{
157
+ objectFit: "contain",
158
+ }}
159
+ src={!isCopied ? copyIcon : tickIcon}
160
+ alt={isCopied ? "Copied" : "Copy"}
161
+ />
162
+ </button>
163
+ </div>
164
+ <div
165
+ style={{
166
+ display: "flex",
167
+ alignItems: "center",
168
+ gap: "10px",
169
+ }}
170
+ >
171
+ <span className="icon">
172
+ <svg
173
+ viewBox="0 0 24 24"
174
+ fill={colors.highlight}
175
+ height="13"
176
+ width="13"
177
+ xmlns="http://www.w3.org/2000/svg"
178
+ aria-hidden="true"
179
+ >
180
+ <path
181
+ d="m9 5 7 7-7 7"
182
+ strokeWidth="3"
183
+ strokeLinejoin="round"
184
+ strokeLinecap="round"
185
+ stroke="currentColor"
186
+ ></path>
187
+ </svg>
188
+ </span>
189
+ <p
190
+ style={{
191
+ fontFamily: "monospace",
192
+ }}
193
+ >
194
+ {command}
195
+ </p>
196
+ </div>
197
+ </div>
198
+ );
199
+ };
200
+
201
+ export { OneLineBlock };
package/src/index.ts CHANGED
@@ -1,4 +1,2 @@
1
- export * from "./components/Button";
2
- export * from "./hooks/counter";
3
- export * from "./components/OneLineComand";
4
- export * from "./components/CodeBlock"
1
+ export * from "./components/OneLineCommand";
2
+ export * from "./components/CodeBlock"
package/tsconfig.json CHANGED
@@ -1,11 +1,11 @@
1
- {
2
- "compilerOptions": {
3
- "jsx": "react",
4
- "target": "ES2020",
5
- "module": "ESNext",
6
- "declaration": true,
7
- "declarationDir": "dist",
8
- "strict": true,
9
- "moduleResolution": "node",
10
- }
1
+ {
2
+ "compilerOptions": {
3
+ "jsx": "react",
4
+ "target": "ES2020",
5
+ "module": "ESNext",
6
+ "declaration": true,
7
+ "declarationDir": "dist",
8
+ "strict": true,
9
+ "moduleResolution": "node",
10
+ }
11
11
  }
@@ -1,19 +0,0 @@
1
- import * as React from 'react'
2
- import { UseCounter } from '../hooks/counter'
3
-
4
- const Increment = () => {
5
- const { increment} = UseCounter();
6
- return (
7
- <button onClick={increment}>Increment</button>
8
- )
9
- }
10
-
11
-
12
- const Decrement = () => {
13
- const { decrement} = UseCounter();
14
- return (
15
- <button onClick={decrement}>Decrement</button>
16
- )
17
- }
18
-
19
- export { Decrement, Increment }
@@ -1,88 +0,0 @@
1
- import * as React from 'react'
2
- import { useState } from 'react'
3
- import copyIcon from '../assets/copy.png'
4
- import tickIcon from '../assets/tick.png'
5
- const OneLineBlock = ({ command }: { command: string }) => {
6
- const [isCopied, setIsCopied] = useState(false);
7
- const copyToClipboard = () => {
8
- navigator.clipboard.writeText(command);
9
- setIsCopied(true);
10
- setTimeout(() => {
11
- setIsCopied(false);
12
- }, 1000);
13
- }
14
- return (
15
-
16
- <div style={{
17
- width: "400px",
18
- background: '#1e293b',
19
- display: 'flex',
20
- flexDirection: "column",
21
- // justifyItems: "center",
22
- padding: "2px",
23
- borderRadius: "5px",
24
- color: "white",
25
- fontFamily: "Arial, sans-serif",
26
- fontSize: "18px",
27
- fontWeight: "bold",
28
-
29
- }}>
30
- <div style={{
31
- height: '50px',
32
- display: 'flex',
33
- justifyContent: "space-between",
34
- border: "1px ",
35
- alignItems: "center",
36
- borderBottom: "1px solid white",
37
- padding: '5px'
38
- }}>
39
- <p style={{
40
- color: "#7dd3fc",
41
- fontSize: '20px',
42
- padding: "5px",
43
- fontWeight: 'lighter'
44
- }}>Terminal</p>
45
- <button onClick={() => copyToClipboard()} style={{
46
- width: "30px",
47
- height: '30px',
48
- cursor:"pointer"
49
- }}><img width={"100%"} height={"100%"} style={{
50
- objectFit: "contain"
51
- }} src={!isCopied ? copyIcon : tickIcon} /></button>
52
- </div>
53
- <div style={{
54
- display: "flex",
55
- alignItems: "center",
56
- gap: "10px"
57
-
58
- }}>
59
- <span className="icon">
60
- <svg
61
- viewBox="0 0 24 24"
62
- fill="#7dd3fc"
63
- color='#7dd3fc'
64
- height="1 3"
65
- width="13"
66
- xmlns="http://www.w3.org/2000/svg"
67
- aria-hidden="true"
68
- className="w-[19px] h-[19px] text-gray-800 dark:text-white"
69
- >
70
- <path
71
- d="m9 5 7 7-7 7"
72
- stroke-width="3"
73
- stroke-linejoin="round"
74
- stroke-linecap="round"
75
- stroke="currentColor"
76
- ></path>
77
- </svg>
78
- </span>
79
- <p style={{
80
- fontFamily: "monospace"
81
- }}>{command}</p>
82
- </div>
83
- </div>
84
-
85
- )
86
- }
87
-
88
- export {OneLineBlock}
@@ -1,18 +0,0 @@
1
- import { useState } from 'react'
2
-
3
- const UseCounter = () => {
4
- const [count, setCount] = useState(0)
5
-
6
- const increment = () => {
7
- setCount(count + 1)
8
- }
9
-
10
- const decrement = () => {
11
- setCount(count - 1)
12
- }
13
-
14
- return { increment, decrement, count }
15
-
16
- }
17
-
18
- export { UseCounter };