"use strict";
exports.id = 5313;
exports.ids = [5313];
exports.modules = {

/***/ 8282:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {


// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "Z": () => (/* binding */ SuAdminLayout)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(997);
// EXTERNAL MODULE: external "react"
var external_react_ = __webpack_require__(6689);
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
// EXTERNAL MODULE: external "next/head"
var head_ = __webpack_require__(968);
var head_default = /*#__PURE__*/__webpack_require__.n(head_);
// EXTERNAL MODULE: ./components/general/Logo.jsx
var Logo = __webpack_require__(4017);
// EXTERNAL MODULE: external "@mui/icons-material/CottageTwoTone"
var CottageTwoTone_ = __webpack_require__(386);
var CottageTwoTone_default = /*#__PURE__*/__webpack_require__.n(CottageTwoTone_);
// EXTERNAL MODULE: external "@mui/icons-material/PeopleAltTwoTone"
var PeopleAltTwoTone_ = __webpack_require__(8245);
var PeopleAltTwoTone_default = /*#__PURE__*/__webpack_require__.n(PeopleAltTwoTone_);
// EXTERNAL MODULE: external "@mui/icons-material/ErrorTwoTone"
var ErrorTwoTone_ = __webpack_require__(6094);
var ErrorTwoTone_default = /*#__PURE__*/__webpack_require__.n(ErrorTwoTone_);
// EXTERNAL MODULE: external "@mui/icons-material/BackupTwoTone"
var BackupTwoTone_ = __webpack_require__(9318);
var BackupTwoTone_default = /*#__PURE__*/__webpack_require__.n(BackupTwoTone_);
// EXTERNAL MODULE: external "@mui/icons-material/DocumentScannerTwoTone"
var DocumentScannerTwoTone_ = __webpack_require__(6817);
// EXTERNAL MODULE: external "@mui/icons-material/TerminalTwoTone"
var TerminalTwoTone_ = __webpack_require__(415);
var TerminalTwoTone_default = /*#__PURE__*/__webpack_require__.n(TerminalTwoTone_);
// EXTERNAL MODULE: external "@mui/icons-material/LockPersonTwoTone"
var LockPersonTwoTone_ = __webpack_require__(6547);
var LockPersonTwoTone_default = /*#__PURE__*/__webpack_require__.n(LockPersonTwoTone_);
;// CONCATENATED MODULE: ./layouts/components/SuAdminLayout/Aside.jsx
// @ts-check
/**
 * ==============================================================================
 * Imports
 * ==============================================================================
 */ "use client";










/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
 * ==============================================================================
 * Main Component { Functional }
 * ==============================================================================
 * @param {object} props - React component props
 */ function Aside(props) {
    /**
     * Get Contexts
     *
     * @abstract { React.useContext }
     */ ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * Javascript Variables
     *
     * @abstract Non hook variables and functions
     */ ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * React Hooks
     *
     * @abstract { useState, useEffect, useRef, etc ... }
     */ const [collapseAsideMobile, setCollapseAsideMobile] = external_react_default().useState(true);
    ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * Function Return
     *
     * @abstract Main Function Return
     */ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("aside", {
        className: "aside" + (collapseAsideMobile ? " mobile-collapsed" : " mobile-expanded"),
        style: {
            maxWidth: collapseAsideMobile ? "250px" : "300px",
            zIndex: 800
        },
        children: [
            /*#__PURE__*/ jsx_runtime_.jsx(Logo/* default */.Z, {
                adminAside: true,
                collapseAsideMobile: collapseAsideMobile,
                setCollapseAsideMobile: setCollapseAsideMobile
            }),
            /*#__PURE__*/ jsx_runtime_.jsx("hr", {
                className: "opacity-0 mt-4"
            }),
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                className: "main-links" + (collapseAsideMobile ? " hidden lg:flex" : " "),
                children: [
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                        href: `/su`,
                        "data-currentlink": `/su`,
                        "data-strictlink": "true",
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx((CottageTwoTone_default()), {
                                className: "text-slate-400"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                children: "Dashboard"
                            })
                        ]
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                        href: `/su/users`,
                        "data-currentlink": `/su/users`,
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx((PeopleAltTwoTone_default()), {
                                className: "text-slate-400"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                children: "Users"
                            })
                        ]
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                        href: `/su/error-logs`,
                        "data-currentlink": `/su/error-logs`,
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx((ErrorTwoTone_default()), {
                                className: "text-slate-400"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                children: "Error Logs"
                            })
                        ]
                    }),
                     false && /*#__PURE__*/ 0,
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                        href: `/su/backups`,
                        "data-currentlink": `/su/backups`,
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx((BackupTwoTone_default()), {
                                className: "text-slate-400"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                children: "Backups"
                            })
                        ]
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                        href: `/su/console`,
                        "data-currentlink": `/su/console`,
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx((TerminalTwoTone_default()), {
                                className: "text-slate-400"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                children: "Console"
                            })
                        ]
                    }),
                     true && /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                        href: `/su/envar`,
                        "data-currentlink": `/su/envar`,
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx((LockPersonTwoTone_default()), {
                                className: "text-slate-400"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                children: "Env"
                            })
                        ]
                    })
                ]
            })
        ]
    });
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
}

// EXTERNAL MODULE: ./components/general/ThemeSelector.jsx
var ThemeSelector = __webpack_require__(4981);
// EXTERNAL MODULE: external "lucide-react"
var external_lucide_react_ = __webpack_require__(2423);
;// CONCATENATED MODULE: ./layouts/components/SuAdminLayout/AdminHeader.jsx
// @ts-check
/**
 * ==============================================================================
 * Imports
 * ==============================================================================
 */ "use client";




/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
 * ==============================================================================
 * Main Component { Functional }
 * ==============================================================================
 * @param {object} props - React component props
 * @param {import("@/package-shared/types").UserType} props.user
 * @param {React.ReactNode} [props.extraHeaderContent]
 */ function AdminHeader({ user , extraHeaderContent  }) {
    /**
     * Get Contexts
     *
     * @abstract { React.useContext }
     */ ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * Javascript Variables
     *
     * @abstract Non hook variables and functions
     */ ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * React Hooks
     *
     * @abstract { useState, useEffect, useRef, etc ... }
     */ const [activeUser, setActiveUser] = external_react_default().useState(user ? user : null);
    external_react_default().useEffect(()=>{
        if (user?.logged_in_status) {
            setActiveUser(user ? user : null);
        }
    }, [
        user
    ]);
    ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * Function Return
     *
     * @abstract Main Function Return
     */ return /*#__PURE__*/ jsx_runtime_.jsx("section", {
        className: "overflow-visible w-full px-0 md:px-8 py-0 flex justify-center bg-white dark:bg-slate-800 shadow-lg gap-4 dark:shadow-black/10 z-50 shadow-slate-900/5",
        style: {
            zIndex: 700,
            border: "none"
        },
        children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
            className: "w-full items-center justify-between gap-4 md:gap-8",
            children: [
                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                    className: "hidden xl:flex flex-col items-stretch grow fixed xl:static top-0 right-0 px-4 xl:px-0 shadow-xl xl:shadow-none h-screen xl:h-auto overflow-auto xl:overflow-visible w-screen sl:w-auto bg-white xl:bg-transparent pb-10 xl:pb-0",
                    id: "main-nav-content-wrapper",
                    children: [
                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                            className: "items-center mb-2 flex xl:hidden",
                            children: [
                                /*#__PURE__*/ jsx_runtime_.jsx("a", {
                                    href: "/",
                                    className: "hidden xl:flex",
                                    children: /*#__PURE__*/ jsx_runtime_.jsx("img", {
                                        src: "/images/logo-icon-alt-2.png",
                                        alt: "Logo Icon",
                                        width: 37
                                    })
                                }),
                                /*#__PURE__*/ jsx_runtime_.jsx("button", {
                                    className: "outlined gray ml-auto",
                                    onClick: (e)=>{
                                        /** @type {any} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper");
                                        mainNavWrapper?.classList.toggle("hidden");
                                    },
                                    style: {
                                        border: "none"
                                    },
                                    children: /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                        className: "font-semibold text-4xl",
                                        children: "✕"
                                    })
                                })
                            ]
                        }),
                        /*#__PURE__*/ jsx_runtime_.jsx("div", {
                            className: "flex items-center w-full gap-6 grow flex-col xl:flex-row justify-start xl:justify-between",
                            children: /*#__PURE__*/ jsx_runtime_.jsx("div", {
                                className: "gap-2 flex-col-reverse xl:flex-row gap-y-6 w-full xl:w-auto py-2",
                                children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                                    className: "ml-auto dropdown-wrapper",
                                    children: [
                                        /*#__PURE__*/ jsx_runtime_.jsx("div", {
                                            className: "bg-white rounded-full overflow-hidden",
                                            style: {
                                                width: "36px",
                                                height: "36px"
                                            },
                                            children: /*#__PURE__*/ jsx_runtime_.jsx("img", {
                                                src: "/images/user-preset-thumbnail.png",
                                                alt: "User Image",
                                                width: 35,
                                                className: "w-full h-full object-cover"
                                            })
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                            children: /*#__PURE__*/ jsx_runtime_.jsx("b", {
                                                children: "Super User"
                                            })
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx(external_lucide_react_.ChevronDown, {
                                            size: 20
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("div", {
                                            className: "dropdown",
                                            children: /*#__PURE__*/ jsx_runtime_.jsx("a", {
                                                href: `/su/logout`,
                                                children: "Logout"
                                            })
                                        })
                                    ]
                                })
                            })
                        })
                    ]
                }),
                /*#__PURE__*/ jsx_runtime_.jsx("div", {
                    className: "ml-2",
                    children: /*#__PURE__*/ jsx_runtime_.jsx(ThemeSelector/* default */.Z, {})
                }),
                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("button", {
                    className: "bg-transparent w-16 p-4 gap-1.5 flex xl:hidden flex-col hover:bg-transparent transition-all ml-auto",
                    onClick: (e)=>{
                        /** @type {any} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper");
                        mainNavWrapper?.classList.toggle("hidden");
                    },
                    style: {
                        minWidth: "50px",
                        backgroundColor: "transparent"
                    },
                    id: "main-header-hamburger-button",
                    "aria-label": "Mobile Hambutget Button",
                    children: [
                        /*#__PURE__*/ jsx_runtime_.jsx("div", {
                            className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full"
                        }),
                        /*#__PURE__*/ jsx_runtime_.jsx("div", {
                            className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full"
                        }),
                        /*#__PURE__*/ jsx_runtime_.jsx("div", {
                            className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full"
                        })
                    ]
                })
            ]
        })
    });
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
}

// EXTERNAL MODULE: ./functions/frontend/updateNavLinks.js
var updateNavLinks = __webpack_require__(9678);
;// CONCATENATED MODULE: ./layouts/SuAdminLayout.jsx
// @ts-check
/**
 * ==============================================================================
 * Imports
 * ==============================================================================
 */ 


////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////



/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
 * ==============================================================================
 * Main Component { Functional }
 * ==============================================================================
 * @param {object} props - React Props
 * @param {React.ReactNode} props.children - children component
 * @param {React.ReactNode} [props.head] - head Items
 * @param {import("@/package-shared/types").UserType} props.user - user object
 */ function SuAdminLayout({ children , head , user  }) {
    /**
     * Get Contexts
     *
     * @abstract { React.useContext }
     */ ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * Javascript Variables
     *
     * @abstract Non hook variables and functions
     */ ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * React Hooks
     *
     * @abstract { useState, useEffect, useRef, etc ... }
     */ external_react_default().useEffect(()=>{
        /** @type { NodeListOf<HTMLAnchorElement> } */ const links = document.querySelectorAll("aside .main-links a");
        (0,updateNavLinks/* default */.Z)({
            links: links
        });
    }, []);
    ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    /**
     * Function Return
     *
     * @abstract Main Function Return
     */ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)((external_react_default()).Fragment, {
        children: [
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)((head_default()), {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx("link", {
                        rel: "stylesheet",
                        href: "/styles/admin.css"
                    }),
                    head
                ]
            }),
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                className: "admin w-full flex items-start gap-0",
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(Aside, {}),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("main", {
                        className: "relative",
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx(AdminHeader, {
                                user: user
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("div", {
                                className: "flex-col items-start gap-6 px-4 sl:px-8 py-8 bg-slate-50 dark:bg-slate-900",
                                children: children
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("footer", {
                                className: "flex justify-center w-full items-center p-4",
                                children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                                    className: "max-w-6xl w-full justify-center flex-wrap",
                                    children: [
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
                                            href: "/",
                                            className: "flex items-center gap-2",
                                            children: [
                                                /*#__PURE__*/ jsx_runtime_.jsx("img", {
                                                    src: "/images/logo-icon-alt-2.png",
                                                    alt: "Datasquirel Logo",
                                                    width: 30
                                                }),
                                                /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                                    className: "text-lg font-bold",
                                                    children: "Datasquirel"
                                                })
                                            ]
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                            className: "opacity-25",
                                            children: "|"
                                        }),
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("span", {
                                            className: "text-sm text-slate-400 dark:text-slate-600 text-center",
                                            children: [
                                                new Date().getFullYear(),
                                                " \xa9 Datasquirel. All rights reserved."
                                            ]
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                            className: "opacity-25",
                                            children: "|"
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("a", {
                                            href: "/docs",
                                            children: "Docs"
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("span", {
                                            className: "opacity-25",
                                            children: "|"
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("a", {
                                            href: "/terms",
                                            children: "Terms"
                                        })
                                    ]
                                })
                            })
                        ]
                    })
                ]
            })
        ]
    });
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
}


/***/ })

};
;