Skip to content

Commit 458bd3d

Browse files
committed
update: Responsive design and bengali variable declaration added.
1 parent 0a553fe commit 458bd3d

5 files changed

Lines changed: 55 additions & 15 deletions

File tree

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
"dev": "vite",
88
"build": "tsc -b && vite build",
99
"lint": "eslint .",
10-
"preview": "vite preview"
10+
"preview": "vite preview",
11+
"generate-parser": "jison src/lib/banglascript.jison --module-type=esm -o src/lib/banglascript_parser.mjs",
12+
"server": "ts-node -r dotenv/config backend/server.ts"
1113
},
1214
"dependencies": {
1315
"@codemirror/lang-javascript": "^6.2.4",

src/App.css

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
#root {
2-
max-width: 1280px;
3-
margin: 0 auto;
4-
padding: 2rem;
5-
text-align: center;
1+
html, body, #root {
2+
height: 100%;
3+
margin: 0;
4+
padding: 0;
5+
width: 100%;
6+
background-color: #111827; /* bg-gray-900 */
67
}
78

89
.logo {

src/components/Navbar.tsx

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
import { useState } from 'react';
12
import { Link, useLocation } from 'react-router-dom';
23
import {
34
Home,
45
BookText,
56
Code2,
67
MessageSquare,
78
Handshake,
9+
Menu,
10+
X,
811
} from 'lucide-react';
912

1013
// images
@@ -25,17 +28,16 @@ const navItems = [
2528

2629
export default function Navbar() {
2730
const { pathname } = useLocation();
31+
const [isMenuOpen, setIsMenuOpen] = useState(false);
2832

2933
return (
3034
<nav className="bg-gray-900 text-white px-6 py-3 shadow-md">
3135
<div className="container mx-auto flex justify-between items-center">
32-
<div>
33-
<Link to="/" className="flex items-center gap-2">
34-
<img src={logo} className="w-8 h-8" alt="logo" />
35-
<span className="text-lg font-semibold">BanglaScript</span>
36-
</Link>
37-
</div>
38-
<div className="flex gap-6 text-sm">
36+
<Link to="/" className="flex items-center gap-2">
37+
<img src={logo} className="w-8 h-8" alt="logo" />
38+
<span className="text-lg font-semibold hidden md:block">BanglaScript</span>
39+
</Link>
40+
<div className="hidden md:flex gap-6 text-sm">
3941
{navItems.map(({ name, path, icon: Icon, external }) =>
4042
external ? (
4143
<a
@@ -62,7 +64,42 @@ export default function Navbar() {
6264
)
6365
)}
6466
</div>
67+
<div className="md:hidden">
68+
<button onClick={() => setIsMenuOpen(!isMenuOpen)}>
69+
{isMenuOpen ? <X className="w-6 h-6" /> : <Menu className="w-6 h-6" />}
70+
</button>
71+
</div>
6572
</div>
73+
{isMenuOpen && (
74+
<div className="md:hidden mt-4">
75+
{navItems.map(({ name, path, icon: Icon, external }) =>
76+
external ? (
77+
<a
78+
key={path}
79+
href={path}
80+
target="_blank"
81+
rel="noopener noreferrer"
82+
className="flex items-center gap-2 py-2 hover:text-yellow-400 transition"
83+
>
84+
<Icon className="w-5 h-5" />
85+
{name}
86+
</a>
87+
) : (
88+
<Link
89+
key={path}
90+
to={path}
91+
onClick={() => setIsMenuOpen(false)}
92+
className={`flex items-center gap-2 py-2 hover:text-yellow-400 transition ${
93+
pathname === path ? 'text-yellow-400 font-semibold' : ''
94+
}`}
95+
>
96+
<Icon className="w-5 h-5" />
97+
{name}
98+
</Link>
99+
)
100+
)}
101+
</div>
102+
)}
66103
</nav>
67104
);
68105
}

src/lib/banglascript.jison

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"সত্য" return 'TRUE'
3737
"মিথ্যা" return 'FALSE'
3838

39-
[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)* return 'IDENTIFIER'
39+
[a-zA-Z0-9_\u0980-\u09FF]+(\.[a-zA-Z0-9_\u0980-\u09FF]+)* return 'IDENTIFIER'
4040

4141
"(" return 'LPAREN'
4242
")" return 'RPAREN'

src/lib/banglascript_parser.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2123,7 +2123,7 @@ var banglascript_parser = (function () {
21232123
break;
21242124
}
21252125
},
2126-
rules: [/^(?:\s+)/, /^(?:)/, /^(?:ি)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:ি)/, /^(?:ি)/, /^(?:ি)/, /^(?:_ি)/, /^(?:ি_ি)/, /^(?:ি)/, /^(?:ি)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:ি)/, /^(?:)/, /^(?:[0-9]+(\.[0-9]+)?)/, /^(?:"[^\"]*")/, /^(?:)/, /^(?:ি)/, /^(?:[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*)/, /^(?:\()/, /^(?:\))/, /^(?:\{)/, /^(?:\})/, /^(?:\[)/, /^(?:\])/, /^(?:;)/, /^(?:,)/, /^(?:\.)/, /^(?:=)/, /^(?:\+)/, /^(?:-)/, /^(?:\*)/, /^(?:\/)/, /^(?:==)/, /^(?:!=)/, /^(?:<)/, /^(?:>)/, /^(?:<=)/, /^(?:>=)/, /^(?:&&)/, /^(?:\|\|)/, /^(?:!)/, /^(?:$)/],
2126+
rules: [/^(?:\s+)/, /^(?:)/, /^(?:ি)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:ি)/, /^(?:ি)/, /^(?:ি)/, /^(?:_ি)/, /^(?:ি_ি)/, /^(?:ি)/, /^(?:ি)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:)/, /^(?:ি)/, /^(?:)/, /^(?:[0-9]+(\.[0-9]+)?)/, /^(?:"[^\"]*")/, /^(?:)/, /^(?:ি)/, /^(?:[a-zA-Z0-9_\u0980-\u09FF]+(\.[a-zA-Z0-9_\u0980-\u09FF]+)*)/, /^(?:\()/, /^(?:\))/, /^(?:\{)/, /^(?:\})/, /^(?:\[)/, /^(?:\])/, /^(?:;)/, /^(?:,)/, /^(?:\.)/, /^(?:=)/, /^(?:\+)/, /^(?:-)/, /^(?:\*)/, /^(?:\/)/, /^(?:==)/, /^(?:!=)/, /^(?:<)/, /^(?:>)/, /^(?:<=)/, /^(?:>=)/, /^(?:&&)/, /^(?:\|\|)/, /^(?:!)/, /^(?:$)/],
21272127
conditions: {
21282128
"INITIAL": {
21292129
"rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50],

0 commit comments

Comments
 (0)