import { i as useForm, n as head_default, o as vue_exports, s as router } from "../ssr.js";
import { n as server_renderer_exports, t } from "./i18n-CXLOYfyq.js";
import { t as AdminLayout_default } from "./AdminLayout-BLq37u6l.js";
import { t as UploadButton_default } from "./UploadButton-Ci6PFd1I.js";
import { n as uploadImage } from "./upload-D2yiLNgi.js";
//#region resources/js/Pages/Admin/Settings.vue?vue&type=script&setup=true&lang.ts
var Settings_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue_exports.defineComponent)({
	__name: "Settings",
	__ssrInlineRender: true,
	props: {
		values: {},
		mobileNav: {},
		federation: {}
	},
	setup(__props) {
		const props = __props;
		const fed = useForm({
			enabled: props.federation.enabled,
			username: props.federation.username
		});
		const fedSaved = (0, vue_exports.ref)(false);
		function saveFederation() {
			fed.post("/admin/settings/federation", {
				preserveScroll: true,
				onSuccess: () => {
					fedSaved.value = true;
					setTimeout(() => fedSaved.value = false, 2500);
				}
			});
		}
		const TAB_LABELS = {
			home: t("Home"),
			search: t("Search"),
			compose: t("Post (compose)"),
			notifications: t("Notifications"),
			messages: t("Messages"),
			members: t("Members"),
			account: t("Account / You")
		};
		const mEnabled = (0, vue_exports.ref)(props.mobileNav.enabled);
		const mRows = (0, vue_exports.ref)([...props.mobileNav.tabs.map((k) => ({
			key: k,
			on: true
		})), ...props.mobileNav.catalog.filter((k) => !props.mobileNav.tabs.includes(k)).map((k) => ({
			key: k,
			on: false
		}))]);
		function moveRow(i, dir) {
			const j = i + dir;
			if (j < 0 || j >= mRows.value.length) return;
			const a = mRows.value.slice();
			[a[i], a[j]] = [a[j], a[i]];
			mRows.value = a;
		}
		const mobileSaving = (0, vue_exports.ref)(false);
		const mobileSaved = (0, vue_exports.ref)(false);
		function saveMobile() {
			mobileSaving.value = true;
			router.post("/admin/settings/mobile-nav", {
				enabled: mEnabled.value,
				tabs: mRows.value.filter((r) => r.on).map((r) => r.key)
			}, {
				preserveScroll: true,
				onSuccess: () => {
					mobileSaved.value = true;
					setTimeout(() => mobileSaved.value = false, 2500);
				},
				onFinish: () => {
					mobileSaving.value = false;
				}
			});
		}
		const form = useForm({
			name: props.values.name,
			tagline: props.values.tagline,
			logo: props.values.logo ?? "",
			logo_dark: props.values.logo_dark ?? "",
			favicon: props.values.favicon ?? "",
			default_view: props.values.default_view,
			realtime: props.values.realtime,
			digests: props.values.digests,
			pwa_banner: props.values.pwa_banner,
			pwa_short_name: props.values.pwa_short_name,
			fa_kit_url: props.values.fa_kit_url ?? "",
			seo_description: props.values.seo_description ?? "",
			seo_image: props.values.seo_image ?? "",
			gif_provider: props.values.gif_provider ?? "none",
			gif_key: "",
			trust_enabled: props.values.trust_enabled ?? true,
			trust_gate_new_users: props.values.trust_gate_new_users ?? true,
			reply_enabled: props.values.reply_enabled ?? false,
			reply_domain: props.values.reply_domain ?? ""
		});
		const uploadingLogo = (0, vue_exports.ref)(false);
		async function pickLogo(file) {
			uploadingLogo.value = true;
			try {
				const { url } = await uploadImage(file);
				form.logo = url;
			} catch {} finally {
				uploadingLogo.value = false;
			}
		}
		const uploadingLogoDark = (0, vue_exports.ref)(false);
		async function pickLogoDark(file) {
			uploadingLogoDark.value = true;
			try {
				const { url } = await uploadImage(file);
				form.logo_dark = url;
			} catch {} finally {
				uploadingLogoDark.value = false;
			}
		}
		const uploadingFavicon = (0, vue_exports.ref)(false);
		async function pickFavicon(file) {
			uploadingFavicon.value = true;
			try {
				const { url } = await uploadImage(file);
				form.favicon = url;
			} catch {} finally {
				uploadingFavicon.value = false;
			}
		}
		const uploadingShare = (0, vue_exports.ref)(false);
		async function pickShare(file) {
			uploadingShare.value = true;
			try {
				const { url } = await uploadImage(file);
				form.seo_image = url;
			} catch {} finally {
				uploadingShare.value = false;
			}
		}
		function save() {
			form.post("/admin/settings", { preserveScroll: true });
		}
		return (_ctx, _push, _parent, _attrs) => {
			_push(`<!--[-->`);
			_push((0, server_renderer_exports.ssrRenderComponent)((0, vue_exports.unref)(head_default), { title: (0, vue_exports.unref)(t)("Admin · Settings") }, null, _parent));
			_push((0, server_renderer_exports.ssrRenderComponent)(AdminLayout_default, null, {
				title: (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)];
				}),
				subtitle: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
					if (_push) _push(`${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("General community configuration"))}`);
					else return [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("General community configuration")), 1)];
				}),
				default: (0, vue_exports.withCtx)((_, _push, _parent, _scopeId) => {
					if (_push) {
						_push(`<form class="max-w-2xl space-y-6"${_scopeId}><div class="rounded-2xl border border-line bg-surface p-6 space-y-5"${_scopeId}><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Community name"))}</label><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(form).name)} type="text" class="mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}></div><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Tagline"))}</label><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(form).tagline)} type="text" class="mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}></div><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Logo (light mode)"))}</label><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Shown in the header on light backgrounds. Leave empty to use the default Convoro mark."))}</p><div class="mt-2 flex items-center gap-3"${_scopeId}><div class="flex h-10 items-center rounded-lg bg-white px-3 ring-1 ring-line"${_scopeId}>`);
						if ((0, vue_exports.unref)(form).logo) _push(`<img${(0, server_renderer_exports.ssrRenderAttr)("src", (0, vue_exports.unref)(form).logo)}${(0, server_renderer_exports.ssrRenderAttr)("alt", (0, vue_exports.unref)(t)("logo"))} class="h-7"${_scopeId}>`);
						else _push(`<span class="text-xs text-gray-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("No logo"))}</span>`);
						_push(`</div>`);
						_push((0, server_renderer_exports.ssrRenderComponent)(UploadButton_default, {
							uploading: uploadingLogo.value,
							accept: "image/png,image/jpeg,image/webp,image/svg+xml",
							label: (0, vue_exports.unref)(t)("Choose logo"),
							onFile: pickLogo
						}, null, _parent, _scopeId));
						if ((0, vue_exports.unref)(form).logo) _push(`<button type="button" class="text-sm text-ink-2 hover:text-red-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Remove"))}</button>`);
						else _push(`<!---->`);
						_push(`</div></div><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Logo (dark mode)"))}</label><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Optional. Shown when the theme is dark. Leave empty to use the light-mode logo in both modes."))}</p><div class="mt-2 flex items-center gap-3"${_scopeId}><div class="flex h-10 items-center rounded-lg bg-slate-900 px-3 ring-1 ring-line"${_scopeId}>`);
						if ((0, vue_exports.unref)(form).logo_dark) _push(`<img${(0, server_renderer_exports.ssrRenderAttr)("src", (0, vue_exports.unref)(form).logo_dark)}${(0, server_renderer_exports.ssrRenderAttr)("alt", (0, vue_exports.unref)(t)("logo"))} class="h-7"${_scopeId}>`);
						else _push(`<span class="text-xs text-slate-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("No dark logo"))}</span>`);
						_push(`</div>`);
						_push((0, server_renderer_exports.ssrRenderComponent)(UploadButton_default, {
							uploading: uploadingLogoDark.value,
							accept: "image/png,image/jpeg,image/webp,image/svg+xml",
							label: (0, vue_exports.unref)(t)("Choose dark logo"),
							onFile: pickLogoDark
						}, null, _parent, _scopeId));
						if ((0, vue_exports.unref)(form).logo_dark) _push(`<button type="button" class="text-sm text-ink-2 hover:text-red-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Remove"))}</button>`);
						else _push(`<!---->`);
						_push(`</div></div><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Favicon"))}</label><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("The little icon in the browser tab. A square PNG (at least 64×64) works best. Leave empty to use the default Convoro icon."))}</p><div class="mt-2 flex items-center gap-3"${_scopeId}><div class="flex h-10 w-10 items-center justify-center rounded-lg bg-surface-2"${_scopeId}>`);
						if ((0, vue_exports.unref)(form).favicon) _push(`<img${(0, server_renderer_exports.ssrRenderAttr)("src", (0, vue_exports.unref)(form).favicon)}${(0, server_renderer_exports.ssrRenderAttr)("alt", (0, vue_exports.unref)(t)("favicon"))} class="h-6 w-6 rounded"${_scopeId}>`);
						else _push(`<span class="text-[10px] text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("None"))}</span>`);
						_push(`</div>`);
						_push((0, server_renderer_exports.ssrRenderComponent)(UploadButton_default, {
							uploading: uploadingFavicon.value,
							accept: "image/png,image/x-icon,image/svg+xml,image/webp",
							label: (0, vue_exports.unref)(t)("Choose favicon"),
							onFile: pickFavicon
						}, null, _parent, _scopeId));
						if ((0, vue_exports.unref)(form).favicon) _push(`<button type="button" class="text-sm text-ink-2 hover:text-red-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Remove"))}</button>`);
						else _push(`<!---->`);
						_push(`</div></div><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Default forum view"))}</label><select class="mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}><option value="feed"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).default_view) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).default_view, "feed") : (0, server_renderer_exports.ssrLooseEqual)((0, vue_exports.unref)(form).default_view, "feed")) ? " selected" : ""}${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Feed"))}</option><option value="grid"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).default_view) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).default_view, "grid") : (0, server_renderer_exports.ssrLooseEqual)((0, vue_exports.unref)(form).default_view, "grid")) ? " selected" : ""}${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Grid"))}</option></select></div><label class="flex items-center gap-3"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).realtime) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).realtime, null) : (0, vue_exports.unref)(form).realtime) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}><span class="text-sm text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Enable live threads (realtime) — requires a WebSocket server; leave off on shared hosting"))}</span></label></div><div class="rounded-2xl border border-line bg-surface p-6 space-y-5"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Email digests"))}</h2><label class="flex items-center gap-3"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).digests) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).digests, null) : (0, vue_exports.unref)(form).digests) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}><span class="text-sm text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Send digest emails (members choose their frequency in their profile)"))}</span></label></div><div class="rounded-2xl border border-line bg-surface p-6 space-y-5"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Progressive Web App"))}</h2><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("App short name (home-screen label)"))}</label><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(form).pwa_short_name)} type="text" maxlength="30" class="mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}></div><label class="flex items-center gap-3"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).pwa_banner) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).pwa_banner, null) : (0, vue_exports.unref)(form).pwa_banner) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}><span class="text-sm text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Show the “install app” banner to visitors on supported devices"))}</span></label></div><div class="rounded-2xl border border-line bg-surface p-6 space-y-3"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Icons"))}</h2><p class="text-sm text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Convoro bundles Font Awesome Free. To use a Pro or custom"))} <a href="https://fontawesome.com/kits" target="_blank" class="text-indigo-400 underline"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Font Awesome Kit"))}</a>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)(", paste its script URL here."))}</p><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(form).fa_kit_url)} type="url" placeholder="https://kit.fontawesome.com/xxxxxxxx.js" class="w-full rounded-lg border-line bg-appbg font-mono text-sm text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}><div class="mt-2 grid gap-3 sm:grid-cols-2"${_scopeId}><div class="rounded-xl border border-line bg-appbg p-3"${_scopeId}><div class="text-xs font-semibold text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Free (always available)"))}</div><div class="mt-2 flex items-center gap-4 text-2xl text-ink"${_scopeId}><i class="fa-solid fa-star"${(0, server_renderer_exports.ssrRenderAttr)("title", (0, vue_exports.unref)(t)("solid"))}${_scopeId}></i><i class="fa-solid fa-heart"${_scopeId}></i><i class="fa-solid fa-rocket"${_scopeId}></i><i class="fa-regular fa-bell"${_scopeId}></i><i class="fa-brands fa-font-awesome"${_scopeId}></i></div></div><div class="rounded-xl border border-line bg-appbg p-3"${_scopeId}><div class="text-xs font-semibold text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Pro (only renders if your kit loads)"))}</div><div class="mt-2 flex min-h-[2rem] items-center gap-4 text-2xl text-ink"${_scopeId}><i class="fa-thin fa-star"${(0, server_renderer_exports.ssrRenderAttr)("title", (0, vue_exports.unref)(t)("thin"))}${_scopeId}></i><i class="fa-light fa-heart"${(0, server_renderer_exports.ssrRenderAttr)("title", (0, vue_exports.unref)(t)("light"))}${_scopeId}></i><i class="fa-duotone fa-rocket"${(0, server_renderer_exports.ssrRenderAttr)("title", (0, vue_exports.unref)(t)("duotone"))}${_scopeId}></i><i class="fa-sharp fa-solid fa-bell"${(0, server_renderer_exports.ssrRenderAttr)("title", (0, vue_exports.unref)(t)("sharp"))}${_scopeId}></i></div><p class="mt-2 text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("If this row is blank, your Pro kit isn’t loading."))}</p></div></div></div><div class="rounded-2xl border border-line bg-surface p-6 space-y-4"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("GIF picker"))}</h2><p class="text-sm text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Let members search and insert GIFs in the composer. Pick a provider and paste a free API key — the key stays on the server."))}</p><div class="grid gap-4 sm:grid-cols-2"${_scopeId}><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Provider"))}</label><select class="mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}><option value="none"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).gif_provider) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).gif_provider, "none") : (0, server_renderer_exports.ssrLooseEqual)((0, vue_exports.unref)(form).gif_provider, "none")) ? " selected" : ""}${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Off"))}</option><option value="tenor"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).gif_provider) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).gif_provider, "tenor") : (0, server_renderer_exports.ssrLooseEqual)((0, vue_exports.unref)(form).gif_provider, "tenor")) ? " selected" : ""}${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Tenor (Google)"))}</option><option value="giphy"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).gif_provider) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).gif_provider, "giphy") : (0, server_renderer_exports.ssrLooseEqual)((0, vue_exports.unref)(form).gif_provider, "giphy")) ? " selected" : ""}${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Giphy"))}</option></select></div>`);
						if ((0, vue_exports.unref)(form).gif_provider !== "none") {
							_push(`<div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("API key"))}</label><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(form).gif_key)} type="password" autocomplete="off"${(0, server_renderer_exports.ssrRenderAttr)("placeholder", props.values.gif_key_set ? (0, vue_exports.unref)(t)("•••••••• (leave blank to keep current)") : (0, vue_exports.unref)(t)("Paste your API key"))} class="mt-1.5 w-full rounded-lg border-line bg-appbg font-mono text-sm text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}><p class="mt-1.5 text-xs text-ink-muted"${_scopeId}>`);
							if ((0, vue_exports.unref)(form).gif_provider === "tenor") _push(`<a href="https://developers.google.com/tenor/guides/quickstart" target="_blank" class="text-indigo-400 underline"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Get a Tenor key"))}</a>`);
							else _push(`<a href="https://developers.giphy.com/dashboard/" target="_blank" class="text-indigo-400 underline"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Get a Giphy key"))}</a>`);
							_push(`</p></div>`);
						} else _push(`<!---->`);
						_push(`</div></div><div class="rounded-2xl border border-line bg-surface p-6 space-y-3"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Trust & new members"))}</h2><p class="text-sm text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Members earn trust by participating. New accounts start at “New” and become “Member” automatically; “Leader” is granted by an admin from the Members page."))}</p><label class="flex items-center gap-2 text-sm text-ink-2"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).trust_enabled) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).trust_enabled, null) : (0, vue_exports.unref)(form).trust_enabled) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}> ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Enable trust levels"))}</label><label class="${(0, server_renderer_exports.ssrRenderClass)([{ "opacity-50": !(0, vue_exports.unref)(form).trust_enabled }, "flex items-center gap-2 text-sm text-ink-2"])}"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).trust_gate_new_users) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).trust_gate_new_users, null) : (0, vue_exports.unref)(form).trust_gate_new_users) ? " checked" : ""} type="checkbox"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(!(0, vue_exports.unref)(form).trust_enabled) ? " disabled" : ""} class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}> ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Strip links & images from brand-new (New-level) accounts’ posts"))}</label></div><div class="rounded-2xl border border-line bg-surface p-6 space-y-3"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Reply by email"))}</h2><p class="text-sm text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Let members reply to a notification email to post their reply. Needs a domain whose mail your server (or an inbound-email provider) can receive."))}</p><label class="flex items-center gap-2 text-sm text-ink-2"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(form).reply_enabled) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(form).reply_enabled, null) : (0, vue_exports.unref)(form).reply_enabled) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}> ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Enable reply by email"))}</label>`);
						if ((0, vue_exports.unref)(form).reply_enabled) {
							_push(`<div class="space-y-3"${_scopeId}><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Reply domain"))}</label><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(form).reply_domain)} type="text" placeholder="convoro.co" class="mt-1.5 w-full rounded-lg border-line bg-appbg font-mono text-sm text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}><p class="mt-1.5 text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Notification emails will use a Reply-To of"))} <code class="text-ink-2"${_scopeId}>reply+&lt;token&gt;@${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(form).reply_domain || "your-domain.com")}</code></p></div>`);
							if (props.values.reply_secret) _push(`<div class="rounded-xl border border-line bg-appbg p-3 text-xs"${_scopeId}><p class="font-semibold text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Inbound setup"))}</p><p class="mt-1 text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Self-hosted: pipe reply+*@your-domain mail to"))} <code class="text-ink-2"${_scopeId}>php artisan convoro:receive-email</code></p><p class="mt-1 text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Provider webhook: POST inbound mail to"))} <code class="break-all text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)(props.values.reply_webhook)}</code> ${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("with header"))} <code class="text-ink-2"${_scopeId}>X-Convoro-Mail-Key: ${(0, server_renderer_exports.ssrInterpolate)(props.values.reply_secret)}</code></p></div>`);
							else _push(`<!---->`);
							_push(`</div>`);
						} else _push(`<!---->`);
						_push(`</div><div class="rounded-2xl border border-line bg-surface p-6 space-y-5"${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("SEO & sharing"))}</h2><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Default meta description"))}</label><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Shown in search results and link previews. Falls back to your tagline."))}</p><textarea rows="2" maxlength="300" class="mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(form).seo_description)}</textarea></div><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Social share image"))}</label><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Used for link previews (Open Graph / Twitter). 1200×630 works best. Falls back to your logo."))}</p><div class="mt-2 flex items-center gap-3"${_scopeId}><div class="flex h-14 w-24 items-center justify-center overflow-hidden rounded-lg bg-surface-2"${_scopeId}>`);
						if ((0, vue_exports.unref)(form).seo_image) _push(`<img${(0, server_renderer_exports.ssrRenderAttr)("src", (0, vue_exports.unref)(form).seo_image)}${(0, server_renderer_exports.ssrRenderAttr)("alt", (0, vue_exports.unref)(t)("share image"))} class="h-full w-full object-cover"${_scopeId}>`);
						else _push(`<span class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("None"))}</span>`);
						_push(`</div>`);
						_push((0, server_renderer_exports.ssrRenderComponent)(UploadButton_default, {
							uploading: uploadingShare.value,
							accept: "image/png,image/jpeg,image/webp",
							label: (0, vue_exports.unref)(t)("Choose image"),
							onFile: pickShare
						}, null, _parent, _scopeId));
						if ((0, vue_exports.unref)(form).seo_image) _push(`<button type="button" class="text-sm text-ink-2 hover:text-red-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Remove"))}</button>`);
						else _push(`<!---->`);
						_push(`</div></div></div><div class="flex items-center gap-3"${_scopeId}><button type="submit"${(0, server_renderer_exports.ssrIncludeBooleanAttr)((0, vue_exports.unref)(form).processing) ? " disabled" : ""} class="rounded-lg bg-indigo-500 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-600 disabled:opacity-60"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Save changes"))}</button>`);
						if ((0, vue_exports.unref)(form).recentlySuccessful) _push(`<span class="text-sm text-emerald-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Saved."))}</span>`);
						else _push(`<!---->`);
						_push(`</div></form><div class="mt-6 max-w-2xl rounded-2xl border border-line bg-surface p-6 space-y-4"${_scopeId}><div${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Mobile tab bar"))}</h2><p class="mt-1 text-sm text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("The bottom navigation bar shown on phones. Turn it on or off, choose which tabs appear, and drag the order with the arrows."))}</p></div><label class="flex items-center gap-3"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray(mEnabled.value) ? (0, server_renderer_exports.ssrLooseContain)(mEnabled.value, null) : mEnabled.value) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}><span class="text-sm text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Show the mobile tab bar"))}</span></label><ul class="${(0, server_renderer_exports.ssrRenderClass)([mEnabled.value ? "" : "pointer-events-none opacity-50", "divide-y divide-line rounded-lg border border-line"])}"${_scopeId}><!--[-->`);
						(0, server_renderer_exports.ssrRenderList)(mRows.value, (row, i) => {
							_push(`<li class="flex items-center gap-3 px-3 py-2.5"${_scopeId}><div class="flex flex-col"${_scopeId}><button type="button" class="text-ink-muted hover:text-ink disabled:opacity-30"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(i === 0) ? " disabled" : ""}${(0, server_renderer_exports.ssrRenderAttr)("aria-label", (0, vue_exports.unref)(t)("Move up"))}${_scopeId}><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"${_scopeId}><path d="M6 15l6-6 6 6"${_scopeId}></path></svg></button><button type="button" class="text-ink-muted hover:text-ink disabled:opacity-30"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(i === mRows.value.length - 1) ? " disabled" : ""}${(0, server_renderer_exports.ssrRenderAttr)("aria-label", (0, vue_exports.unref)(t)("Move down"))}${_scopeId}><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"${_scopeId}><path d="M6 9l6 6 6-6"${_scopeId}></path></svg></button></div><span class="flex-1 text-sm font-medium text-ink"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)(TAB_LABELS[row.key] || row.key)}</span><label class="relative inline-flex cursor-pointer items-center"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray(row.on) ? (0, server_renderer_exports.ssrLooseContain)(row.on, null) : row.on) ? " checked" : ""} type="checkbox" class="peer sr-only"${_scopeId}><div class="h-5 w-9 rounded-full bg-surface-2 after:absolute after:left-0.5 after:top-0.5 after:h-4 after:w-4 after:rounded-full after:bg-white after:transition-all peer-checked:bg-indigo-500 peer-checked:after:translate-x-4"${_scopeId}></div></label></li>`);
						});
						_push(`<!--]--></ul><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Tip: the “Post” tab appears as a raised button in the centre. Two or more tabs are needed for the bar to show."))}</p><div class="flex items-center gap-3"${_scopeId}><button type="button"${(0, server_renderer_exports.ssrIncludeBooleanAttr)(mobileSaving.value) ? " disabled" : ""} class="rounded-lg bg-indigo-500 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-600 disabled:opacity-60"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Save tab bar"))}</button>`);
						if (mobileSaved.value) _push(`<span class="text-sm text-emerald-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Saved."))}</span>`);
						else _push(`<!---->`);
						_push(`</div></div><div class="mt-6 max-w-2xl rounded-2xl border border-line bg-surface p-6 space-y-4"${_scopeId}><div${_scopeId}><h2 class="text-sm font-bold uppercase tracking-wide text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Federation (ActivityPub)"))}</h2><p class="mt-1 text-sm text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Let people on Mastodon, Lemmy and the wider fediverse follow your community and see each new discussion in their feed."))}</p></div><label class="flex items-center gap-3"${_scopeId}><input${(0, server_renderer_exports.ssrIncludeBooleanAttr)(Array.isArray((0, vue_exports.unref)(fed).enabled) ? (0, server_renderer_exports.ssrLooseContain)((0, vue_exports.unref)(fed).enabled, null) : (0, vue_exports.unref)(fed).enabled) ? " checked" : ""} type="checkbox" class="rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"${_scopeId}><span class="text-sm text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Enable federation"))}</span></label><div${_scopeId}><label class="block text-sm font-medium text-ink-2"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Handle username"))}</label><p class="text-xs text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("The part before the @ in your community’s fediverse address."))}</p><input${(0, server_renderer_exports.ssrRenderAttr)("value", (0, vue_exports.unref)(fed).username)} type="text" maxlength="40" placeholder="community" class="mt-1.5 w-full max-w-xs rounded-lg border-line bg-appbg font-mono text-ink focus:border-indigo-500 focus:ring-indigo-500"${_scopeId}></div><div class="flex flex-wrap items-center gap-x-6 gap-y-1 rounded-lg bg-surface-2 px-3 py-2.5 text-sm"${_scopeId}><span class="text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Your address"))}: <span class="font-mono text-ink"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(fed).username || "community")}@${(0, server_renderer_exports.ssrInterpolate)(__props.federation.handle.split("@").pop())}</span></span><span class="text-ink-muted"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("{n} follower(s)", { n: __props.federation.followers }))}</span></div>`);
						if ((0, vue_exports.unref)(fed).errors.federation) _push(`<p class="text-sm text-red-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(fed).errors.federation)}</p>`);
						else _push(`<!---->`);
						_push(`<div class="flex items-center gap-3"${_scopeId}><button type="button"${(0, server_renderer_exports.ssrIncludeBooleanAttr)((0, vue_exports.unref)(fed).processing) ? " disabled" : ""} class="rounded-lg bg-indigo-500 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-600 disabled:opacity-60"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Save federation"))}</button>`);
						if (fedSaved.value) _push(`<span class="text-sm text-emerald-400"${_scopeId}>${(0, server_renderer_exports.ssrInterpolate)((0, vue_exports.unref)(t)("Saved."))}</span>`);
						else _push(`<!---->`);
						_push(`</div></div>`);
					} else return [
						(0, vue_exports.createVNode)("form", {
							class: "max-w-2xl space-y-6",
							onSubmit: (0, vue_exports.withModifiers)(save, ["prevent"])
						}, [
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-5" }, [
								(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Community name")), 1), (0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).name = $event,
									type: "text",
									class: "mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).name]])]),
								(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Tagline")), 1), (0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).tagline = $event,
									type: "text",
									class: "mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).tagline]])]),
								(0, vue_exports.createVNode)("div", null, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Logo (light mode)")), 1),
									(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Shown in the header on light backgrounds. Leave empty to use the default Convoro mark.")), 1),
									(0, vue_exports.createVNode)("div", { class: "mt-2 flex items-center gap-3" }, [
										(0, vue_exports.createVNode)("div", { class: "flex h-10 items-center rounded-lg bg-white px-3 ring-1 ring-line" }, [(0, vue_exports.unref)(form).logo ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("img", {
											key: 0,
											src: (0, vue_exports.unref)(form).logo,
											alt: (0, vue_exports.unref)(t)("logo"),
											class: "h-7"
										}, null, 8, ["src", "alt"])) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
											key: 1,
											class: "text-xs text-gray-400"
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("No logo")), 1))]),
										(0, vue_exports.createVNode)(UploadButton_default, {
											uploading: uploadingLogo.value,
											accept: "image/png,image/jpeg,image/webp,image/svg+xml",
											label: (0, vue_exports.unref)(t)("Choose logo"),
											onFile: pickLogo
										}, null, 8, ["uploading", "label"]),
										(0, vue_exports.unref)(form).logo ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("button", {
											key: 0,
											type: "button",
											class: "text-sm text-ink-2 hover:text-red-400",
											onClick: ($event) => (0, vue_exports.unref)(form).logo = ""
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Remove")), 9, ["onClick"])) : (0, vue_exports.createCommentVNode)("", true)
									])
								]),
								(0, vue_exports.createVNode)("div", null, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Logo (dark mode)")), 1),
									(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Optional. Shown when the theme is dark. Leave empty to use the light-mode logo in both modes.")), 1),
									(0, vue_exports.createVNode)("div", { class: "mt-2 flex items-center gap-3" }, [
										(0, vue_exports.createVNode)("div", { class: "flex h-10 items-center rounded-lg bg-slate-900 px-3 ring-1 ring-line" }, [(0, vue_exports.unref)(form).logo_dark ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("img", {
											key: 0,
											src: (0, vue_exports.unref)(form).logo_dark,
											alt: (0, vue_exports.unref)(t)("logo"),
											class: "h-7"
										}, null, 8, ["src", "alt"])) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
											key: 1,
											class: "text-xs text-slate-400"
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("No dark logo")), 1))]),
										(0, vue_exports.createVNode)(UploadButton_default, {
											uploading: uploadingLogoDark.value,
											accept: "image/png,image/jpeg,image/webp,image/svg+xml",
											label: (0, vue_exports.unref)(t)("Choose dark logo"),
											onFile: pickLogoDark
										}, null, 8, ["uploading", "label"]),
										(0, vue_exports.unref)(form).logo_dark ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("button", {
											key: 0,
											type: "button",
											class: "text-sm text-ink-2 hover:text-red-400",
											onClick: ($event) => (0, vue_exports.unref)(form).logo_dark = ""
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Remove")), 9, ["onClick"])) : (0, vue_exports.createCommentVNode)("", true)
									])
								]),
								(0, vue_exports.createVNode)("div", null, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Favicon")), 1),
									(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("The little icon in the browser tab. A square PNG (at least 64×64) works best. Leave empty to use the default Convoro icon.")), 1),
									(0, vue_exports.createVNode)("div", { class: "mt-2 flex items-center gap-3" }, [
										(0, vue_exports.createVNode)("div", { class: "flex h-10 w-10 items-center justify-center rounded-lg bg-surface-2" }, [(0, vue_exports.unref)(form).favicon ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("img", {
											key: 0,
											src: (0, vue_exports.unref)(form).favicon,
											alt: (0, vue_exports.unref)(t)("favicon"),
											class: "h-6 w-6 rounded"
										}, null, 8, ["src", "alt"])) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
											key: 1,
											class: "text-[10px] text-ink-muted"
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("None")), 1))]),
										(0, vue_exports.createVNode)(UploadButton_default, {
											uploading: uploadingFavicon.value,
											accept: "image/png,image/x-icon,image/svg+xml,image/webp",
											label: (0, vue_exports.unref)(t)("Choose favicon"),
											onFile: pickFavicon
										}, null, 8, ["uploading", "label"]),
										(0, vue_exports.unref)(form).favicon ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("button", {
											key: 0,
											type: "button",
											class: "text-sm text-ink-2 hover:text-red-400",
											onClick: ($event) => (0, vue_exports.unref)(form).favicon = ""
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Remove")), 9, ["onClick"])) : (0, vue_exports.createCommentVNode)("", true)
									])
								]),
								(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Default forum view")), 1), (0, vue_exports.withDirectives)((0, vue_exports.createVNode)("select", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).default_view = $event,
									class: "mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, [(0, vue_exports.createVNode)("option", { value: "feed" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Feed")), 1), (0, vue_exports.createVNode)("option", { value: "grid" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Grid")), 1)], 8, ["onUpdate:modelValue"]), [[vue_exports.vModelSelect, (0, vue_exports.unref)(form).default_view]])]),
								(0, vue_exports.createVNode)("label", { class: "flex items-center gap-3" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).realtime = $event,
									type: "checkbox",
									class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(form).realtime]]), (0, vue_exports.createVNode)("span", { class: "text-sm text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Enable live threads (realtime) — requires a WebSocket server; leave off on shared hosting")), 1)])
							]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-5" }, [(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Email digests")), 1), (0, vue_exports.createVNode)("label", { class: "flex items-center gap-3" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
								"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).digests = $event,
								type: "checkbox",
								class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
							}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(form).digests]]), (0, vue_exports.createVNode)("span", { class: "text-sm text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Send digest emails (members choose their frequency in their profile)")), 1)])]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-5" }, [
								(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Progressive Web App")), 1),
								(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("App short name (home-screen label)")), 1), (0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).pwa_short_name = $event,
									type: "text",
									maxlength: "30",
									class: "mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).pwa_short_name]])]),
								(0, vue_exports.createVNode)("label", { class: "flex items-center gap-3" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).pwa_banner = $event,
									type: "checkbox",
									class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(form).pwa_banner]]), (0, vue_exports.createVNode)("span", { class: "text-sm text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Show the “install app” banner to visitors on supported devices")), 1)])
							]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-3" }, [
								(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Icons")), 1),
								(0, vue_exports.createVNode)("p", { class: "text-sm text-ink-muted" }, [
									(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Convoro bundles Font Awesome Free. To use a Pro or custom")) + " ", 1),
									(0, vue_exports.createVNode)("a", {
										href: "https://fontawesome.com/kits",
										target: "_blank",
										class: "text-indigo-400 underline"
									}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Font Awesome Kit")), 1),
									(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)(", paste its script URL here.")), 1)
								]),
								(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).fa_kit_url = $event,
									type: "url",
									placeholder: "https://kit.fontawesome.com/xxxxxxxx.js",
									class: "w-full rounded-lg border-line bg-appbg font-mono text-sm text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).fa_kit_url]]),
								(0, vue_exports.createVNode)("div", { class: "mt-2 grid gap-3 sm:grid-cols-2" }, [(0, vue_exports.createVNode)("div", { class: "rounded-xl border border-line bg-appbg p-3" }, [(0, vue_exports.createVNode)("div", { class: "text-xs font-semibold text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Free (always available)")), 1), (0, vue_exports.createVNode)("div", { class: "mt-2 flex items-center gap-4 text-2xl text-ink" }, [
									(0, vue_exports.createVNode)("i", {
										class: "fa-solid fa-star",
										title: (0, vue_exports.unref)(t)("solid")
									}, null, 8, ["title"]),
									(0, vue_exports.createVNode)("i", { class: "fa-solid fa-heart" }),
									(0, vue_exports.createVNode)("i", { class: "fa-solid fa-rocket" }),
									(0, vue_exports.createVNode)("i", { class: "fa-regular fa-bell" }),
									(0, vue_exports.createVNode)("i", { class: "fa-brands fa-font-awesome" })
								])]), (0, vue_exports.createVNode)("div", { class: "rounded-xl border border-line bg-appbg p-3" }, [
									(0, vue_exports.createVNode)("div", { class: "text-xs font-semibold text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Pro (only renders if your kit loads)")), 1),
									(0, vue_exports.createVNode)("div", { class: "mt-2 flex min-h-[2rem] items-center gap-4 text-2xl text-ink" }, [
										(0, vue_exports.createVNode)("i", {
											class: "fa-thin fa-star",
											title: (0, vue_exports.unref)(t)("thin")
										}, null, 8, ["title"]),
										(0, vue_exports.createVNode)("i", {
											class: "fa-light fa-heart",
											title: (0, vue_exports.unref)(t)("light")
										}, null, 8, ["title"]),
										(0, vue_exports.createVNode)("i", {
											class: "fa-duotone fa-rocket",
											title: (0, vue_exports.unref)(t)("duotone")
										}, null, 8, ["title"]),
										(0, vue_exports.createVNode)("i", {
											class: "fa-sharp fa-solid fa-bell",
											title: (0, vue_exports.unref)(t)("sharp")
										}, null, 8, ["title"])
									]),
									(0, vue_exports.createVNode)("p", { class: "mt-2 text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("If this row is blank, your Pro kit isn’t loading.")), 1)
								])])
							]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-4" }, [
								(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("GIF picker")), 1),
								(0, vue_exports.createVNode)("p", { class: "text-sm text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Let members search and insert GIFs in the composer. Pick a provider and paste a free API key — the key stays on the server.")), 1),
								(0, vue_exports.createVNode)("div", { class: "grid gap-4 sm:grid-cols-2" }, [(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Provider")), 1), (0, vue_exports.withDirectives)((0, vue_exports.createVNode)("select", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).gif_provider = $event,
									class: "mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, [
									(0, vue_exports.createVNode)("option", { value: "none" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Off")), 1),
									(0, vue_exports.createVNode)("option", { value: "tenor" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Tenor (Google)")), 1),
									(0, vue_exports.createVNode)("option", { value: "giphy" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Giphy")), 1)
								], 8, ["onUpdate:modelValue"]), [[vue_exports.vModelSelect, (0, vue_exports.unref)(form).gif_provider]])]), (0, vue_exports.unref)(form).gif_provider !== "none" ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("div", { key: 0 }, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("API key")), 1),
									(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
										"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).gif_key = $event,
										type: "password",
										autocomplete: "off",
										placeholder: props.values.gif_key_set ? (0, vue_exports.unref)(t)("•••••••• (leave blank to keep current)") : (0, vue_exports.unref)(t)("Paste your API key"),
										class: "mt-1.5 w-full rounded-lg border-line bg-appbg font-mono text-sm text-ink focus:border-indigo-500 focus:ring-indigo-500"
									}, null, 8, ["onUpdate:modelValue", "placeholder"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).gif_key]]),
									(0, vue_exports.createVNode)("p", { class: "mt-1.5 text-xs text-ink-muted" }, [(0, vue_exports.unref)(form).gif_provider === "tenor" ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("a", {
										key: 0,
										href: "https://developers.google.com/tenor/guides/quickstart",
										target: "_blank",
										class: "text-indigo-400 underline"
									}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Get a Tenor key")), 1)) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("a", {
										key: 1,
										href: "https://developers.giphy.com/dashboard/",
										target: "_blank",
										class: "text-indigo-400 underline"
									}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Get a Giphy key")), 1))])
								])) : (0, vue_exports.createCommentVNode)("", true)])
							]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-3" }, [
								(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Trust & new members")), 1),
								(0, vue_exports.createVNode)("p", { class: "text-sm text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Members earn trust by participating. New accounts start at “New” and become “Member” automatically; “Leader” is granted by an admin from the Members page.")), 1),
								(0, vue_exports.createVNode)("label", { class: "flex items-center gap-2 text-sm text-ink-2" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).trust_enabled = $event,
									type: "checkbox",
									class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(form).trust_enabled]]), (0, vue_exports.createTextVNode)(" " + (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Enable trust levels")), 1)]),
								(0, vue_exports.createVNode)("label", { class: ["flex items-center gap-2 text-sm text-ink-2", { "opacity-50": !(0, vue_exports.unref)(form).trust_enabled }] }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).trust_gate_new_users = $event,
									type: "checkbox",
									disabled: !(0, vue_exports.unref)(form).trust_enabled,
									class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue", "disabled"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(form).trust_gate_new_users]]), (0, vue_exports.createTextVNode)(" " + (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Strip links & images from brand-new (New-level) accounts’ posts")), 1)], 2)
							]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-3" }, [
								(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Reply by email")), 1),
								(0, vue_exports.createVNode)("p", { class: "text-sm text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Let members reply to a notification email to post their reply. Needs a domain whose mail your server (or an inbound-email provider) can receive.")), 1),
								(0, vue_exports.createVNode)("label", { class: "flex items-center gap-2 text-sm text-ink-2" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).reply_enabled = $event,
									type: "checkbox",
									class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(form).reply_enabled]]), (0, vue_exports.createTextVNode)(" " + (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Enable reply by email")), 1)]),
								(0, vue_exports.unref)(form).reply_enabled ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("div", {
									key: 0,
									class: "space-y-3"
								}, [(0, vue_exports.createVNode)("div", null, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Reply domain")), 1),
									(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
										"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).reply_domain = $event,
										type: "text",
										placeholder: "convoro.co",
										class: "mt-1.5 w-full rounded-lg border-line bg-appbg font-mono text-sm text-ink focus:border-indigo-500 focus:ring-indigo-500"
									}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).reply_domain]]),
									(0, vue_exports.createVNode)("p", { class: "mt-1.5 text-xs text-ink-muted" }, [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Notification emails will use a Reply-To of")) + " ", 1), (0, vue_exports.createVNode)("code", { class: "text-ink-2" }, "reply+<token>@" + (0, vue_exports.toDisplayString)((0, vue_exports.unref)(form).reply_domain || "your-domain.com"), 1)])
								]), props.values.reply_secret ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("div", {
									key: 0,
									class: "rounded-xl border border-line bg-appbg p-3 text-xs"
								}, [
									(0, vue_exports.createVNode)("p", { class: "font-semibold text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Inbound setup")), 1),
									(0, vue_exports.createVNode)("p", { class: "mt-1 text-ink-muted" }, [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Self-hosted: pipe reply+*@your-domain mail to")) + " ", 1), (0, vue_exports.createVNode)("code", { class: "text-ink-2" }, "php artisan convoro:receive-email")]),
									(0, vue_exports.createVNode)("p", { class: "mt-1 text-ink-muted" }, [
										(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Provider webhook: POST inbound mail to")) + " ", 1),
										(0, vue_exports.createVNode)("code", { class: "break-all text-ink-2" }, (0, vue_exports.toDisplayString)(props.values.reply_webhook), 1),
										(0, vue_exports.createTextVNode)(" " + (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("with header")) + " ", 1),
										(0, vue_exports.createVNode)("code", { class: "text-ink-2" }, "X-Convoro-Mail-Key: " + (0, vue_exports.toDisplayString)(props.values.reply_secret), 1)
									])
								])) : (0, vue_exports.createCommentVNode)("", true)])) : (0, vue_exports.createCommentVNode)("", true)
							]),
							(0, vue_exports.createVNode)("div", { class: "rounded-2xl border border-line bg-surface p-6 space-y-5" }, [
								(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("SEO & sharing")), 1),
								(0, vue_exports.createVNode)("div", null, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Default meta description")), 1),
									(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Shown in search results and link previews. Falls back to your tagline.")), 1),
									(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("textarea", {
										"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(form).seo_description = $event,
										rows: "2",
										maxlength: "300",
										class: "mt-1.5 w-full rounded-lg border-line bg-appbg text-ink focus:border-indigo-500 focus:ring-indigo-500"
									}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(form).seo_description]])
								]),
								(0, vue_exports.createVNode)("div", null, [
									(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Social share image")), 1),
									(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Used for link previews (Open Graph / Twitter). 1200×630 works best. Falls back to your logo.")), 1),
									(0, vue_exports.createVNode)("div", { class: "mt-2 flex items-center gap-3" }, [
										(0, vue_exports.createVNode)("div", { class: "flex h-14 w-24 items-center justify-center overflow-hidden rounded-lg bg-surface-2" }, [(0, vue_exports.unref)(form).seo_image ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("img", {
											key: 0,
											src: (0, vue_exports.unref)(form).seo_image,
											alt: (0, vue_exports.unref)(t)("share image"),
											class: "h-full w-full object-cover"
										}, null, 8, ["src", "alt"])) : ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
											key: 1,
											class: "text-xs text-ink-muted"
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("None")), 1))]),
										(0, vue_exports.createVNode)(UploadButton_default, {
											uploading: uploadingShare.value,
											accept: "image/png,image/jpeg,image/webp",
											label: (0, vue_exports.unref)(t)("Choose image"),
											onFile: pickShare
										}, null, 8, ["uploading", "label"]),
										(0, vue_exports.unref)(form).seo_image ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("button", {
											key: 0,
											type: "button",
											class: "text-sm text-ink-2 hover:text-red-400",
											onClick: ($event) => (0, vue_exports.unref)(form).seo_image = ""
										}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Remove")), 9, ["onClick"])) : (0, vue_exports.createCommentVNode)("", true)
									])
								])
							]),
							(0, vue_exports.createVNode)("div", { class: "flex items-center gap-3" }, [(0, vue_exports.createVNode)("button", {
								type: "submit",
								disabled: (0, vue_exports.unref)(form).processing,
								class: "rounded-lg bg-indigo-500 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-600 disabled:opacity-60"
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Save changes")), 9, ["disabled"]), (0, vue_exports.unref)(form).recentlySuccessful ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
								key: 0,
								class: "text-sm text-emerald-400"
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Saved.")), 1)) : (0, vue_exports.createCommentVNode)("", true)])
						], 32),
						(0, vue_exports.createVNode)("div", { class: "mt-6 max-w-2xl rounded-2xl border border-line bg-surface p-6 space-y-4" }, [
							(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Mobile tab bar")), 1), (0, vue_exports.createVNode)("p", { class: "mt-1 text-sm text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("The bottom navigation bar shown on phones. Turn it on or off, choose which tabs appear, and drag the order with the arrows.")), 1)]),
							(0, vue_exports.createVNode)("label", { class: "flex items-center gap-3" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
								"onUpdate:modelValue": ($event) => mEnabled.value = $event,
								type: "checkbox",
								class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
							}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, mEnabled.value]]), (0, vue_exports.createVNode)("span", { class: "text-sm text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Show the mobile tab bar")), 1)]),
							(0, vue_exports.createVNode)("ul", { class: ["divide-y divide-line rounded-lg border border-line", mEnabled.value ? "" : "pointer-events-none opacity-50"] }, [((0, vue_exports.openBlock)(true), (0, vue_exports.createBlock)(vue_exports.Fragment, null, (0, vue_exports.renderList)(mRows.value, (row, i) => {
								return (0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("li", {
									key: row.key,
									class: "flex items-center gap-3 px-3 py-2.5"
								}, [
									(0, vue_exports.createVNode)("div", { class: "flex flex-col" }, [(0, vue_exports.createVNode)("button", {
										type: "button",
										class: "text-ink-muted hover:text-ink disabled:opacity-30",
										disabled: i === 0,
										"aria-label": (0, vue_exports.unref)(t)("Move up"),
										onClick: ($event) => moveRow(i, -1)
									}, [((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("svg", {
										width: "14",
										height: "14",
										viewBox: "0 0 24 24",
										fill: "none",
										stroke: "currentColor",
										"stroke-width": "2.5"
									}, [(0, vue_exports.createVNode)("path", { d: "M6 15l6-6 6 6" })]))], 8, [
										"disabled",
										"aria-label",
										"onClick"
									]), (0, vue_exports.createVNode)("button", {
										type: "button",
										class: "text-ink-muted hover:text-ink disabled:opacity-30",
										disabled: i === mRows.value.length - 1,
										"aria-label": (0, vue_exports.unref)(t)("Move down"),
										onClick: ($event) => moveRow(i, 1)
									}, [((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("svg", {
										width: "14",
										height: "14",
										viewBox: "0 0 24 24",
										fill: "none",
										stroke: "currentColor",
										"stroke-width": "2.5"
									}, [(0, vue_exports.createVNode)("path", { d: "M6 9l6 6 6-6" })]))], 8, [
										"disabled",
										"aria-label",
										"onClick"
									])]),
									(0, vue_exports.createVNode)("span", { class: "flex-1 text-sm font-medium text-ink" }, (0, vue_exports.toDisplayString)(TAB_LABELS[row.key] || row.key), 1),
									(0, vue_exports.createVNode)("label", { class: "relative inline-flex cursor-pointer items-center" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
										"onUpdate:modelValue": ($event) => row.on = $event,
										type: "checkbox",
										class: "peer sr-only"
									}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, row.on]]), (0, vue_exports.createVNode)("div", { class: "h-5 w-9 rounded-full bg-surface-2 after:absolute after:left-0.5 after:top-0.5 after:h-4 after:w-4 after:rounded-full after:bg-white after:transition-all peer-checked:bg-indigo-500 peer-checked:after:translate-x-4" })])
								]);
							}), 128))], 2),
							(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Tip: the “Post” tab appears as a raised button in the centre. Two or more tabs are needed for the bar to show.")), 1),
							(0, vue_exports.createVNode)("div", { class: "flex items-center gap-3" }, [(0, vue_exports.createVNode)("button", {
								type: "button",
								disabled: mobileSaving.value,
								class: "rounded-lg bg-indigo-500 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-600 disabled:opacity-60",
								onClick: saveMobile
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Save tab bar")), 9, ["disabled"]), mobileSaved.value ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
								key: 0,
								class: "text-sm text-emerald-400"
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Saved.")), 1)) : (0, vue_exports.createCommentVNode)("", true)])
						]),
						(0, vue_exports.createVNode)("div", { class: "mt-6 max-w-2xl rounded-2xl border border-line bg-surface p-6 space-y-4" }, [
							(0, vue_exports.createVNode)("div", null, [(0, vue_exports.createVNode)("h2", { class: "text-sm font-bold uppercase tracking-wide text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Federation (ActivityPub)")), 1), (0, vue_exports.createVNode)("p", { class: "mt-1 text-sm text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Let people on Mastodon, Lemmy and the wider fediverse follow your community and see each new discussion in their feed.")), 1)]),
							(0, vue_exports.createVNode)("label", { class: "flex items-center gap-3" }, [(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
								"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(fed).enabled = $event,
								type: "checkbox",
								class: "rounded border-line bg-appbg text-indigo-500 focus:ring-indigo-500"
							}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelCheckbox, (0, vue_exports.unref)(fed).enabled]]), (0, vue_exports.createVNode)("span", { class: "text-sm text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Enable federation")), 1)]),
							(0, vue_exports.createVNode)("div", null, [
								(0, vue_exports.createVNode)("label", { class: "block text-sm font-medium text-ink-2" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Handle username")), 1),
								(0, vue_exports.createVNode)("p", { class: "text-xs text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("The part before the @ in your community’s fediverse address.")), 1),
								(0, vue_exports.withDirectives)((0, vue_exports.createVNode)("input", {
									"onUpdate:modelValue": ($event) => (0, vue_exports.unref)(fed).username = $event,
									type: "text",
									maxlength: "40",
									placeholder: "community",
									class: "mt-1.5 w-full max-w-xs rounded-lg border-line bg-appbg font-mono text-ink focus:border-indigo-500 focus:ring-indigo-500"
								}, null, 8, ["onUpdate:modelValue"]), [[vue_exports.vModelText, (0, vue_exports.unref)(fed).username]])
							]),
							(0, vue_exports.createVNode)("div", { class: "flex flex-wrap items-center gap-x-6 gap-y-1 rounded-lg bg-surface-2 px-3 py-2.5 text-sm" }, [(0, vue_exports.createVNode)("span", { class: "text-ink-muted" }, [(0, vue_exports.createTextVNode)((0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Your address")) + ": ", 1), (0, vue_exports.createVNode)("span", { class: "font-mono text-ink" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(fed).username || "community") + "@" + (0, vue_exports.toDisplayString)(__props.federation.handle.split("@").pop()), 1)]), (0, vue_exports.createVNode)("span", { class: "text-ink-muted" }, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("{n} follower(s)", { n: __props.federation.followers })), 1)]),
							(0, vue_exports.unref)(fed).errors.federation ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("p", {
								key: 0,
								class: "text-sm text-red-400"
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(fed).errors.federation), 1)) : (0, vue_exports.createCommentVNode)("", true),
							(0, vue_exports.createVNode)("div", { class: "flex items-center gap-3" }, [(0, vue_exports.createVNode)("button", {
								type: "button",
								disabled: (0, vue_exports.unref)(fed).processing,
								class: "rounded-lg bg-indigo-500 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-600 disabled:opacity-60",
								onClick: saveFederation
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Save federation")), 9, ["disabled"]), fedSaved.value ? ((0, vue_exports.openBlock)(), (0, vue_exports.createBlock)("span", {
								key: 0,
								class: "text-sm text-emerald-400"
							}, (0, vue_exports.toDisplayString)((0, vue_exports.unref)(t)("Saved.")), 1)) : (0, vue_exports.createCommentVNode)("", true)])
						])
					];
				}),
				_: 1
			}, _parent));
			_push(`<!--]-->`);
		};
	}
});
//#endregion
//#region resources/js/Pages/Admin/Settings.vue
var _sfc_setup = Settings_vue_vue_type_script_setup_true_lang_default.setup;
Settings_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/Pages/Admin/Settings.vue");
	return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
var Settings_default = Settings_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { Settings_default as default };
