148 lines
4.2 KiB
JavaScript
148 lines
4.2 KiB
JavaScript
import { jsx, jsxs } from "react/jsx-runtime";
|
|
import { c as cn, q as queryParams, B as Button } from "./index-CY6fYws-.js";
|
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
import { e as edit$2 } from "./index-BuzAnds1.js";
|
|
import { e as edit$1 } from "./app-layout-BFyUFda2.js";
|
|
import { b as show } from "./index-BHwjGIZD.js";
|
|
import { Link } from "@inertiajs/react";
|
|
function Separator({
|
|
className,
|
|
orientation = "horizontal",
|
|
decorative = true,
|
|
...props
|
|
}) {
|
|
return /* @__PURE__ */ jsx(
|
|
SeparatorPrimitive.Root,
|
|
{
|
|
"data-slot": "separator-root",
|
|
decorative,
|
|
orientation,
|
|
className: cn(
|
|
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
className
|
|
),
|
|
...props
|
|
}
|
|
);
|
|
}
|
|
function HeadingSmall({
|
|
title,
|
|
description
|
|
}) {
|
|
return /* @__PURE__ */ jsxs("header", { children: [
|
|
/* @__PURE__ */ jsx("h3", { className: "mb-0.5 text-base font-medium", children: title }),
|
|
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
|
|
] });
|
|
}
|
|
function Heading({
|
|
title,
|
|
description
|
|
}) {
|
|
return /* @__PURE__ */ jsxs("div", { className: "mb-8 space-y-0.5", children: [
|
|
/* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold tracking-tight", children: title }),
|
|
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
|
|
] });
|
|
}
|
|
const edit = (options) => ({
|
|
url: edit.url(options),
|
|
method: "get"
|
|
});
|
|
edit.definition = {
|
|
methods: ["get", "head"],
|
|
url: "/settings/appearance"
|
|
};
|
|
edit.url = (options) => {
|
|
return edit.definition.url + queryParams(options);
|
|
};
|
|
edit.get = (options) => ({
|
|
url: edit.url(options),
|
|
method: "get"
|
|
});
|
|
edit.head = (options) => ({
|
|
url: edit.url(options),
|
|
method: "head"
|
|
});
|
|
const editForm = (options) => ({
|
|
action: edit.url(options),
|
|
method: "get"
|
|
});
|
|
editForm.get = (options) => ({
|
|
action: edit.url(options),
|
|
method: "get"
|
|
});
|
|
editForm.head = (options) => ({
|
|
action: edit.url({
|
|
[options?.mergeQuery ? "mergeQuery" : "query"]: {
|
|
_method: "HEAD",
|
|
...options?.query ?? options?.mergeQuery ?? {}
|
|
}
|
|
}),
|
|
method: "get"
|
|
});
|
|
edit.form = editForm;
|
|
({
|
|
edit: Object.assign(edit, edit)
|
|
});
|
|
const sidebarNavItems = [
|
|
{
|
|
title: "Profile",
|
|
href: edit$1(),
|
|
icon: null
|
|
},
|
|
{
|
|
title: "Password",
|
|
href: edit$2(),
|
|
icon: null
|
|
},
|
|
{
|
|
title: "Two-Factor Auth",
|
|
href: show(),
|
|
icon: null
|
|
},
|
|
{
|
|
title: "Appearance",
|
|
href: edit(),
|
|
icon: null
|
|
}
|
|
];
|
|
function SettingsLayout({ children }) {
|
|
if (typeof window === "undefined") {
|
|
return null;
|
|
}
|
|
const currentPath = window.location.pathname;
|
|
return /* @__PURE__ */ jsxs("div", { className: "px-4 py-6", children: [
|
|
/* @__PURE__ */ jsx(
|
|
Heading,
|
|
{
|
|
title: "Settings",
|
|
description: "Manage your profile and account settings"
|
|
}
|
|
),
|
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row lg:space-x-12", children: [
|
|
/* @__PURE__ */ jsx("aside", { className: "w-full max-w-xl lg:w-48", children: /* @__PURE__ */ jsx("nav", { className: "flex flex-col space-y-1 space-x-0", children: sidebarNavItems.map((item, index) => /* @__PURE__ */ jsx(
|
|
Button,
|
|
{
|
|
size: "sm",
|
|
variant: "ghost",
|
|
asChild: true,
|
|
className: cn("w-full justify-start", {
|
|
"bg-muted": currentPath === (typeof item.href === "string" ? item.href : item.href.url)
|
|
}),
|
|
children: /* @__PURE__ */ jsxs(Link, { href: item.href, children: [
|
|
item.icon && /* @__PURE__ */ jsx(item.icon, { className: "h-4 w-4" }),
|
|
item.title
|
|
] })
|
|
},
|
|
`${typeof item.href === "string" ? item.href : item.href.url}-${index}`
|
|
)) }) }),
|
|
/* @__PURE__ */ jsx(Separator, { className: "my-6 lg:hidden" }),
|
|
/* @__PURE__ */ jsx("div", { className: "flex-1 md:max-w-2xl", children: /* @__PURE__ */ jsx("section", { className: "max-w-xl space-y-12", children }) })
|
|
] })
|
|
] });
|
|
}
|
|
export {
|
|
HeadingSmall as H,
|
|
SettingsLayout as S,
|
|
edit as e
|
|
};
|