diff --git a/dist/layout.js b/dist/layout.js index 45d9ecb..e08d825 100644 --- a/dist/layout.js +++ b/dist/layout.js @@ -1,13 +1,13 @@ 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 { Box as c, 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 cA } from "react-icons/io5/index.js"; -import { u as IA, l as sA } from "./chunks/permission-DL7ciWwc.js"; +import { IoExit as IA } from "react-icons/io5/index.js"; +import { u as cA, 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, + c, { as: "header", w: "100%", @@ -170,8 +170,9 @@ const RA = ({ onNavigate: l }) => { const a = { - variant: A ? "solid" : "ghost", - colorScheme: A ? "gray" : void 0, + variant: "ghost", + bg: A ? "gray.200" : "transparent", + mx: A ? 2 : 0, icon: /* @__PURE__ */ e(d, { as: o.icon }), fontSize: "xl", size: { base: "sm", lg: "lg" }, @@ -190,14 +191,7 @@ const RA = ({ ); else { const x = r ? { as: r, href: o.path } : { as: "a", href: o.path }; - b = /* @__PURE__ */ e( - Z, - { - ...a, - ...x, - onClick: l - } - ); + b = /* @__PURE__ */ e(Z, { ...a, ...x, onClick: l }); } return /* @__PURE__ */ e( T, @@ -210,7 +204,7 @@ const RA = ({ px: 4, fontWeight: "bold", closeDelay: 150, - children: /* @__PURE__ */ e(I, { as: "span", children: b }) + children: /* @__PURE__ */ e(c, { as: "span", children: b }) } ); }, fA = ({ @@ -253,7 +247,7 @@ const RA = ({ } ); return t || A ? /* @__PURE__ */ e( - I, + c, { flex: "1", minW: 0, @@ -291,9 +285,9 @@ const RA = ({ mobileProps: O }) => { var k, Y; - const { isOpen: L, onOpen: V, onClose: m } = J(), W = rA(), { cannot: U } = IA(), c = gA.toArray(l).find( + const { isOpen: L, onOpen: V, onClose: m } = J(), W = rA(), { cannot: U } = cA(), I = gA.toArray(l).find( (n) => lA(n) && n.type === B - ), 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 = !!I, f = ((k = I == null ? void 0 : I.props) == null ? void 0 : k.title) || "خروج", v = ((Y = I == null ? void 0 : I.props) == null ? void 0 : Y.icon) || IA, 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(); @@ -357,7 +351,7 @@ const RA = ({ } ), /* @__PURE__ */ e( - I, + c, { as: "nav", "aria-label": "ناوبری اصلی موبایل", @@ -385,7 +379,7 @@ const RA = ({ n.path )), S && /* @__PURE__ */ e( - I, + c, { as: "button", ref: W, @@ -484,7 +478,7 @@ const RA = ({ } ); return h || i ? /* @__PURE__ */ e( - I, + c, { "aria-disabled": h ? "true" : void 0, "aria-current": i ? "page" : void 0, @@ -504,7 +498,7 @@ const RA = ({ n.path ); }) }), - R && /* @__PURE__ */ e(I, { mt: 4, pt: 4, borderTopWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ g( + R && /* @__PURE__ */ e(c, { mt: 4, pt: 4, borderTopWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ g( u, { as: "button", diff --git a/src/layout/Sidebar.jsx b/src/layout/Sidebar.jsx index b5059fe..b36800c 100644 --- a/src/layout/Sidebar.jsx +++ b/src/layout/Sidebar.jsx @@ -69,8 +69,9 @@ const DesktopNavItem = ({ onNavigate, }) => { const commonProps = { - variant: isActive ? "solid" : "ghost", - colorScheme: isActive ? "gray" : undefined, + variant: "ghost", + bg: isActive ? "gray.200" : "transparent", + mx: isActive ? 2 : 0, icon: , fontSize: "xl", size: { base: "sm", lg: "lg" }, @@ -94,11 +95,7 @@ const DesktopNavItem = ({ : { as: "a", href: item.path }; content = ( - + ); } @@ -211,7 +208,6 @@ const SidebarRoot = ({ const logoutTitle = exitElement?.props?.title || "خروج"; const logoutIcon = exitElement?.props?.icon || IoExit; - const resolvedCurrentPath = currentPath ?? (typeof window !== "undefined" @@ -222,9 +218,7 @@ const SidebarRoot = ({ const secondaryItems = items.slice(primaryMobileCount); const disabled = (item) => { - const permissions = Array.isArray(item?.perm) - ? item.perm - : [item?.perm]; + const permissions = Array.isArray(item?.perm) ? item.perm : [item?.perm]; return permissions.filter(Boolean).some((permission) => cannot(permission)); };