import { a as usePage, o as vue_exports, r as link_default, s as router } from "../ssr.js";
import { n as server_renderer_exports, t } from "./i18n-CXLOYfyq.js";
import { i as convoro, n as useAuthModal, r as Slot_default, t as AuthModal_default } from "./AuthModal-BJdeGGae.js";
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
import { t as ThemeToggle_default } from "./ThemeToggle-BRrS6gIk.js";
import { r as Toast_default, t as CommandPalette_default } from "./CommandPalette-CuQJmtpu.js";
import { t as ConvoroLogo_default } from "./ConvoroLogo-BjFA0Zti.js";
import { n as isStandalone, r as pushSupported } from "./push-BfOC85vB.js";
//#region resources/js/Components/forum/Avatar.vue?vue&type=script&setup=true&lang.ts
var Avatar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	inheritAttrs: false,
	__name: "Avatar",
	__ssrInlineRender: true,
	props: {
		avatar: {},
		size: { default: 40 },
		badge: {
			type: Boolean,
			default: false
		},
		presence: { default: null }
	},
	setup(__props) {
		const props = __props;
		const gradients = [
			"linear-gradient(135deg,#f472b6,#db2777)",
			"linear-gradient(135deg,#60a5fa,#2563eb)",
			"linear-gradient(135deg,#34d399,#059669)",
			"linear-gradient(135deg,#fbbf24,#d97706)",
			"linear-gradient(135deg,#a78bfa,#7c3aed)",
			"linear-gradient(135deg,#f87171,#dc2626)"
		];
		const bg = (0, vue_exports.computed)(() => gradients[(props.avatar.color - 1) % 6]);
		const showBadge = (0, vue_exports.computed)(() => props.badge && !!props.avatar.staff);
		const hasPresence = (0, vue_exports.computed)(() => props.presence != null);
		const isOnline = (0, vue_exports.computed)(() => props.presence === "online" || props.presence === "auto" && !!props.avatar.online);
		const glyphStyle = (0, vue_exports.computed)(() => ({
			width: props.size + "px",
			height: props.size + "px",
			borderRadius: "var(--c-avatar-radius, 9999px)"
		}));
		const dotSize = (0, vue_exports.computed)(() => Math.max(9, Math.round(props.size * .26)));
		return (_ctx, _push, _parent, _attrs) => {
			_push(`<span${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({ class: showBadge.value ? "inline-flex flex-col items-center gap-1" : "contents" }, _attrs))}>`);
			if (hasPresence.value) {
				_push(`<span${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)(_ctx.$attrs, { class: "relative inline-flex shrink-0" }))}>`);
				if (__props.avatar.avatar) _push(`<img${(0, server_renderer_exports.ssrRenderAttr)("src", __props.avatar.avatar)}${(0, server_renderer_exports.ssrRenderAttr)("alt", __props.avatar.initials)} class="block object-cover" style="${(0, server_renderer_exports.ssrRenderStyle)(glyphStyle.value)}">`);
				else _push(`<span class="grid place-items-center font-bold text-white" style="${(0, server_renderer_exports.ssrRenderStyle)({
					...glyphStyle.value,
					fontSize: __props.size * .38 + "px",
					background: bg.value
				})}">${(0, server_renderer_exports.ssrInterpolate)(__props.avatar.initials || "?")}</span>`);
				_push(`<span class="${(0, server_renderer_exports.ssrRenderClass)([isOnline.value ? "bg-emerald-500" : "bg-ink-muted", "absolute bottom-0 right-0 rounded-full ring-2 ring-surface"])}" style="${(0, server_renderer_exports.ssrRenderStyle)({
					width: dotSize.value + "px",
					height: dotSize.value + "px"
				})}"${(0, server_renderer_exports.ssrRenderAttr)("title", isOnline.value ? "Online" : "Offline")}></span></span>`);
			} else if (__props.avatar.avatar) _push(`<img${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)(_ctx.$attrs, {
				src: __props.avatar.avatar,
				alt: __props.avatar.initials,
				class: "shrink-0 object-cover",
				style: {
					width: __props.size + "px",
					height: __props.size + "px",
					borderRadius: "var(--c-avatar-radius, 9999px)"
				}
			}))}>`);
			else _push(`<span${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)(_ctx.$attrs, {
				class: "grid shrink-0 place-items-center font-bold text-white",
				style: {
					width: __props.size + "px",
					height: __props.size + "px",
					fontSize: __props.size * .38 + "px",
					background: bg.value,
					borderRadius: "var(--c-avatar-radius, 9999px)"
				}
			}))}>${(0, server_renderer_exports.ssrInterpolate)(__props.avatar.initials || "?")}</span>`);
			if (showBadge.value) _push(`<span class="max-w-full truncate rounded-full px-2 py-0.5 text-[9px] font-bold uppercase leading-none tracking-wide text-white shadow-sm" style="${(0, server_renderer_exports.ssrRenderStyle)({ background: __props.avatar.staff?.color })}">${(0, server_renderer_exports.ssrInterpolate)(__props.avatar.staff?.name)}</span>`);
			else _push(`<!---->`);
			_push(`</span>`);
		};
	}
});
//#endregion
//#region resources/js/Components/forum/Avatar.vue
var _sfc_setup$6 = Avatar_vue_vue_type_script_setup_true_lang_default.setup;
Avatar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Components/forum/Avatar.vue");
	return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
};
var Avatar_default = Avatar_vue_vue_type_script_setup_true_lang_default;
//#endregion
//#region resources/js/Components/forum/NotificationBell.vue?vue&type=script&setup=true&lang.ts
var NotificationBell_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "NotificationBell",
	__ssrInlineRender: true,
	setup(__props) {
		const page = usePage();
		const user = (0, vue_exports.computed)(() => page.props.auth?.user ?? null);
		const open = (0, vue_exports.ref)(false);
		const items = (0, vue_exports.ref)([]);
		const unread = (0, vue_exports.ref)(0);
		function syncFromProps() {
			const n = page.props.notifications ?? {
				items: [],
				unread: 0
			};
			items.value = n.items ?? [];
			unread.value = n.unread ?? 0;
		}
		syncFromProps();
		(0, vue_exports.watch)(() => page.props.notifications, syncFromProps, { deep: true });
		function label(n) {
			if (n.text) return n.text;
			if (n.type === "badge") return n.text || t("You earned a badge");
			if (n.type === "mention") return t("{actor} mentioned you in {topic}", {
				actor: n.actor?.name ?? "",
				topic: n.topic?.title ?? ""
			});
			if (n.type === "reaction") return t("{actor} reacted {emoji} to your post", {
				actor: n.actor?.name ?? "",
				emoji: n.emoji ?? ""
			});
			return t("{actor} replied in {topic}", {
				actor: n.actor?.name ?? "",
				topic: n.topic?.title ?? ""
			});
		}
		const Echo = () => window.Echo;
		let bound = false;
		(0, vue_exports.onMounted)(() => {
			document.addEventListener("click", onDocClick);
			if (user.value && Echo()) {
				Echo().private(`App.Models.User.${user.value.id}`).listen(".NotificationCreated", (e) => {
					if (e?.notification && !items.value.some((n) => n.id === e.notification.id)) {
						items.value.unshift(e.notification);
						items.value = items.value.slice(0, 15);
					}
					unread.value = e?.unread ?? unread.value + 1;
				});
				bound = true;
			}
		});
		(0, vue_exports.onBeforeUnmount)(() => {
			document.removeEventListener("click", onDocClick);
			if (bound && user.value && Echo()) Echo().leave(`App.Models.User.${user.value.id}`);
		});
		const root = (0, vue_exports.ref)(null);
		function onDocClick(e) {
			if (open.value && root.value && !root.value.contains(e.target)) open.value = false;
		}
		return (_ctx, _push, _parent, _attrs) => {
			_push(`<div${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({
				ref_key: "root",
				ref: root,
				class: "relative"
			}, _attrs))}><button type="button" class="relative flex h-[34px] w-[34px] items-center justify-center rounded-full border border-line bg-surface-2 text-ink-2 hover:text-ink"${(0, server_renderer_exports.ssrRenderAttr)("aria-label", (0, vue_exports.unref)(t)("Notifications"))}><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg>`);
			if (unread.value > 0) _push(`<span class="absolute -right-1 -top-1 flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-white">${(0, server_renderer_exports.ssrInterpolate)(unread.value > 99 ? "99+" : unread.value)}</span>`);
			else _push(`<!---->`);
			_push(`</button>`);
			if (open.value) {
				_push(`<div class="absolute right-0 top-[44px] z-50 w-[360px] overflow-hidden rounded-c border border-line bg-surface shadow-2xl shadow-black/10"><div class="flex items-center justify-between border-b border-line px-4 py-3"><span class="text-sm font-bold">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Notifications"))}</span>`);
				if (unread.value > 0) _push(`<button type="button" class="text-xs font-semibold text-primary-700 hover:underline">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Mark all read"))}</button>`);
				else _push(`<!---->`);
				_push(`</div><div class="max-h-[420px] overflow-y-auto"><!--[-->`);
				(0, server_renderer_exports.ssrRenderList)(items.value, (n) => {
					_push(`<button type="button" class="${(0, server_renderer_exports.ssrRenderClass)([!n.read ? "bg-primary/10" : "", "flex w-full gap-3 border-b border-line/60 px-4 py-3 text-left hover:bg-surface-2"])}">`);
					if (n.actor) _push((0, server_renderer_exports.ssrRenderComponent)(Avatar_default, {
						avatar: {
							initials: n.actor.initials,
							color: n.actor.color
						},
						size: 34
					}, null, _parent));
					else _push(`<span class="grid h-[34px] w-[34px] shrink-0 place-items-center rounded-full bg-surface-2 text-lg">${(0, server_renderer_exports.ssrInterpolate)(n.icon || "🔔")}</span>`);
					_push(`<span class="min-w-0 flex-1"><span class="block text-sm leading-snug text-ink">${(0, server_renderer_exports.ssrInterpolate)(label(n))}</span>`);
					if (n.excerpt) _push(`<span class="mt-0.5 block truncate text-xs text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)(n.excerpt)}</span>`);
					else _push(`<!---->`);
					_push(`<span class="mt-0.5 block text-[11px] text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)(n.time)}</span></span>`);
					if (!n.read) _push(`<span class="mt-1 h-2 w-2 shrink-0 rounded-full bg-primary"></span>`);
					else _push(`<!---->`);
					_push(`</button>`);
				});
				_push(`<!--]-->`);
				if (!items.value.length) _push(`<div class="px-4 py-10 text-center text-sm text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("You're all caught up. 🎉"))}</div>`);
				else _push(`<!---->`);
				_push(`</div>`);
				_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
					href: "/notifications",
					class: "block border-t border-line px-4 py-3 text-center text-sm font-semibold text-primary-700 hover:bg-surface-2",
					onClick: ($event) => open.value = false
				}, {
					default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
						if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("View all notifications"))}`);
						else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("View all notifications")), 1)];
					}),
					_: 1
				}, _parent));
				_push(`</div>`);
			} else _push(`<!---->`);
			_push(`</div>`);
		};
	}
});
//#endregion
//#region resources/js/Components/forum/NotificationBell.vue
var _sfc_setup$5 = NotificationBell_vue_vue_type_script_setup_true_lang_default.setup;
NotificationBell_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Components/forum/NotificationBell.vue");
	return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
};
var NotificationBell_default = NotificationBell_vue_vue_type_script_setup_true_lang_default;
//#endregion
//#region resources/js/Components/forum/UserMenu.vue?vue&type=script&setup=true&lang.ts
var UserMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "UserMenu",
	__ssrInlineRender: true,
	setup(__props) {
		const page = usePage();
		const user = (0, vue_exports.computed)(() => page.props.auth?.user ?? null);
		const isAdmin = (0, vue_exports.computed)(() => !!page.props.auth?.isAdmin);
		const canInvite = (0, vue_exports.computed)(() => !!page.props.auth?.canInvite);
		const hostingPanel = (0, vue_exports.computed)(() => !!page.props.hostingPanel);
		const initials = (0, vue_exports.computed)(() => {
			if (!user.value) return "";
			const p = String(user.value.name).trim().split(/\s+/);
			return (p[0]?.[0] ?? "") + (p.length > 1 ? p[p.length - 1][0] : "");
		});
		const open = (0, vue_exports.ref)(false);
		const root = (0, vue_exports.ref)(null);
		function onDoc(e) {
			if (open.value && root.value && !root.value.contains(e.target)) open.value = false;
		}
		(0, vue_exports.onMounted)(() => document.addEventListener("click", onDoc));
		(0, vue_exports.onBeforeUnmount)(() => document.removeEventListener("click", onDoc));
		return (_ctx, _push, _parent, _attrs) => {
			if (user.value) {
				_push(`<div${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({
					ref_key: "root",
					ref: root,
					class: "relative"
				}, _attrs))}><button type="button" class="block rounded-full focus:outline-none focus:ring-2 focus:ring-primary"${(0, server_renderer_exports.ssrRenderAttr)("aria-label", (0, vue_exports.unref)(t)("Account menu"))}>`);
				_push((0, server_renderer_exports.ssrRenderComponent)(Avatar_default, {
					avatar: {
						initials: initials.value,
						color: user.value.id % 6 + 1,
						avatar: user.value.avatar_path
					},
					size: 34
				}, null, _parent));
				_push(`</button>`);
				if (open.value) {
					_push(`<div class="absolute right-0 top-[44px] z-50 w-56 overflow-hidden rounded-c border border-line bg-surface py-1 shadow-2xl shadow-black/15"><div class="border-b border-line px-4 py-3"><div class="truncate text-sm font-bold text-ink">${(0, server_renderer_exports.ssrInterpolate)(user.value.name)}</div><div class="truncate text-xs text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)(user.value.email)}</div></div>`);
					_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
						href: `/u/${user.value.id}`,
						class: "block px-4 py-2.5 text-sm font-medium text-ink-2 hover:bg-surface-2 hover:text-ink",
						onClick: ($event) => open.value = false
					}, {
						default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
							if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Your profile"))}`);
							else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Your profile")), 1)];
						}),
						_: 1
					}, _parent));
					_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
						href: "/profile",
						class: "block px-4 py-2.5 text-sm font-medium text-ink-2 hover:bg-surface-2 hover:text-ink",
						onClick: ($event) => open.value = false
					}, {
						default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
							if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Settings"))}`);
							else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Settings")), 1)];
						}),
						_: 1
					}, _parent));
					_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
						href: "/drafts",
						class: "block px-4 py-2.5 text-sm font-medium text-ink-2 hover:bg-surface-2 hover:text-ink",
						onClick: ($event) => open.value = false
					}, {
						default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
							if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Drafts"))}`);
							else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Drafts")), 1)];
						}),
						_: 1
					}, _parent));
					if (hostingPanel.value) _push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
						href: "/panel",
						class: "block px-4 py-2.5 text-sm font-medium text-ink-2 hover:bg-surface-2 hover:text-ink",
						onClick: ($event) => open.value = false
					}, {
						default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
							if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("My communities"))} <span class="ml-1 rounded bg-primary/15 px-1 py-0.5 text-[9px] font-bold uppercase text-primary"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("POC"))}</span>`);
							else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("My communities")) + " ", 1), (0, vue_exports.createVNode)("span", { class: "ml-1 rounded bg-primary/15 px-1 py-0.5 text-[9px] font-bold uppercase text-primary" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("POC")), 1)];
						}),
						_: 1
					}, _parent));
					else _push(`<!---->`);
					_push((0, server_renderer_exports.ssrRenderComponent)(Slot_default, { name: "user:menu" }, null, _parent));
					if (canInvite.value) _push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
						href: "/invite",
						class: "block px-4 py-2.5 text-sm font-medium text-ink-2 hover:bg-surface-2 hover:text-ink",
						onClick: ($event) => open.value = false
					}, {
						default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
							if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Invite friends"))}`);
							else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Invite friends")), 1)];
						}),
						_: 1
					}, _parent));
					else _push(`<!---->`);
					if (isAdmin.value) _push(`<a href="/admin" target="_blank" rel="noopener" class="block px-4 py-2.5 text-sm font-medium text-ink-2 hover:bg-surface-2 hover:text-ink">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Admin"))} <span class="text-ink-muted">↗</span></a>`);
					else _push(`<!---->`);
					_push(`<div class="my-1 border-t border-line"></div><button type="button" class="block w-full px-4 py-2.5 text-left text-sm font-medium text-red-500 hover:bg-surface-2">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Log out"))}</button></div>`);
				} else _push(`<!---->`);
				_push(`</div>`);
			} else _push(`<!---->`);
		};
	}
});
//#endregion
//#region resources/js/Components/forum/UserMenu.vue
var _sfc_setup$4 = UserMenu_vue_vue_type_script_setup_true_lang_default.setup;
UserMenu_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Components/forum/UserMenu.vue");
	return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
};
var UserMenu_default = UserMenu_vue_vue_type_script_setup_true_lang_default;
//#endregion
//#region resources/js/Components/forum/MobileTabBar.vue?vue&type=script&setup=true&lang.ts
var MobileTabBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "MobileTabBar",
	__ssrInlineRender: true,
	setup(__props) {
		const page = usePage();
		const auth = useAuthModal();
		const user = (0, vue_exports.computed)(() => page.props.auth?.user ?? null);
		const cfg = (0, vue_exports.computed)(() => page.props.mobileNav ?? {
			enabled: true,
			tabs: []
		});
		const brandImg = (0, vue_exports.computed)(() => {
			const s = page.props.site ?? {};
			return s.favicon || s.logo || s.icon || "";
		});
		const dmUnread = (0, vue_exports.computed)(() => Number(page.props.dmUnread ?? 0));
		const notifUnread = (0, vue_exports.computed)(() => Number(page.props.notifications?.unread ?? 0));
		const I = {
			home: "M3 11l9-8 9 8M5 9v11h5v-6h4v6h5V9",
			search: "M11 4a7 7 0 100 14 7 7 0 000-14z M21 21l-4.3-4.3",
			compose: "M12 5v14M5 12h14",
			notifications: "M6 9a6 6 0 1112 0c0 5 2 6 2 7H4c0-1 2-2 2-7z M10.5 21a2 2 0 003 0",
			messages: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z",
			members: "M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2 M9 11a4 4 0 100-8 4 4 0 000 8 M23 21v-2a4 4 0 00-3-3.87 M16 3.13a4 4 0 010 7.75",
			leaderboard: "M8 21h8M12 17v4M7 4h10v4a5 5 0 01-10 0V4z M5 4H3v2a3 3 0 003 3 M19 4h2v2a3 3 0 01-3 3",
			account: "M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2 M12 11a4 4 0 100-8 4 4 0 000 8"
		};
		const CATALOG = {
			home: {
				key: "home",
				label: t("Home"),
				href: "/",
				icon: I.home,
				active: (c) => c.startsWith("Forum")
			},
			search: {
				key: "search",
				label: t("Search"),
				href: "/search",
				icon: I.search,
				active: (c) => c.startsWith("Search")
			},
			compose: {
				key: "compose",
				label: t("Post"),
				href: "/new",
				icon: I.compose,
				auth: true,
				center: true,
				active: (c) => c === "Topic/Create"
			},
			notifications: {
				key: "notifications",
				label: t("Alerts"),
				href: "/notifications",
				icon: I.notifications,
				auth: true,
				badge: "notif",
				active: (c) => c.startsWith("Notifications")
			},
			messages: {
				key: "messages",
				label: t("Messages"),
				href: "/messages",
				icon: I.messages,
				auth: true,
				badge: "dm",
				active: (c) => c.startsWith("Messages")
			},
			members: {
				key: "members",
				label: t("Members"),
				href: "/members",
				icon: I.members,
				active: (c) => c === "Members/Index"
			},
			account: {
				key: "account",
				label: t("You"),
				icon: I.account,
				active: (c) => c.startsWith("Profile") || c === "Settings"
			}
		};
		const tabs = (0, vue_exports.computed)(() => (cfg.value.tabs ?? []).map((k) => CATALOG[k]).filter((tb) => !!tb).filter((tb) => user.value || !tb.auth || tb.key === "account" || tb.key === "compose"));
		const show = (0, vue_exports.computed)(() => cfg.value.enabled && tabs.value.length >= 2);
		function badge(tb) {
			if (tb.badge === "notif") return notifUnread.value;
			if (tb.badge === "dm") return dmUnread.value;
			return 0;
		}
		function isActive(tb) {
			return tb.active(String(page.component), String(page.props.ziggy?.location ?? ""));
		}
		function go(tb, e) {
			if (!user.value && (tb.key === "compose" || tb.key === "account" || tb.auth)) {
				e.preventDefault();
				auth.open(tb.key === "compose" ? "register" : "login");
				return;
			}
			if (tb.key === "account" && user.value) {
				e.preventDefault();
				router.visit(`/u/${user.value.id}`);
			}
		}
		return (_ctx, _push, _parent, _attrs) => {
			if (show.value) {
				_push(`<nav${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({ class: "mobile-tabbar fixed inset-x-0 bottom-0 z-40 border-t border-line bg-surface/95 backdrop-blur md:hidden" }, _attrs))} data-v-166e3793><div class="mx-auto flex max-w-[var(--c-container)] items-stretch justify-around" data-v-166e3793><!--[-->`);
				(0, server_renderer_exports.ssrRenderList)(tabs.value, (tab) => {
					(0, server_renderer_exports.ssrRenderVNode)(_push, (0, vue_exports.createVNode)((0, vue_exports.resolveDynamicComponent)(tab.href ? (0, vue_exports.unref)(link_default) : "button"), {
						key: tab.key,
						href: tab.href,
						type: "button",
						class: ["relative flex flex-1 flex-col items-center justify-center gap-0.5 py-2 text-[11px] font-semibold", [tab.center ? "" : isActive(tab) ? "text-primary" : "text-ink-muted hover:text-ink-2"]],
						"aria-label": tab.label,
						onClick: (e) => go(tab, e)
					}, {
						default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
							if (_push) if (tab.center) {
								_push(`<!--[--><span class="${(0, server_renderer_exports.ssrRenderClass)([brandImg.value ? "bg-white" : "bg-primary text-white", "-mt-5 grid h-12 w-12 place-items-center overflow-hidden rounded-full shadow-lg shadow-primary/40 ring-4 ring-surface"])}" data-v-166e3793${_scopeId}>`);
								if (brandImg.value) _push(`<img${(0, server_renderer_exports.ssrRenderAttr)("src", brandImg.value)} alt="" class="h-8 w-8 object-contain" data-v-166e3793${_scopeId}>`);
								else _push(`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" data-v-166e3793${_scopeId}><path${(0, server_renderer_exports.ssrRenderAttr)("d", tab.icon)} data-v-166e3793${_scopeId}></path></svg>`);
								_push(`</span><span class="-mt-1 text-ink-muted" data-v-166e3793${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)(tab.label)}</span><!--]-->`);
							} else {
								_push(`<!--[--><span class="relative" data-v-166e3793${_scopeId}>`);
								if (tab.key === "account" && user.value) _push((0, server_renderer_exports.ssrRenderComponent)(Avatar_default, {
									avatar: {
										initials: "",
										color: user.value.id % 6 + 1,
										avatar: user.value.avatar_path
									},
									size: 24
								}, null, _parent, _scopeId));
								else _push(`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-166e3793${_scopeId}><path${(0, server_renderer_exports.ssrRenderAttr)("d", tab.icon)} data-v-166e3793${_scopeId}></path></svg>`);
								if (badge(tab) > 0) _push(`<span class="absolute -right-2 -top-1.5 flex h-[16px] min-w-[16px] items-center justify-center rounded-full bg-primary px-1 text-[9px] font-bold text-white" data-v-166e3793${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)(badge(tab) > 99 ? "99+" : badge(tab))}</span>`);
								else _push(`<!---->`);
								_push(`</span><span data-v-166e3793${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)(tab.label)}</span><!--]-->`);
							}
							else return [tab.center ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)(vue_exports.Fragment, { key: 0 }, [(0, vue_exports.createVNode)("span", { class: ["-mt-5 grid h-12 w-12 place-items-center overflow-hidden rounded-full shadow-lg shadow-primary/40 ring-4 ring-surface", brandImg.value ? "bg-white" : "bg-primary text-white"] }, [brandImg.value ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("img", {
								key: 0,
								src: brandImg.value,
								alt: "",
								class: "h-8 w-8 object-contain"
							}, null, 8, ["src"])) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("svg", {
								key: 1,
								width: "24",
								height: "24",
								viewBox: "0 0 24 24",
								fill: "none",
								stroke: "currentColor",
								"stroke-width": "2.4",
								"stroke-linecap": "round",
								"stroke-linejoin": "round"
							}, [(0, vue_exports.createVNode)("path", { d: tab.icon }, null, 8, ["d"])]))], 2), (0, vue_exports.createVNode)("span", { class: "-mt-1 text-ink-muted" }, (0, vue_exports.toDisplayString)(tab.label), 1)], 64)) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)(vue_exports.Fragment, { key: 1 }, [(0, vue_exports.createVNode)("span", { class: "relative" }, [tab.key === "account" && user.value ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)(Avatar_default, {
								key: 0,
								avatar: {
									initials: "",
									color: user.value.id % 6 + 1,
									avatar: user.value.avatar_path
								},
								size: 24
							}, null, 8, ["avatar"])) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("svg", {
								key: 1,
								width: "24",
								height: "24",
								viewBox: "0 0 24 24",
								fill: "none",
								stroke: "currentColor",
								"stroke-width": "2",
								"stroke-linecap": "round",
								"stroke-linejoin": "round"
							}, [(0, vue_exports.createVNode)("path", { d: tab.icon }, null, 8, ["d"])])), badge(tab) > 0 ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
								key: 2,
								class: "absolute -right-2 -top-1.5 flex h-[16px] min-w-[16px] items-center justify-center rounded-full bg-primary px-1 text-[9px] font-bold text-white"
							}, (0, vue_exports.toDisplayString)(badge(tab) > 99 ? "99+" : badge(tab)), 1)) : (0, vue_exports.createCommentVNode)("", true)]), (0, vue_exports.createVNode)("span", null, (0, vue_exports.toDisplayString)(tab.label), 1)], 64))];
						}),
						_: 2
					}), _parent);
				});
				_push(`<!--]--></div></nav>`);
			} else _push(`<!---->`);
		};
	}
});
//#endregion
//#region resources/js/Components/forum/MobileTabBar.vue
var _sfc_setup$3 = MobileTabBar_vue_vue_type_script_setup_true_lang_default.setup;
MobileTabBar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Components/forum/MobileTabBar.vue");
	return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
var MobileTabBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(MobileTabBar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-166e3793"]]);
//#endregion
//#region resources/js/Components/PullToRefresh.vue?vue&type=script&setup=true&lang.ts
var THRESHOLD = 70;
var MAX = 120;
var PullToRefresh_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "PullToRefresh",
	__ssrInlineRender: true,
	setup(__props) {
		const pull = (0, vue_exports.ref)(0);
		const refreshing = (0, vue_exports.ref)(false);
		let startY = 0;
		let tracking = false;
		function onStart(e) {
			if (refreshing.value || window.scrollY > 0 || e.touches.length !== 1) {
				tracking = false;
				return;
			}
			startY = e.touches[0].clientY;
			tracking = true;
		}
		function onMove(e) {
			if (!tracking) return;
			if (window.scrollY > 0) {
				tracking = false;
				pull.value = 0;
				return;
			}
			const dy = e.touches[0].clientY - startY;
			if (dy <= 0) {
				pull.value = 0;
				return;
			}
			pull.value = Math.min(MAX, dy * .5);
			if (pull.value > 4 && e.cancelable) e.preventDefault();
		}
		function onEnd() {
			if (!tracking) return;
			tracking = false;
			if (pull.value >= THRESHOLD) {
				refreshing.value = true;
				pull.value = THRESHOLD;
				router.reload({ onFinish: () => {
					refreshing.value = false;
					pull.value = 0;
				} });
			} else pull.value = 0;
		}
		(0, vue_exports.onMounted)(() => {
			window.addEventListener("touchstart", onStart, { passive: true });
			window.addEventListener("touchmove", onMove, { passive: false });
			window.addEventListener("touchend", onEnd, { passive: true });
			window.addEventListener("touchcancel", onEnd, { passive: true });
		});
		(0, vue_exports.onBeforeUnmount)(() => {
			window.removeEventListener("touchstart", onStart);
			window.removeEventListener("touchmove", onMove);
			window.removeEventListener("touchend", onEnd);
			window.removeEventListener("touchcancel", onEnd);
		});
		return (_ctx, _push, _parent, _attrs) => {
			_push(`<div${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({
				class: "pointer-events-none fixed inset-x-0 top-0 z-50 flex justify-center md:hidden",
				style: {
					transform: `translateY(${(refreshing.value ? THRESHOLD : pull.value) - 42}px)`,
					transition: (0, vue_exports.unref)(tracking) ? "none" : "transform 0.2s ease"
				}
			}, _attrs, { style: pull.value > 0 || refreshing.value ? null : { display: "none" } }))}><div class="grid h-9 w-9 place-items-center rounded-full bg-surface shadow-lg ring-1 ring-line"><svg class="${(0, server_renderer_exports.ssrRenderClass)([refreshing.value ? "animate-spin" : "", "h-5 w-5 text-primary"])}" style="${(0, server_renderer_exports.ssrRenderStyle)(refreshing.value ? {} : {
				transform: `rotate(${Math.min(360, pull.value * 3)}deg)`,
				opacity: String(Math.min(1, pull.value / THRESHOLD))
			})}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-2.64-6.36"></path><path d="M21 3v6h-6"></path></svg></div></div>`);
		};
	}
});
//#endregion
//#region resources/js/Components/PullToRefresh.vue
var _sfc_setup$2 = PullToRefresh_vue_vue_type_script_setup_true_lang_default.setup;
PullToRefresh_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Components/PullToRefresh.vue");
	return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
var PullToRefresh_default = PullToRefresh_vue_vue_type_script_setup_true_lang_default;
//#endregion
//#region resources/js/Components/PwaBanner.vue?vue&type=script&setup=true&lang.ts
var DISMISS_KEY = "convoro_pwa_banner_dismissed";
var PwaBanner_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "PwaBanner",
	__ssrInlineRender: true,
	setup(__props) {
		const page = usePage();
		const vapidKey = () => page.props.pushKey ?? "";
		const loggedIn = () => !!page.props.auth?.user;
		const show = (0, vue_exports.ref)(false);
		const mode = (0, vue_exports.ref)("install");
		const busy = (0, vue_exports.ref)(false);
		const isIos = () => /iphone|ipad|ipod/i.test(navigator.userAgent) && !window.MSStream;
		function dismissed() {
			try {
				return localStorage.getItem(DISMISS_KEY) === "1";
			} catch {
				return false;
			}
		}
		function onBeforeInstall(e) {
			e.preventDefault();
			if (!dismissed() && !isStandalone()) {
				mode.value = "install";
				show.value = true;
			}
		}
		(0, vue_exports.onMounted)(() => {
			if (dismissed()) return;
			if (page.props.site?.pwaBanner === false) return;
			window.addEventListener("beforeinstallprompt", onBeforeInstall);
			if (isIos() && !isStandalone()) {
				mode.value = "ios";
				show.value = true;
				return;
			}
			if (isStandalone() && loggedIn() && pushSupported() && vapidKey() && Notification.permission === "default") {
				mode.value = "push";
				show.value = true;
			}
		});
		(0, vue_exports.onBeforeUnmount)(() => window.removeEventListener("beforeinstallprompt", onBeforeInstall));
		return (_ctx, _push, _parent, _attrs) => {
			if (show.value) {
				_push(`<div${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({
					class: "fixed inset-x-3 bottom-3 z-[60] mx-auto max-w-md rounded-c border border-line bg-surface p-4 shadow-2xl shadow-black/20 sm:inset-x-auto sm:right-4",
					role: "dialog",
					"aria-label": (0, vue_exports.unref)(t)("Install Convoro")
				}, _attrs))}><div class="flex items-start gap-3"><img src="/icons/icon-192.png" alt="" width="44" height="44" class="rounded-xl"><div class="min-w-0 flex-1">`);
				if (mode.value === "install") _push(`<!--[--><p class="text-sm font-bold text-ink">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Install the Convoro app"))}</p><p class="mt-0.5 text-sm text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Add it to your home screen for a faster, full-screen experience with push notifications."))}</p><div class="mt-3 flex gap-2"><button type="button"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(busy.value) ? " disabled" : ""} class="rounded-lg bg-primary px-3 py-1.5 text-sm font-semibold text-white hover:bg-primary-600 disabled:opacity-60">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Install"))}</button><button type="button" class="rounded-lg px-3 py-1.5 text-sm font-semibold text-ink-2 hover:bg-surface-2">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Not now"))}</button></div><!--]-->`);
				else if (mode.value === "ios") _push(`<!--[--><p class="text-sm font-bold text-ink">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Install Convoro"))}</p><p class="mt-0.5 text-sm text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Tap the Share button, then"))} <strong>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Add to Home Screen"))}</strong> ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("to install the app and unlock notifications."))}</p><div class="mt-3"><button type="button" class="rounded-lg px-3 py-1.5 text-sm font-semibold text-ink-2 hover:bg-surface-2">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Got it"))}</button></div><!--]-->`);
				else _push(`<!--[--><p class="text-sm font-bold text-ink">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Turn on notifications"))}</p><p class="mt-0.5 text-sm text-ink-muted">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Get notified about replies, mentions and reactions."))}</p><div class="mt-3 flex gap-2"><button type="button"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(busy.value) ? " disabled" : ""} class="rounded-lg bg-primary px-3 py-1.5 text-sm font-semibold text-white hover:bg-primary-600 disabled:opacity-60">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Enable"))}</button><button type="button" class="rounded-lg px-3 py-1.5 text-sm font-semibold text-ink-2 hover:bg-surface-2">${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("No thanks"))}</button></div><!--]-->`);
				_push(`</div><button type="button"${(0, server_renderer_exports.ssrRenderAttr)("aria-label", (0, vue_exports.unref)(t)("Dismiss"))} class="text-ink-muted hover:text-ink"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6 6 18M6 6l12 12"></path></svg></button></div></div>`);
			} else _push(`<!---->`);
		};
	}
});
//#endregion
//#region resources/js/Components/PwaBanner.vue
var _sfc_setup$1 = PwaBanner_vue_vue_type_script_setup_true_lang_default.setup;
PwaBanner_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Components/PwaBanner.vue");
	return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
var PwaBanner_default = PwaBanner_vue_vue_type_script_setup_true_lang_default;
//#endregion
//#region resources/js/Layouts/AppLayout.vue?vue&type=script&setup=true&lang.ts
var AppLayout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "AppLayout",
	__ssrInlineRender: true,
	setup(__props) {
		const ThemeEditor = (0, vue_exports.defineAsyncComponent)(() => import("./ThemeEditor-BYarSstH.js"));
		const hasFooter = (0, vue_exports.computed)(() => convoro.slotEntries("forum:footer").length > 0);
		useAuthModal();
		const page = usePage();
		const user = (0, vue_exports.computed)(() => page.props.auth?.user ?? null);
		const isAdmin = (0, vue_exports.computed)(() => !!page.props.auth?.isAdmin);
		const activeTenant = (0, vue_exports.computed)(() => page.props.activeTenant ?? null);
		const storeOwner = (0, vue_exports.computed)(() => !!page.props.storeOwner);
		const extNav = (0, vue_exports.computed)(() => page.props.extNav ?? []);
		const visibleExtNav = (0, vue_exports.computed)(() => extNav.value.filter((n) => !n.auth || !!user.value));
		function navActive(href) {
			const url = String(page.url ?? "").split(/[?#]/)[0];
			return url === href || url.startsWith(href + "/");
		}
		const dmUnread = (0, vue_exports.computed)(() => Number(page.props.dmUnread ?? 0));
		const mobileBar = (0, vue_exports.computed)(() => !!page.props.mobileNav?.enabled && (page.props.mobileNav?.tabs?.length ?? 0) >= 2);
		const siteLogo = (0, vue_exports.computed)(() => page.props.site?.logo || "");
		const siteLogoDark = (0, vue_exports.computed)(() => page.props.site?.logoDark || "");
		(0, vue_exports.computed)(() => {
			if (!user.value) return "";
			const p = String(user.value.name).trim().split(/\s+/);
			return (p[0]?.[0] ?? "") + (p.length > 1 ? p[p.length - 1][0] : "");
		});
		const mobileOpen = (0, vue_exports.ref)(false);
		const locales = (0, vue_exports.computed)(() => page.props.i18n?.locales ?? {});
		const currentLocale = (0, vue_exports.computed)(() => page.props.i18n?.locale ?? "en");
		const autoTranslate = (0, vue_exports.computed)(() => !!page.props.auth?.user?.auto_translate);
		(0, vue_exports.watchEffect)(() => {
			if (typeof document !== "undefined") document.documentElement.dir = page.props.i18n?.rtl ? "rtl" : "ltr";
		});
		return (_ctx, _push, _parent, _attrs) => {
			_push(`<div${(0, server_renderer_exports.ssrRenderAttrs)((0, vue_exports.mergeProps)({ class: "min-h-screen bg-appbg text-ink" }, _attrs))} data-v-fc31c12d>`);
			if (activeTenant.value && activeTenant.value.kind !== "demo") _push(`<div class="flex flex-wrap items-center justify-center gap-x-3 gap-y-1 bg-primary px-4 py-1.5 text-center text-sm font-medium text-white" data-v-fc31c12d><span data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("You’re inside your hosted community"))}: <b data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)(activeTenant.value.name)}</b> — ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("its own database, you’re the admin."))}</span><button type="button" class="rounded bg-white/20 px-2 py-0.5 text-xs font-bold hover:bg-white/30" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Exit to panel"))}</button></div>`);
			else _push(`<!---->`);
			_push(`<a href="#main" class="skip-link" data-v-fc31c12d>Skip to content</a><header class="q-header sticky top-0 z-40 border-b border-line backdrop-blur" data-v-fc31c12d><div class="mx-auto flex h-[60px] max-w-[var(--c-container)] items-center gap-5 px-6" data-v-fc31c12d>`);
			_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
				href: "/",
				class: "flex items-center"
			}, {
				default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
					if (_push) if (siteLogo.value || siteLogoDark.value) _push(`<!--[--><img${(0, server_renderer_exports.ssrRenderAttr)("src", siteLogo.value || siteLogoDark.value)} alt="Logo" class="block h-8 w-auto max-w-[180px] dark:hidden" data-v-fc31c12d${_scopeId}><img${(0, server_renderer_exports.ssrRenderAttr)("src", siteLogoDark.value || siteLogo.value)} alt="Logo" class="hidden h-8 w-auto max-w-[180px] dark:block" data-v-fc31c12d${_scopeId}><!--]-->`);
					else _push((0, server_renderer_exports.ssrRenderComponent)(ConvoroLogo_default, { size: 34 }, null, _parent, _scopeId));
					else return [siteLogo.value || siteLogoDark.value ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)(vue_exports.Fragment, { key: 0 }, [(0, vue_exports.createVNode)("img", {
						src: siteLogo.value || siteLogoDark.value,
						alt: "Logo",
						class: "block h-8 w-auto max-w-[180px] dark:hidden"
					}, null, 8, ["src"]), (0, vue_exports.createVNode)("img", {
						src: siteLogoDark.value || siteLogo.value,
						alt: "Logo",
						class: "hidden h-8 w-auto max-w-[180px] dark:block"
					}, null, 8, ["src"])], 64)) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)(ConvoroLogo_default, {
						key: 1,
						size: 34
					}))];
				}),
				_: 1
			}, _parent));
			_push(`<nav class="ml-2 hidden items-center gap-1 md:flex" data-v-fc31c12d>`);
			_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
				href: "/",
				class: ["rounded-lg px-3 py-2 text-sm font-semibold", _ctx.$page.component.startsWith("Forum") ? "bg-primary/15 text-primary" : "text-ink-2 hover:bg-surface-2"]
			}, {
				default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
					if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Community"))}`);
					else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Community")), 1)];
				}),
				_: 1
			}, _parent));
			if (storeOwner.value) _push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
				href: "/extensions",
				class: ["rounded-lg px-3 py-2 text-sm font-semibold", _ctx.$page.component.startsWith("Extensions") ? "bg-primary/15 text-primary" : "text-ink-2 hover:bg-surface-2"]
			}, {
				default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
					if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Extensions"))}`);
					else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Extensions")), 1)];
				}),
				_: 1
			}, _parent));
			else _push(`<!---->`);
			_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
				href: "/members",
				class: ["rounded-lg px-3 py-2 text-sm font-semibold", _ctx.$page.component === "Members/Index" ? "bg-primary/15 text-primary" : "text-ink-2 hover:bg-surface-2"]
			}, {
				default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
					if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Members"))}`);
					else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Members")), 1)];
				}),
				_: 1
			}, _parent));
			_push(`<!--[-->`);
			(0, server_renderer_exports.ssrRenderList)(visibleExtNav.value, (n) => {
				_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
					key: n.href,
					href: n.href,
					class: ["rounded-lg px-3 py-2 text-sm font-semibold", navActive(n.href) ? "bg-primary/15 text-primary" : "text-ink-2 hover:bg-surface-2"]
				}, {
					default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
						if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)(n.label))}`);
						else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)(n.label)), 1)];
					}),
					_: 2
				}, _parent));
			});
			_push(`<!--]-->`);
			_push((0, server_renderer_exports.ssrRenderComponent)(Slot_default, { name: "header:nav" }, null, _parent));
			_push(`</nav><div class="ml-auto flex items-center gap-3" data-v-fc31c12d>`);
			if (Object.keys(locales.value).length > 1) {
				_push(`<select${(0, server_renderer_exports.ssrRenderAttr)("value", currentLocale.value)}${(0, server_renderer_exports.ssrRenderAttr)("aria-label", (0, vue_exports.unref)(t)("Language"))} class="hidden rounded-lg border-line bg-surface-2 py-1.5 pl-2 pr-7 text-xs font-semibold text-ink-2 focus:border-primary focus:ring-primary sm:block" data-v-fc31c12d><!--[-->`);
				(0, server_renderer_exports.ssrRenderList)(locales.value, (label, code) => {
					_push(`<option${(0, server_renderer_exports.ssrRenderAttr)("value", code)} data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)(label)}</option>`);
				});
				_push(`<!--]--></select>`);
			} else _push(`<!---->`);
			if (user.value) _push(`<label${(0, server_renderer_exports.ssrRenderAttr)("title", (0, vue_exports.unref)(t)("Automatically translate posts into your language"))} class="hidden cursor-pointer items-center gap-1.5 rounded-lg bg-surface-2 px-2 py-1.5 text-xs font-semibold text-ink-2 sm:flex" data-v-fc31c12d><input type="checkbox"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(autoTranslate.value) ? " checked" : ""} class="h-3.5 w-3.5 rounded border-line text-primary focus:ring-primary" data-v-fc31c12d><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-fc31c12d><path d="m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6" data-v-fc31c12d></path></svg><span data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Auto-translate"))}</span></label>`);
			else _push(`<!---->`);
			_push((0, server_renderer_exports.ssrRenderComponent)(ThemeToggle_default, null, null, _parent));
			_push((0, server_renderer_exports.ssrRenderComponent)(Slot_default, { name: "header:end" }, null, _parent));
			if (user.value) {
				_push(`<!--[-->`);
				_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(link_default), {
					href: "/messages",
					class: "relative flex h-[34px] w-[34px] items-center justify-center rounded-full border border-line bg-surface-2 text-ink-2 hover:text-ink",
					"aria-label": "Messages"
				}, {
					default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
						if (_push) {
							_push(`<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-fc31c12d${_scopeId}><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" data-v-fc31c12d${_scopeId}></path></svg>`);
							if (dmUnread.value > 0) _push(`<span class="absolute -right-1 -top-1 flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-white" data-v-fc31c12d${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)(dmUnread.value > 99 ? "99+" : dmUnread.value)}</span>`);
							else _push(`<!---->`);
						} else return [((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("svg", {
							width: "18",
							height: "18",
							viewBox: "0 0 24 24",
							fill: "none",
							stroke: "currentColor",
							"stroke-width": "2",
							"stroke-linecap": "round",
							"stroke-linejoin": "round"
						}, [(0, vue_exports.createVNode)("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })])), dmUnread.value > 0 ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
							key: 0,
							class: "absolute -right-1 -top-1 flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-white"
						}, (0, vue_exports.toDisplayString)(dmUnread.value > 99 ? "99+" : dmUnread.value), 1)) : (0, vue_exports.createCommentVNode)("", true)];
					}),
					_: 1
				}, _parent));
				_push((0, server_renderer_exports.ssrRenderComponent)(NotificationBell_default, null, null, _parent));
				_push((0, server_renderer_exports.ssrRenderComponent)(UserMenu_default, null, null, _parent));
				_push(`<!--]-->`);
			} else _push(`<!--[--><button type="button" class="hidden rounded-lg px-3 py-2 text-sm font-semibold text-ink-2 hover:bg-surface-2 sm:block" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Log in"))}</button><button type="button" class="hidden rounded-lg bg-primary px-4 py-2 text-sm font-semibold text-white shadow-lg shadow-primary/30 hover:bg-primary-600 sm:block" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Join"))}</button><!--]-->`);
			_push(`<button type="button" class="grid h-[34px] w-[34px] place-items-center rounded-full border border-line bg-surface-2 text-ink-2 hover:text-ink md:hidden"${(0, server_renderer_exports.ssrRenderAttr)("aria-expanded", mobileOpen.value)} aria-label="Menu" data-v-fc31c12d>`);
			if (!mobileOpen.value) _push(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-fc31c12d><path d="M3 6h18M3 12h18M3 18h18" data-v-fc31c12d></path></svg>`);
			else _push(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-fc31c12d><path d="M18 6 6 18M6 6l12 12" data-v-fc31c12d></path></svg>`);
			_push(`</button></div></div>`);
			if (mobileOpen.value) {
				_push(`<div class="border-t border-line bg-surface md:hidden" data-v-fc31c12d><nav class="mx-auto max-w-[var(--c-container)] space-y-1 px-4 py-3" data-v-fc31c12d><button type="button" class="mb-2 flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-4 py-2.5 text-sm font-bold text-white shadow-lg shadow-primary/30 hover:bg-primary-600" data-v-fc31c12d><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" data-v-fc31c12d><path d="M12 5v14M5 12h14" data-v-fc31c12d></path></svg> ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Start a discussion"))}</button><button type="button" class="block w-full rounded-lg px-3 py-2.5 text-left text-sm font-semibold text-ink-2 hover:bg-surface-2" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Community"))}</button>`);
				if (storeOwner.value) _push(`<button type="button" class="block w-full rounded-lg px-3 py-2.5 text-left text-sm font-semibold text-ink-2 hover:bg-surface-2" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Extensions"))}</button>`);
				else _push(`<!---->`);
				_push(`<button type="button" class="block w-full rounded-lg px-3 py-2.5 text-left text-sm font-semibold text-ink-2 hover:bg-surface-2" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Members"))}</button><!--[-->`);
				(0, server_renderer_exports.ssrRenderList)(visibleExtNav.value, (n) => {
					_push(`<button type="button" class="block w-full rounded-lg px-3 py-2.5 text-left text-sm font-semibold text-ink-2 hover:bg-surface-2" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)(n.label))}</button>`);
				});
				_push(`<!--]-->`);
				if (Object.keys(locales.value).length > 1 || user.value) {
					_push(`<div class="!mt-3 space-y-2.5 border-t border-line pt-3" data-v-fc31c12d>`);
					if (Object.keys(locales.value).length > 1) {
						_push(`<label class="block" data-v-fc31c12d><span class="mb-1 block text-xs font-semibold uppercase tracking-wide text-ink-muted" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Language"))}</span><select${(0, server_renderer_exports.ssrRenderAttr)("value", currentLocale.value)} class="w-full rounded-lg border-line bg-surface-2 py-2 text-sm font-medium text-ink-2 focus:border-primary focus:ring-primary" data-v-fc31c12d><!--[-->`);
						(0, server_renderer_exports.ssrRenderList)(locales.value, (label, code) => {
							_push(`<option${(0, server_renderer_exports.ssrRenderAttr)("value", code)} data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)(label)}</option>`);
						});
						_push(`<!--]--></select></label>`);
					} else _push(`<!---->`);
					if (user.value) _push(`<label class="flex cursor-pointer items-center gap-2.5 rounded-lg bg-surface-2 px-3 py-2.5" data-v-fc31c12d><input type="checkbox"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(autoTranslate.value) ? " checked" : ""} class="h-4 w-4 rounded border-line text-primary focus:ring-primary" data-v-fc31c12d><span class="text-sm font-medium text-ink-2" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Auto-translate posts into my language"))}</span></label>`);
					else _push(`<!---->`);
					_push(`</div>`);
				} else _push(`<!---->`);
				if (!user.value) _push(`<div class="!mt-3 flex gap-2 border-t border-line pt-3" data-v-fc31c12d><button type="button" class="flex-1 rounded-lg border border-line px-3 py-2.5 text-sm font-semibold text-ink-2 hover:bg-surface-2" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Log in"))}</button><button type="button" class="flex-1 rounded-lg bg-primary px-3 py-2.5 text-sm font-semibold text-white hover:bg-primary-600" data-v-fc31c12d>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Join"))}</button></div>`);
				else _push(`<!---->`);
				_push(`</nav></div>`);
			} else _push(`<!---->`);
			_push(`</header><main id="main" tabindex="-1" class="q-main mx-auto max-w-[var(--c-container)] px-6 py-6" data-v-fc31c12d>`);
			(0, server_renderer_exports.ssrRenderSlot)(_ctx.$slots, "default", {}, null, _push, _parent);
			if (mobileBar.value) _push(`<div class="h-16 md:hidden" aria-hidden="true" data-v-fc31c12d></div>`);
			else _push(`<!---->`);
			_push(`</main><footer class="mt-10 border-t border-line" style="${(0, server_renderer_exports.ssrRenderStyle)(hasFooter.value ? null : { display: "none" })}" data-v-fc31c12d><div class="mx-auto flex max-w-[var(--c-container)] flex-wrap items-center justify-center gap-x-5 gap-y-2 px-6 py-6 text-sm text-ink-muted" data-v-fc31c12d>`);
			_push((0, server_renderer_exports.ssrRenderComponent)(Slot_default, { name: "forum:footer" }, null, _parent));
			_push(`</div></footer>`);
			_push((0, server_renderer_exports.ssrRenderComponent)(MobileTabBar_default, null, null, _parent));
			_push((0, server_renderer_exports.ssrRenderComponent)(PullToRefresh_default, null, null, _parent));
			_push((0, server_renderer_exports.ssrRenderComponent)(PwaBanner_default, null, null, _parent));
			_push((0, server_renderer_exports.ssrRenderComponent)(AuthModal_default, null, null, _parent));
			if (isAdmin.value) _push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(ThemeEditor), null, null, _parent));
			else _push(`<!---->`);
			_push((0, server_renderer_exports.ssrRenderComponent)(Toast_default, null, null, _parent));
			_push((0, server_renderer_exports.ssrRenderComponent)(CommandPalette_default, null, null, _parent));
			_push(`</div>`);
		};
	}
});
//#endregion
//#region resources/js/Layouts/AppLayout.vue
var _sfc_setup = AppLayout_vue_vue_type_script_setup_true_lang_default.setup;
AppLayout_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
	const ssrContext = (0, vue_exports.useSSRContext)();
	(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("resources/js/Layouts/AppLayout.vue");
	return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
var AppLayout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(AppLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fc31c12d"]]);
//#endregion
export { Avatar_default as n, AppLayout_default as t };
