// 関数エリア

// 無改造の policy.ts から Babel が抽出したデータを安全に吸い上げます
const pJA = (window.exports && window.exports.termsJA) || "";
const pEN = (window.exports && window.exports.termsEN) || "";

function renderMarkdown(md) {
	// アプリ同様に各行を分割し、事前にトリム処理を施す
	const lines = md.split("\n").map((line) => line.trim());
	const elements = [];
	let key = 0;

	// URLを抽出するための正規表現
	const urlRegex = /(https?:\/\/[^\s]+)/g;

	// 行内テキストのURLをリンク（<a>タグ）に置換する補助関数
	const linkify = (text) => {
		if (!urlRegex.test(text)) return text;

		const parts = text.split(urlRegex);
		return parts.map((part, index) => {
			if (part.match(urlRegex)) {
				return React.createElement(
					"a",
					{
						key: index,
						href: part,
						target: "_blank",
						rel: "noopener noreferrer",
						className: "site-link",
					},
					part,
				);
			}
			return part;
		});
	};

	for (let i = 0; i < lines.length; i++) {
		const line = lines[i];

		// 空行は文章の区切り（マージン）として扱う（アプリと同様のスキップ処理）
		if (!line) {
			continue;
		}

		// 1. 冒頭 # ：site-h2
		if (line.startsWith("# ")) {
			const cleanText = line.replace("# ", "");
			elements.push(
				React.createElement(
					"h2",
					{ key: key++, className: "site-heading2" },
					linkify(cleanText),
				),
			);
			continue;
		}

		// 2. 冒頭 ## ：site-h3
		if (line.startsWith("## ")) {
			const cleanText = line.replace("## ", "");
			elements.push(
				React.createElement(
					"h3",
					{ key: key++, className: "site-heading3" },
					linkify(cleanText),
				),
			);
			continue;
		}

		// 3. 冒頭 - ：site-list-item
		if (line.startsWith("- ")) {
			const cleanText = line.replace("- ", "");
			elements.push(
				React.createElement(
					"p",
					{ key: key++, className: "site-item" },
					linkify(cleanText),
				),
			);
			continue;
		}

		// 4. 冒頭 * ：site-note (アプリ側の SSMarkdownNote に同期)
		if (line.startsWith("* ")) {
			const cleanText = line.replace("* ", "");
			elements.push(
				React.createElement(
					"p",
					{ key: key++, className: "site-paragraph site-note" },
					linkify(cleanText),
				),
			);
			continue;
		}

		// 5. 冒頭 © ：site-copyright (アプリ側の SSMarkdownCopyright に同期)
		if (line.startsWith("© ")) {
			const cleanText = line.replace("© ", "© ");
			elements.push(
				React.createElement(
					"p",
					{ key: key++, className: "site-paragraph site-copyright" },
					linkify(cleanText),
				),
			);
			continue;
		}

		// 6. **で囲まれた行 ：site-strong
		if (line.startsWith("**") && line.endsWith("**")) {
			const cleanText = line.replaceAll("**", "");
			elements.push(
				React.createElement(
					"p",
					{ key: key++, className: "site-paragraph site-strong" },
					linkify(cleanText),
				),
			);
			continue;
		}

		// 7. 行の冒頭に何もなければ ：site-paragraph (インライン ** を消去)
		const processedLine = line.replaceAll("**", "");
		elements.push(
			React.createElement(
				"p",
				{ key: key++, className: "site-paragraph" },
				linkify(processedLine),
			),
		);
	}

	return elements;
}

function App() {
	const { t, lang, loading } = useTranslation();

	return React.createElement(
		"div",
		{ "data-theme-transition": true },
		// 背景
		React.createElement(MainAnime, null),
		// ヘッダー
		React.createElement(
			"header",
			{ className: "site-header" },
			React.createElement(
				"div",
				{ className: "site-header-right" },
				React.createElement(LanguageSwitcher, null),
				React.createElement(ThemeToggle, null),
			),
		),
		// ロゴ
		React.createElement(
			"section",
			{ className: "site-section" },
			React.createElement("h1", { className: "site-header-logo" }),
			React.createElement(
				"h2",
				{ className: "site-subtitle" },
				t("title"),
				React.createElement(
					"small",
					{ className: "site-name-call" },
					t("titleCall"),
				),
				t("subtitle"),
			),
			React.createElement("p", { className: "site-lede" }, t("lede")),
		),
		// メイン
		React.createElement(
			"main",
			{ className: "site-main" },
			// コンセプト
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("conceptTitle"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph _textAlignCenter" },
					t("conceptLede"),
				),
				React.createElement(
					"h3",
					{ className: "site-heading3" },
					t("concept1"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("concept1Text"),
				),
				React.createElement(
					"h3",
					{ className: "site-heading3" },
					t("concept2"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("concept2Text"),
				),
				React.createElement(
					"h3",
					{ className: "site-heading3" },
					t("concept3"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("concept3Text"),
				),
			),
			// 機能説明
			React.createElement("hr", null),
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("featuresTitle"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph _textAlignCenter" },
					t("featuresLede"),
				),
				React.createElement(
					"h3",
					{ className: "site-heading3" },
					t("features1"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("features1Text"),
				),
				React.createElement(
					"h3",
					{ className: "site-heading3" },
					t("features2"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("features2Text"),
				),
				React.createElement(
					"h3",
					{ className: "site-heading3" },
					t("features3"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("features3Text"),
				),
			),
			// 応援
			React.createElement("hr", null),
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("donateTitle"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("donateLede"),
				),
				React.createElement(
					"div",
					{ className: "site-donate" },
					React.createElement(
						"p",
						{ className: "site-donate-address" },
						"DXL Labs. XRP Ledger Address",
					),
					React.createElement("img", {
						src: "/assets/images/qr.png",
						alt: "DXL Labs XRPL Address QR Code",
						className: "site-donate-qr",
					}),
					React.createElement(
						"p",
						{ className: "site-donate-address" },
						"rDXLLSuey3fCwtsp3aMJQjzu2LRrWpbCuT",
					),
				),
			),
			// 利用規約
			React.createElement("hr", null),
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("termsTitle"),
				),
				React.createElement(
					"div",
					{ className: "site-terms" },
					...renderMarkdown(lang === "ja" ? termsJA : termsEN),
				),
			),
			// 組織情報
			React.createElement("hr", null),
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("orginfoTitle"),
				),
				React.createElement(
					"p",
					{ className: "site-paragraph" },
					t("orginfoText"),
				),
			),
			// プライバシーポリシー
			React.createElement("hr", null),
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("policyTitle"),
				),
				React.createElement(
					"div",
					{ className: "site-button-wrap" },
					React.createElement(
						"a",
						{
							href: "https://dxl-labs.dev#privacy",
							target: "_blank",
							rel: "noopener noreferrer",
							className: "site-button",
						},
						t("policyText"),
					),
				),
			),
			// お問い合わせ
			React.createElement("hr", null),
			React.createElement(
				"section",
				{ className: "site-section" },
				React.createElement(
					"h2",
					{ className: "site-heading2" },
					t("contactTitle"),
				),
				React.createElement(
					"h2",
					{ className: "site-paragraph" },
					t("contactLede"),
				),
				React.createElement(
					"div",
					{ className: "site-button-wrap" },
					React.createElement(
						"a",
						{
							href: "https://forms.gle/1ck2KGJg7jFBWpGx9",
							target: "_blank",
							rel: "noopener noreferrer",
							className: "site-button",
						},
						t("contactForm"),
					),
				),
			),
		),
		// フッター
		React.createElement(
			"footer",
			{ className: "site-footer" },
			React.createElement("p", { className: "site-copyright" }, t("copyright")),
		),
	);
}
