@imenam/mcp-messenger 1.0.10 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,46 +9,111 @@
9
9
  <body>
10
10
  <header class="topbar">
11
11
  <div class="brand">
12
- <span class="dot" id="status-dot"></span>
12
+ <svg class="brand-mark" viewBox="0 0 24 24" aria-hidden="true">
13
+ <path d="M22 12h-6l-2 3h-4l-2-3H2" />
14
+ <path d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" />
15
+ </svg>
13
16
  <h1>MCP Messenger</h1>
14
- <span class="muted" id="server-stats">chargement…</span>
17
+ <span class="pill pill--idle" id="status">
18
+ <span class="pill-dot"></span>
19
+ <span id="status-label">connexion…</span>
20
+ </span>
15
21
  </div>
16
- <div class="controls">
17
- <label class="auto">
22
+
23
+ <div class="topbar-search" id="search-box">
24
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">
25
+ <circle cx="11" cy="11" r="8" />
26
+ <path d="m21 21-4.3-4.3" />
27
+ </svg>
28
+ <input type="search" id="search" placeholder="Rechercher un sujet, un fil, un agent…" />
29
+ </div>
30
+
31
+ <div class="topbar-controls" id="controls" hidden>
32
+ <label class="switch">
18
33
  <input type="checkbox" id="auto-refresh" checked />
19
- rafraîchissement auto
34
+ <span class="switch-track"><span class="switch-knob"></span></span>
35
+ <span class="switch-label">auto · 5 s</span>
20
36
  </label>
21
- <button id="refresh">Rafraîchir</button>
22
- <button id="logout" hidden>Se déconnecter</button>
37
+ <button type="button" id="refresh" class="btn btn--icon" title="Rafraîchir" aria-label="Rafraîchir">
38
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">
39
+ <path d="M3 12a9 9 0 0 1 15-6.7L21 8" />
40
+ <path d="M21 3v5h-5" />
41
+ <path d="M21 12a9 9 0 0 1-15 6.7L3 16" />
42
+ <path d="M3 21v-5h5" />
43
+ </svg>
44
+ </button>
45
+ <button type="button" id="logout" class="btn btn--link">Se déconnecter</button>
23
46
  </div>
24
47
  </header>
25
48
 
26
- <form id="login-form" class="token-bar" hidden>
27
- <label for="token">Jeton d'accès requis</label>
28
- <input type="password" id="token" autocomplete="current-password" placeholder="MESSENGER_ADMIN_TOKEN" />
29
- <button type="submit">Se connecter</button>
30
- <span class="error" id="token-error"></span>
31
- </form>
32
-
33
- <main>
34
- <aside class="panel agents">
35
- <h2>Agents</h2>
36
- <ul id="agents"></ul>
49
+ <!-- Écran de connexion : une carte seule, sans les panneaux vides derrière elle. -->
50
+ <main class="login" id="login" hidden>
51
+ <form class="card" id="login-form">
52
+ <div class="card-badge">
53
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">
54
+ <rect x="3" y="11" width="18" height="11" rx="2" />
55
+ <path d="M7 11V7a5 5 0 0 1 10 0v4" />
56
+ </svg>
57
+ </div>
58
+ <h2>Console de supervision</h2>
59
+ <p class="card-sub" id="login-origin">MCP Messenger</p>
60
+
61
+ <label class="field">
62
+ <span class="field-label">Jeton administrateur</span>
63
+ <span class="field-input">
64
+ <input type="password" id="token" autocomplete="current-password" placeholder="MESSENGER_ADMIN_TOKEN" />
65
+ <button type="button" class="field-eye" id="token-reveal" aria-label="Afficher le jeton">
66
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">
67
+ <path d="M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z" />
68
+ <circle cx="12" cy="12" r="3" />
69
+ </svg>
70
+ </button>
71
+ </span>
72
+ <span class="field-error" id="token-error"></span>
73
+ </label>
74
+
75
+ <button type="submit" class="btn btn--primary btn--block">Se connecter</button>
76
+ <p class="card-note">
77
+ Le jeton n'est jamais conservé dans le navigateur : la session tient dans un cookie HttpOnly, fermé à la
78
+ déconnexion.
79
+ </p>
80
+ </form>
81
+ </main>
82
+
83
+ <!-- Console : agents, fils, lecteur du fil, volet de détail. -->
84
+ <main class="console" id="console" hidden>
85
+ <aside class="agents" id="agents-pane">
86
+ <div class="agents-head">
87
+ <span class="section-label">Agents</span>
88
+ <button type="button" class="btn btn--icon btn--ghost" id="collapse" title="Replier" aria-label="Replier la liste des agents">
89
+ <svg class="icon" viewBox="0 0 24 24" aria-hidden="true">
90
+ <rect x="3" y="3" width="18" height="18" rx="2" />
91
+ <path d="M9 3v18" />
92
+ </svg>
93
+ </button>
94
+ </div>
95
+ <ul class="agent-list" id="agents"></ul>
96
+ <p class="agents-foot muted" id="agents-foot"></p>
37
97
  </aside>
38
98
 
39
- <section class="panel messages">
40
- <div class="filters">
41
- <input type="search" id="search" placeholder="Rechercher dans les sujets et les corps…" />
42
- <span class="muted" id="filter-label"></span>
43
- <button id="clear-filters" class="link">tout afficher</button>
99
+ <section class="threads">
100
+ <div class="threads-head">
101
+ <h2>Fils</h2>
102
+ <p class="muted" id="threads-scope"></p>
103
+ <div class="chips" id="chips">
104
+ <button type="button" class="chip is-active" data-filter="all">Tous</button>
105
+ <button type="button" class="chip" data-filter="unread">Non lus</button>
106
+ <button type="button" class="chip" data-filter="high">Priorité haute</button>
107
+ </div>
44
108
  </div>
45
- <ul id="messages"></ul>
109
+ <ul class="thread-list" id="threads"></ul>
46
110
  </section>
47
111
 
48
- <section class="panel detail">
49
- <div id="detail" class="empty">Sélectionnez un message pour voir son contenu.</div>
50
- </section>
112
+ <section class="reader" id="reader"></section>
113
+
114
+ <aside class="sheet" id="sheet" hidden></aside>
51
115
  </main>
116
+
52
117
  <script type="module" src="./app.js"></script>
53
118
  </body>
54
119
  </html>