From 0ddd3427ae9c95bad51de8165057abdac8c357d9 Mon Sep 17 00:00:00 2001
From: Mohamadzadeh <7796733@gmail.com>
Date: Wed, 19 Aug 2026 19:32:26 +0330
Subject: [PATCH] update header and sidebar
---
dist/layout.js | 334 +++++++++++++++++++++++++----------------
src/layout/Header.jsx | 85 +++++++++--
src/layout/Sidebar.jsx | 2 +-
3 files changed, 279 insertions(+), 142 deletions(-)
diff --git a/dist/layout.js b/dist/layout.js
index 056ce11..45d9ecb 100644
--- a/dist/layout.js
+++ b/dist/layout.js
@@ -1,91 +1,169 @@
-import { jsx as o, jsxs as g, Fragment as F } from "react/jsx-runtime";
-import { Box as c, HStack as u, VStack as s, Image as T, Text as d, useDisclosure as J, Stack as K, Tooltip as j, IconButton as f, Icon as C, Drawer as q, DrawerOverlay as $, DrawerContent as _, DrawerCloseButton as AA, DrawerHeader as oA, DrawerBody as eA, SimpleGrid as nA, Link as tA } from "@chakra-ui/react";
+import { jsx as e, jsxs as g, Fragment as F } from "react/jsx-runtime";
+import { Box as I, HStack as u, VStack as C, Image as j, Text as s, useDisclosure as J, Stack as K, Tooltip as T, IconButton as Z, Icon as d, Drawer as q, DrawerOverlay as $, DrawerContent as _, DrawerCloseButton as AA, DrawerHeader as eA, DrawerBody as oA, SimpleGrid as nA, Link as tA } from "@chakra-ui/react";
import { useRef as rA, Children as gA, isValidElement as lA, forwardRef as aA } from "react";
import { FiMoreHorizontal as iA } from "react-icons/fi/index.js";
-import { IoExit as IA } from "react-icons/io5/index.js";
-import { u as cA, l as dA } from "./chunks/permission-DL7ciWwc.js";
-const CA = "data:image/webp;base64,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MCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTA4LTEzVDE0OjI1OjUzKzA0OjMwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTA4LTEzVDE0OjI1OjUzKzA0OjMwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wOC0xM1QxNDoyNTo1MyswNDozMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wOC0xM1QxNDoyNTo1MyswNDozMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxMDU3ZjgxNy03YTEzLThiNGEtODc1Ni1lYWM1MWEyZDRiYTY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDgtMTNUMTQ6MjU6NTMrMDQ6MzA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDZjNmM4ODYtZDY2My1jMzQzLTkwZTUtNjQ4ZWJlYTkxYzgxPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjEwNTdmODE3LTdhMTMtOGI0YS04NzU2LWVhYzUxYTJkNGJhNjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NWI3ZmJlNDgtMDc0ZS01NzRhLWFlNTctN2RmYjA4NmI1N2Q3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjA2YzZjODg2LWQ2NjMtYzM0My05MGU1LTY0OGViZWE5MWM4MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEwYjgxNWMzLTkzYjMtODU0MC04NmY0LTA0OTEyZTY5Y2Y4NTwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K";
-function sA({ children: e, ...A }) {
- return /* @__PURE__ */ o(
- c,
+import { IoExit as cA } from "react-icons/io5/index.js";
+import { u as IA, l as sA } from "./chunks/permission-DL7ciWwc.js";
+const dA = "data:image/webp;base64,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MCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTA4LTEzVDE0OjI1OjUzKzA0OjMwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTA4LTEzVDE0OjI1OjUzKzA0OjMwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wOC0xM1QxNDoyNTo1MyswNDozMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wOC0xM1QxNDoyNTo1MyswNDozMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxMDU3ZjgxNy03YTEzLThiNGEtODc1Ni1lYWM1MWEyZDRiYTY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDgtMTNUMTQ6MjU6NTMrMDQ6MzA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDZjNmM4ODYtZDY2My1jMzQzLTkwZTUtNjQ4ZWJlYTkxYzgxPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjEwNTdmODE3LTdhMTMtOGI0YS04NzU2LWVhYzUxYTJkNGJhNjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NWI3ZmJlNDgtMDc0ZS01NzRhLWFlNTctN2RmYjA4NmI1N2Q3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjA2YzZjODg2LWQ2NjMtYzM0My05MGU1LTY0OGViZWE5MWM4MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEwYjgxNWMzLTkzYjMtODU0MC04NmY0LTA0OTEyZTY5Y2Y4NTwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K";
+function CA({ children: o, ...A }) {
+ return /* @__PURE__ */ e(
+ I,
{
as: "header",
w: "100%",
- h: "110px",
+ h: { base: "64px", lg: "110px" },
+ flexShrink: 0,
borderBottom: "1px",
borderColor: "gray.200",
bg: "#4299E1",
- px: "20px",
- zIndex: 10,
- position: "fixed",
+ px: { base: 3, sm: 4, lg: "20px" },
color: "white",
...A,
- children: /* @__PURE__ */ o(u, { h: "100%", alignItems: "center", justifyContent: "space-between", children: e })
+ children: /* @__PURE__ */ e(
+ u,
+ {
+ h: "100%",
+ w: "100%",
+ minW: 0,
+ alignItems: "center",
+ justifyContent: "space-between",
+ children: o
+ }
+ )
}
);
}
-function bA({ children: e, ...A }) {
- return /* @__PURE__ */ o(u, { alignItems: "center", h: "100%", py: "10px", ...A, children: e });
+function bA({ children: o, ...A }) {
+ return /* @__PURE__ */ e(
+ u,
+ {
+ alignItems: "center",
+ h: "100%",
+ minW: 0,
+ flex: "1",
+ spacing: { base: 2.5, lg: 3 },
+ py: { base: "6px", lg: "10px" },
+ ...A,
+ children: o
+ }
+ );
}
-function pA(e) {
- return /* @__PURE__ */ o(T, { loading: "lazy", alt: "logo", maxW: "80px", maxH: "80px", ...e });
+function pA(o) {
+ return /* @__PURE__ */ e(
+ j,
+ {
+ loading: "lazy",
+ alt: "logo",
+ w: { base: "46px", lg: "80px" },
+ maxW: { base: "46px", lg: "80px" },
+ maxH: { base: "48px", lg: "80px" },
+ objectFit: "contain",
+ flexShrink: 0,
+ ...o
+ }
+ );
}
-function hA({ children: e, ...A }) {
- return /* @__PURE__ */ o(
- s,
+function hA({ children: o, ...A }) {
+ return /* @__PURE__ */ e(
+ C,
{
alignItems: "start",
justifyContent: "center",
h: "100%",
- spacing: 1,
+ minW: 0,
+ flex: "1",
+ spacing: { base: 0, lg: 1 },
...A,
- children: e
+ children: o
}
);
}
-function uA({ children: e, ...A }) {
- return /* @__PURE__ */ o(d, { fontWeight: "bold", fontSize: "20px", ...A, children: e });
-}
-function xA({ children: e, ...A }) {
- return /* @__PURE__ */ o(d, { ...A, children: e });
-}
-function RA({ logoSrc: e = CA, ...A }) {
- return /* @__PURE__ */ g(
+function uA({ children: o, ...A }) {
+ return /* @__PURE__ */ e(
s,
+ {
+ w: "100%",
+ fontWeight: "bold",
+ fontSize: { base: "15px", lg: "20px" },
+ lineHeight: "short",
+ noOfLines: 1,
+ ...A,
+ children: o
+ }
+ );
+}
+function xA({ children: o, ...A }) {
+ return /* @__PURE__ */ e(
+ s,
+ {
+ w: "100%",
+ fontSize: { base: "10px", sm: "11px", lg: "16px" },
+ lineHeight: { base: "shorter", lg: "normal" },
+ noOfLines: 1,
+ ...A,
+ children: o
+ }
+ );
+}
+function mA({ logoSrc: o = dA, ...A }) {
+ return /* @__PURE__ */ g(
+ C,
{
w: "fit-content",
+ flexShrink: 0,
alignItems: "center",
justifyContent: "center",
- py: "10px",
+ spacing: { base: 0, lg: 1 },
+ py: { base: "6px", lg: "10px" },
...A,
children: [
- /* @__PURE__ */ o(T, { src: e, loading: "lazy", maxW: "90px" }),
- /* @__PURE__ */ o(d, { fontSize: "xs", fontWeight: "bold", textAlign: "center", children: "مؤسسه تولید سیستمهای خبره و هوشمند اسلامی باقرالعلوم(ع)" })
+ /* @__PURE__ */ e(
+ j,
+ {
+ src: o,
+ alt: "نشان مؤسسه باقرالعلوم",
+ loading: "lazy",
+ w: { base: "38px", lg: "90px" },
+ maxH: { base: "46px", lg: "72px" },
+ objectFit: "contain"
+ }
+ ),
+ /* @__PURE__ */ e(
+ s,
+ {
+ display: { base: "none", lg: "block" },
+ fontSize: "xs",
+ fontWeight: "bold",
+ textAlign: "center",
+ whiteSpace: "nowrap",
+ children: "مؤسسه تولید سیستمهای خبره و هوشمند اسلامی باقرالعلوم(ع)"
+ }
+ )
]
}
);
}
-const MA = Object.assign(sA, {
+const SA = Object.assign(CA, {
BrandSection: bA,
Logo: pA,
Brand: hA,
Title: uA,
Description: xA,
- Bi: RA
-}), E = (e = "") => {
- const A = String(e).split(/[?#]/)[0] || "";
+ Bi: mA
+}), E = (o = "") => {
+ const A = String(o).split(/[?#]/)[0] || "";
return !A || A === "/" ? A || "/" : A.replace(/\/+$/, "");
-}, P = (e, A) => {
- const t = E(e);
+}, P = (o, A) => {
+ const t = E(o);
return [A == null ? void 0 : A.path, ...(A == null ? void 0 : A.aliases) || []].filter(Boolean).map(E).some(
(l) => t === l || t.startsWith(`${l}/`)
);
-}, zA = (e = [], A) => e.find((t) => P(A, t)), w = aA(
- ({ linkComponent: e, href: A, children: t, ...r }, l) => /* @__PURE__ */ o(tA, { ref: l, href: A, ...e ? { as: e } : {}, ...r, children: t })
+}, MA = (o = [], A) => o.find((t) => P(A, t)), G = aA(
+ ({ linkComponent: o, href: A, children: t, ...r }, l) => /* @__PURE__ */ e(tA, { ref: l, href: A, ...o ? { as: o } : {}, ...r, children: t })
);
-w.displayName = "SidebarLink";
-const mA = ({
- item: e,
+G.displayName = "SidebarLink";
+const RA = ({
+ item: o,
isActive: A,
isDisabled: t,
linkComponent: r,
@@ -93,17 +171,17 @@ const mA = ({
}) => {
const a = {
variant: A ? "solid" : "ghost",
- colorScheme: A ? "blue" : void 0,
- icon: /* @__PURE__ */ o(C, { as: e.icon }),
+ colorScheme: A ? "gray" : void 0,
+ icon: /* @__PURE__ */ e(d, { as: o.icon }),
fontSize: "xl",
size: { base: "sm", lg: "lg" },
- "aria-label": e.title,
+ "aria-label": o.title,
"aria-current": A ? "page" : void 0
};
let b;
if (t || A)
- b = /* @__PURE__ */ o(
- f,
+ b = /* @__PURE__ */ e(
+ Z,
{
...a,
isDisabled: t,
@@ -111,9 +189,9 @@ const mA = ({
}
);
else {
- const x = r ? { as: r, href: e.path } : { as: "a", href: e.path };
- b = /* @__PURE__ */ o(
- f,
+ const x = r ? { as: r, href: o.path } : { as: "a", href: o.path };
+ b = /* @__PURE__ */ e(
+ Z,
{
...a,
...x,
@@ -121,10 +199,10 @@ const mA = ({
}
);
}
- return /* @__PURE__ */ o(
- j,
+ return /* @__PURE__ */ e(
+ T,
{
- label: t ? "عدم دسترسی" : e.title,
+ label: t ? "عدم دسترسی" : o.title,
placement: "left-start",
hasArrow: !0,
rounded: "md",
@@ -132,18 +210,18 @@ const mA = ({
px: 4,
fontWeight: "bold",
closeDelay: 150,
- children: /* @__PURE__ */ o(c, { as: "span", children: b })
+ children: /* @__PURE__ */ e(I, { as: "span", children: b })
}
);
-}, DA = ({
- item: e,
+}, fA = ({
+ item: o,
isActive: A,
isDisabled: t,
linkComponent: r,
onNavigate: l
}) => {
const a = /* @__PURE__ */ g(
- s,
+ C,
{
as: "span",
spacing: 0.5,
@@ -157,9 +235,9 @@ const mA = ({
opacity: t ? 0.4 : 1,
transition: "background-color 150ms ease, color 150ms ease",
children: [
- /* @__PURE__ */ o(C, { as: e.icon, boxSize: 5 }),
- /* @__PURE__ */ o(
- d,
+ /* @__PURE__ */ e(d, { as: o.icon, boxSize: 5 }),
+ /* @__PURE__ */ e(
+ s,
{
as: "span",
w: "full",
@@ -168,14 +246,14 @@ const mA = ({
lineHeight: "short",
textAlign: "center",
noOfLines: 1,
- children: e.mobileTitle || e.title
+ children: o.mobileTitle || o.title
}
)
]
}
);
- return t || A ? /* @__PURE__ */ o(
- c,
+ return t || A ? /* @__PURE__ */ e(
+ I,
{
flex: "1",
minW: 0,
@@ -185,11 +263,11 @@ const mA = ({
"aria-current": A ? "page" : void 0,
children: a
}
- ) : /* @__PURE__ */ o(
- w,
+ ) : /* @__PURE__ */ e(
+ G,
{
linkComponent: r,
- href: e.path,
+ href: o.path,
flex: "1",
minW: 0,
display: "flex",
@@ -200,8 +278,8 @@ const mA = ({
children: a
}
);
-}, B = () => null, ZA = ({
- items: e = [],
+}, B = () => null, wA = ({
+ items: o = [],
currentPath: A,
linkComponent: t,
onNavigate: r,
@@ -212,16 +290,16 @@ const mA = ({
desktopProps: Q,
mobileProps: O
}) => {
- var Y, k;
- const { isOpen: L, onOpen: V, onClose: R } = J(), v = rA(), { cannot: U } = cA(), I = gA.toArray(l).find(
+ var k, Y;
+ const { isOpen: L, onOpen: V, onClose: m } = J(), W = rA(), { cannot: U } = IA(), c = gA.toArray(l).find(
(n) => lA(n) && n.type === B
- ), m = !!I, D = ((Y = I == null ? void 0 : I.props) == null ? void 0 : Y.title) || "خروج", W = ((k = I == null ? void 0 : I.props) == null ? void 0 : k.icon) || IA, X = A ?? (typeof window < "u" ? `${window.location.pathname}${window.location.search}` : ""), H = e.slice(0, a), Z = e.slice(a), y = (n) => (Array.isArray(n == null ? void 0 : n.perm) ? n.perm : [n == null ? void 0 : n.perm]).filter(Boolean).some((i) => U(i)), p = (n) => P(X, n), G = Z.some(p), M = Z.length > 0 || m, z = (n) => {
- r == null || r(n), R();
- }, S = () => {
- R(), dA();
+ ), R = !!c, f = ((k = c == null ? void 0 : c.props) == null ? void 0 : k.title) || "خروج", v = ((Y = c == null ? void 0 : c.props) == null ? void 0 : Y.icon) || cA, H = A ?? (typeof window < "u" ? `${window.location.pathname}${window.location.search}` : ""), X = o.slice(0, a), w = o.slice(a), y = (n) => (Array.isArray(n == null ? void 0 : n.perm) ? n.perm : [n == null ? void 0 : n.perm]).filter(Boolean).some((i) => U(i)), p = (n) => P(H, n), D = w.some(p), S = w.length > 0 || R, M = (n) => {
+ r == null || r(n), m();
+ }, z = () => {
+ m(), sA();
};
return /* @__PURE__ */ g(F, { children: [
- /* @__PURE__ */ o(
+ /* @__PURE__ */ e(
K,
{
py: 6,
@@ -239,9 +317,9 @@ const mA = ({
},
display: { base: "none", lg: "flex" },
...Q,
- children: /* @__PURE__ */ g(s, { spacing: 2, children: [
- e.map((n) => /* @__PURE__ */ o(
- mA,
+ children: /* @__PURE__ */ g(C, { spacing: 2, children: [
+ o.map((n) => /* @__PURE__ */ e(
+ RA,
{
item: n,
isDisabled: y(n),
@@ -251,10 +329,10 @@ const mA = ({
},
n.path
)),
- m && /* @__PURE__ */ o(
- j,
+ R && /* @__PURE__ */ e(
+ T,
{
- label: D,
+ label: f,
placement: "left-start",
hasArrow: !0,
rounded: "md",
@@ -262,15 +340,15 @@ const mA = ({
px: 4,
fontWeight: "bold",
closeDelay: 150,
- children: /* @__PURE__ */ o(
- f,
+ children: /* @__PURE__ */ e(
+ Z,
{
variant: "ghost",
- icon: /* @__PURE__ */ o(C, { as: W }),
+ icon: /* @__PURE__ */ e(d, { as: v }),
fontSize: "xl",
size: { base: "sm", lg: "lg" },
- "aria-label": D,
- onClick: S
+ "aria-label": f,
+ onClick: z
}
)
}
@@ -278,8 +356,8 @@ const mA = ({
] })
}
),
- /* @__PURE__ */ o(
- c,
+ /* @__PURE__ */ e(
+ I,
{
as: "nav",
"aria-label": "ناوبری اصلی موبایل",
@@ -295,22 +373,22 @@ const mA = ({
pb: "env(safe-area-inset-bottom)",
...O,
children: /* @__PURE__ */ g(u, { h: "56px", px: 1.5, spacing: 1, align: "stretch", children: [
- H.map((n) => /* @__PURE__ */ o(
- DA,
+ X.map((n) => /* @__PURE__ */ e(
+ fA,
{
item: n,
isDisabled: y(n),
isActive: p(n),
linkComponent: t,
- onNavigate: () => z(n)
+ onNavigate: () => M(n)
},
n.path
)),
- M && /* @__PURE__ */ o(
- c,
+ S && /* @__PURE__ */ e(
+ I,
{
as: "button",
- ref: v,
+ ref: W,
type: "button",
flex: "1",
minW: 0,
@@ -326,22 +404,22 @@ const mA = ({
onClick: V,
"aria-label": "نمایش سایر بخشها",
children: /* @__PURE__ */ g(
- s,
+ C,
{
spacing: 0.5,
w: "full",
py: 1,
px: 1,
borderRadius: "xl",
- color: G ? "blue.600" : "gray.600",
- bg: G ? "blue.50" : "transparent",
+ color: D ? "blue.600" : "gray.600",
+ bg: D ? "blue.50" : "transparent",
children: [
- /* @__PURE__ */ o(C, { as: iA, boxSize: 5 }),
- /* @__PURE__ */ o(
- d,
+ /* @__PURE__ */ e(d, { as: iA, boxSize: 5 }),
+ /* @__PURE__ */ e(
+ s,
{
fontSize: "10px",
- fontWeight: G ? "bold" : "medium",
+ fontWeight: D ? "bold" : "medium",
lineHeight: "short",
children: b
}
@@ -354,15 +432,15 @@ const mA = ({
] })
}
),
- M && /* @__PURE__ */ g(
+ S && /* @__PURE__ */ g(
q,
{
isOpen: L,
placement: "bottom",
- onClose: R,
- finalFocusRef: v,
+ onClose: m,
+ finalFocusRef: W,
children: [
- /* @__PURE__ */ o($, {}),
+ /* @__PURE__ */ e($, {}),
/* @__PURE__ */ g(
_,
{
@@ -370,12 +448,12 @@ const mA = ({
maxH: "min(78dvh, 620px)",
pb: "env(safe-area-inset-bottom)",
children: [
- /* @__PURE__ */ o(AA, { insetInlineEnd: 3, insetInlineStart: "auto" }),
- /* @__PURE__ */ o(oA, { borderBottomWidth: "1px", fontSize: "md", children: x }),
- /* @__PURE__ */ g(eA, { py: 4, overflowY: "auto", children: [
- /* @__PURE__ */ o(nA, { columns: 4, spacing: 2, children: Z.map((n) => {
+ /* @__PURE__ */ e(AA, { insetInlineEnd: 3, insetInlineStart: "auto" }),
+ /* @__PURE__ */ e(eA, { borderBottomWidth: "1px", fontSize: "md", children: x }),
+ /* @__PURE__ */ g(oA, { py: 4, overflowY: "auto", children: [
+ /* @__PURE__ */ e(nA, { columns: 4, spacing: 2, children: w.map((n) => {
const h = y(n), i = p(n), N = /* @__PURE__ */ g(
- s,
+ C,
{
h: "70px",
minW: 0,
@@ -389,9 +467,9 @@ const mA = ({
color: i ? "blue.700" : "gray.700",
opacity: h ? 0.4 : 1,
children: [
- /* @__PURE__ */ o(C, { as: n.icon, boxSize: 5, flexShrink: 0 }),
- /* @__PURE__ */ o(
- d,
+ /* @__PURE__ */ e(d, { as: n.icon, boxSize: 5, flexShrink: 0 }),
+ /* @__PURE__ */ e(
+ s,
{
w: "full",
fontSize: "10px",
@@ -405,28 +483,28 @@ const mA = ({
]
}
);
- return h || i ? /* @__PURE__ */ o(
- c,
+ return h || i ? /* @__PURE__ */ e(
+ I,
{
"aria-disabled": h ? "true" : void 0,
"aria-current": i ? "page" : void 0,
children: N
},
n.path
- ) : /* @__PURE__ */ o(
- w,
+ ) : /* @__PURE__ */ e(
+ G,
{
linkComponent: t,
href: n.path,
_hover: { textDecoration: "none" },
- onClick: () => z(n),
+ onClick: () => M(n),
"aria-current": i ? "page" : void 0,
children: N
},
n.path
);
}) }),
- m && /* @__PURE__ */ o(c, { mt: 4, pt: 4, borderTopWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ g(
+ R && /* @__PURE__ */ e(I, { mt: 4, pt: 4, borderTopWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ g(
u,
{
as: "button",
@@ -439,10 +517,10 @@ const mA = ({
color: "red.600",
bg: "red.50",
cursor: "pointer",
- onClick: S,
+ onClick: z,
children: [
- /* @__PURE__ */ o(C, { as: W, boxSize: 5 }),
- /* @__PURE__ */ o(d, { fontWeight: "bold", children: D })
+ /* @__PURE__ */ e(d, { as: v, boxSize: 5 }),
+ /* @__PURE__ */ e(s, { fontWeight: "bold", children: f })
]
}
) })
@@ -454,12 +532,12 @@ const mA = ({
}
)
] });
-}, SA = Object.assign(ZA, {
+}, zA = Object.assign(wA, {
Exit: B
});
export {
- MA as Header,
- SA as Sidebar,
- zA as getActiveSidebarItem,
+ SA as Header,
+ zA as Sidebar,
+ MA as getActiveSidebarItem,
P as isSidebarPathActive
};
diff --git a/src/layout/Header.jsx b/src/layout/Header.jsx
index 99d7955..bf9c333 100644
--- a/src/layout/Header.jsx
+++ b/src/layout/Header.jsx
@@ -8,17 +8,22 @@ function HeaderRoot({ children, ...props }) {
-
+
{children}
@@ -27,14 +32,33 @@ function HeaderRoot({ children, ...props }) {
function BrandSection({ children, ...props }) {
return (
-
+
{children}
);
}
function Logo(props) {
- return ;
+ return (
+
+ );
}
function Brand({ children, ...props }) {
@@ -43,7 +67,9 @@ function Brand({ children, ...props }) {
alignItems="start"
justifyContent="center"
h="100%"
- spacing={1}
+ minW={0}
+ flex="1"
+ spacing={{ base: 0, lg: 1 }}
{...props}
>
{children}
@@ -53,27 +79,60 @@ function Brand({ children, ...props }) {
function Title({ children, ...props }) {
return (
-
+
{children}
);
}
function Description({ children, ...props }) {
- return {children};
+ return (
+
+ {children}
+
+ );
}
function Bi({ logoSrc = biLogo, ...props }) {
return (
-
-
+
+
+
مؤسسه تولید سیستمهای خبره و هوشمند اسلامی باقرالعلوم(ع)
diff --git a/src/layout/Sidebar.jsx b/src/layout/Sidebar.jsx
index 06404a5..b5059fe 100644
--- a/src/layout/Sidebar.jsx
+++ b/src/layout/Sidebar.jsx
@@ -70,7 +70,7 @@ const DesktopNavItem = ({
}) => {
const commonProps = {
variant: isActive ? "solid" : "ghost",
- colorScheme: isActive ? "blue" : undefined,
+ colorScheme: isActive ? "gray" : undefined,
icon: ,
fontSize: "xl",
size: { base: "sm", lg: "lg" },