/* ============================================================ Enarge — フリーソフト公開ページ(一覧 / 詳細) Exposes window.SoftwarePage / window.PassPourPage ============================================================ */ const GITHUB_USER = "enahay-bit"; const SOFTWARE = [ { slug: "passpour", name: "PassPour", kana: "パスポア", tagline: "Tab キー自動入力に対応したパスワード管理ツール", summary: "ID とパスワードを登録しておき、ログイン画面へ Tab キーの動きに合わせて自動入力します。ローカル保存・クラウド不要。", os: "Windows 10 / 11(64bit)", runtime: ".NET 8 ランタイム", lang: "C#", version: "準備中", status: "coming", repo: "PassPour", features: [ ["Tab 自動入力", "ID → Tab → パスワード → Enter の入力順を登録でき、対象ウィンドウへそのまま送出します。"], ["ローカル保存", "登録情報は暗号化して端末内にのみ保存。外部サーバへは送信しません。"], ["常駐・呼び出し", "タスクトレイに常駐し、ホットキーで呼び出して即入力できます。"], ["インストール不要", "実行ファイルを置くだけで動作。レジストリを汚しません。"] ] } ]; const LICENSE_TEXT = [ "本ソフトウェアは無償で自由にご利用いただけます。個人・商用を問わず、複製・再配布も制限しません。", "本ソフトウェアの使用により生じたいかなる損害についても、作者は責任を負いません。", "個別のサポート・お問い合わせ対応は行っておりません。" ]; function SW_Badge({ children, tone }) { const tones = { coming: { bg: "rgba(224,164,75,0.14)", fg: "var(--amber)", bd: "rgba(224,164,75,0.35)" }, live: { bg: "rgba(127,176,121,0.14)", fg: "#8fc188", bd: "rgba(127,176,121,0.35)" } }; const t = tones[tone] || tones.live; return ( {children} ); } /* ---------- 一覧ページ ---------- */ function SoftwarePage({ onLogin }) { const login = onLogin || (() => {}); return (
業務のなかで必要になり、自分たちで作ったツールを無償で公開しています。すべて自由にお使いいただけます。
{s.tagline}
{d}
{t}
))}