@arcblock/did-connect-service 4.1.61 → 4.1.62

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.
Files changed (72) hide show
  1. package/dist/_generated/asset-bytes.js +1 -1
  2. package/dist/_generated/asset-manifest.js +2 -2
  3. package/dist/assets/{admin-core.bcfa7ce2.js → admin-core.bbd8d53c.js} +963 -194
  4. package/dist/assets/{admin.bd6c819b.css → admin.7b66e78d.css} +160 -7
  5. package/dist/blocklet-service-rpc.js +4 -4
  6. package/dist/blocklet-service-rpc.js.map +1 -1
  7. package/dist/handler-errors.d.ts +14 -8
  8. package/dist/handler-errors.d.ts.map +1 -1
  9. package/dist/handler-errors.js +15 -8
  10. package/dist/handler-errors.js.map +1 -1
  11. package/dist/handlers/account-merge-handler.d.ts +32 -5
  12. package/dist/handlers/account-merge-handler.d.ts.map +1 -1
  13. package/dist/handlers/account-merge-handler.js +155 -19
  14. package/dist/handlers/account-merge-handler.js.map +1 -1
  15. package/dist/handlers/auth-handler.d.ts.map +1 -1
  16. package/dist/handlers/auth-handler.js +11 -6
  17. package/dist/handlers/auth-handler.js.map +1 -1
  18. package/dist/handlers/did-connect-handler.d.ts +2 -2
  19. package/dist/handlers/did-connect-handler.d.ts.map +1 -1
  20. package/dist/handlers/did-connect-handler.js +9 -14
  21. package/dist/handlers/did-connect-handler.js.map +1 -1
  22. package/dist/handlers/email-login-handler.d.ts.map +1 -1
  23. package/dist/handlers/email-login-handler.js +15 -10
  24. package/dist/handlers/email-login-handler.js.map +1 -1
  25. package/dist/handlers/oauth-handler.d.ts +2 -0
  26. package/dist/handlers/oauth-handler.d.ts.map +1 -1
  27. package/dist/handlers/oauth-handler.js +71 -22
  28. package/dist/handlers/oauth-handler.js.map +1 -1
  29. package/dist/handlers/passkey-handler.d.ts +8 -2
  30. package/dist/handlers/passkey-handler.d.ts.map +1 -1
  31. package/dist/handlers/passkey-handler.js +27 -18
  32. package/dist/handlers/passkey-handler.js.map +1 -1
  33. package/dist/handlers/team-handler.js +2 -2
  34. package/dist/handlers/team-handler.js.map +1 -1
  35. package/dist/http/security-headers.d.ts +38 -0
  36. package/dist/http/security-headers.d.ts.map +1 -0
  37. package/dist/http/security-headers.js +67 -0
  38. package/dist/http/security-headers.js.map +1 -0
  39. package/dist/identity/session-epoch.d.ts +11 -0
  40. package/dist/identity/session-epoch.d.ts.map +1 -1
  41. package/dist/identity/session-epoch.js +12 -0
  42. package/dist/identity/session-epoch.js.map +1 -1
  43. package/dist/pages/admin/i18n.d.ts.map +1 -1
  44. package/dist/pages/admin/i18n.js +271 -47
  45. package/dist/pages/admin/i18n.js.map +1 -1
  46. package/dist/pages/admin/merge-confirm-view.d.ts +75 -18
  47. package/dist/pages/admin/merge-confirm-view.d.ts.map +1 -1
  48. package/dist/pages/admin/merge-confirm-view.js +304 -72
  49. package/dist/pages/admin/merge-confirm-view.js.map +1 -1
  50. package/dist/pages/admin/merge-method-picker.d.ts +34 -3
  51. package/dist/pages/admin/merge-method-picker.d.ts.map +1 -1
  52. package/dist/pages/admin/merge-method-picker.js +188 -14
  53. package/dist/pages/admin/merge-method-picker.js.map +1 -1
  54. package/dist/pages/admin/styles.d.ts.map +1 -1
  55. package/dist/pages/admin/styles.js +160 -7
  56. package/dist/pages/admin/styles.js.map +1 -1
  57. package/dist/pages/admin/tab-profile-accounts.d.ts.map +1 -1
  58. package/dist/pages/admin/tab-profile-accounts.js +490 -114
  59. package/dist/pages/admin/tab-profile-accounts.js.map +1 -1
  60. package/dist/pages/oauth-callback-page.d.ts +5 -0
  61. package/dist/pages/oauth-callback-page.d.ts.map +1 -1
  62. package/dist/pages/oauth-callback-page.js +19 -0
  63. package/dist/pages/oauth-callback-page.js.map +1 -1
  64. package/dist/store/account-merge.d.ts +139 -3
  65. package/dist/store/account-merge.d.ts.map +1 -1
  66. package/dist/store/account-merge.js +381 -11
  67. package/dist/store/account-merge.js.map +1 -1
  68. package/dist/store/d1-store.d.ts +20 -3
  69. package/dist/store/d1-store.d.ts.map +1 -1
  70. package/dist/store/d1-store.js +37 -26
  71. package/dist/store/d1-store.js.map +1 -1
  72. package/package.json +3 -3
@@ -1,34 +1,208 @@
1
1
  /**
2
- * Merge prove-A method picker (#191). Injected into CONNECTED_ACCOUNTS_SCRIPT
3
- * via Function#toString — keep these functions free of module-level closures.
2
+ * Merge prove-A method picker (#191) and candidate guidance (#320).
3
+ * Injected into CONNECTED_ACCOUNTS_SCRIPT via Function#toString — keep these
4
+ * functions free of module-level closures. Pass every dependency as a parameter.
4
5
  */
5
- export function renderMergeMethodPickerHtml(options, t, escapeHtml, iconFor, labelFor) {
6
- const buttons = (options || [])
7
- .map((opt) => {
6
+ /** Relative within a year; year + month after that. Empty when `iso` is missing. */
7
+ export function formatMergeCandidateWhen(iso, nowMs, lang, t) {
8
+ if (!iso)
9
+ return "";
10
+ const then = new Date(iso).getTime();
11
+ if (Number.isNaN(then))
12
+ return "";
13
+ const dayMs = 86400000;
14
+ let days = Math.floor((nowMs - then) / dayMs);
15
+ if (days < 0)
16
+ days = 0;
17
+ if (days >= 365) {
18
+ const locale = lang || "en";
19
+ try {
20
+ return new Intl.DateTimeFormat(locale, { year: "numeric", month: "long" }).format(new Date(then));
21
+ }
22
+ catch {
23
+ return new Intl.DateTimeFormat("en", { year: "numeric", month: "long" }).format(new Date(then));
24
+ }
25
+ }
26
+ if (days >= 30) {
27
+ const months = Math.max(1, Math.floor(days / 30));
28
+ return months === 1 ? t("profile.mergePromptMonthAgo") : t("profile.mergePromptMonthsAgo", { count: String(months) });
29
+ }
30
+ if (days === 0)
31
+ return t("profile.mergePromptToday");
32
+ if (days === 1)
33
+ return t("profile.mergePromptDayAgo");
34
+ return t("profile.mergePromptDaysAgo", { count: String(days) });
35
+ }
36
+ /**
37
+ * Split site-enabled prove methods into the candidate's methods and the rest.
38
+ * Email prove is included only when `emailLogin` is true, the shared email is
39
+ * present, and the site has email login. Hidden providers are dropped here;
40
+ * the server still returns them.
41
+ */
42
+ export function partitionMergeMethods(candidate, enabled, hiddenProviders) {
43
+ const enabledList = enabled || [];
44
+ const hidden = hiddenProviders || [];
45
+ const methods = (candidate && candidate.methods) || [];
46
+ const emailLogin = !!(candidate && candidate.emailLogin === true);
47
+ const email = (candidate && typeof candidate.email === "string" && candidate.email) || "";
48
+ const recommended = [];
49
+ const used = {};
50
+ const isHidden = (name) => hidden.indexOf(name) !== -1;
51
+ const findEnabled = (method, provider) => {
52
+ for (let i = 0; i < enabledList.length; i++) {
53
+ const opt = enabledList[i];
54
+ if (!opt || opt.method !== method)
55
+ continue;
56
+ if (method === "oauth" && opt.provider !== provider)
57
+ continue;
58
+ return opt;
59
+ }
60
+ return null;
61
+ };
62
+ for (let m = 0; m < methods.length; m++) {
63
+ const name = methods[m];
64
+ if (!name || isHidden(name) || name === "email")
65
+ continue;
66
+ const method = name === "wallet" || name === "passkey" ? name : "oauth";
67
+ const provider = method === "oauth" ? name : "";
68
+ const hit = findEnabled(method, provider);
69
+ if (!hit)
70
+ continue;
71
+ const key = `${method}:${hit.provider || ""}`;
72
+ if (used[key])
73
+ continue;
74
+ used[key] = true;
75
+ if (method === "oauth")
76
+ recommended.push({ method: "oauth", provider: hit.provider || provider });
77
+ else if (method === "wallet")
78
+ recommended.push({ method: "wallet" });
79
+ else
80
+ recommended.push({ method: "passkey" });
81
+ }
82
+ if (emailLogin && email && findEnabled("email", "")) {
83
+ recommended.push({ method: "email", email });
84
+ used["email:"] = true;
85
+ }
86
+ const others = [];
87
+ for (let e = 0; e < enabledList.length; e++) {
88
+ const opt = enabledList[e];
89
+ if (!opt || opt.method === "email")
90
+ continue;
91
+ const key = `${opt.method}:${opt.provider || ""}`;
92
+ if (used[key])
93
+ continue;
94
+ others.push(opt.method === "oauth" ? { method: "oauth", provider: opt.provider || "" } : { method: opt.method });
95
+ }
96
+ const unavailable = recommended.length === 0;
97
+ return { recommended, others, othersOpen: unavailable, unavailable };
98
+ }
99
+ export function renderMergeMethodPickerHtml(options, t, escapeHtml, iconFor, labelFor, errorText, guide) {
100
+ const button = (opt, primary) => {
101
+ const cls = primary ? "btn merge-method-btn" : "btn btn-secondary merge-method-btn";
8
102
  if (opt.method === "wallet") {
9
- return (`<button type="button" class="btn btn-secondary merge-method-btn" data-merge-method="wallet">` +
103
+ return (`<button type="button" class="${cls}" data-merge-method="wallet">` +
10
104
  `${iconFor("did-connect")} ${escapeHtml(t("profile.mergeProveWallet"))}</button>`);
11
105
  }
12
106
  if (opt.method === "passkey") {
13
- return (`<button type="button" class="btn btn-secondary merge-method-btn" data-merge-method="passkey">` +
107
+ return (`<button type="button" class="${cls}" data-merge-method="passkey">` +
14
108
  `${iconFor("passkey")} ${escapeHtml(t("profile.mergeProvePasskey"))}</button>`);
15
109
  }
16
110
  if (opt.method === "email") {
17
- return (`<button type="button" class="btn btn-secondary merge-method-btn" data-merge-method="email">` +
18
- `${iconFor("email")} ${escapeHtml(t("profile.mergeProveEmail"))}</button>`);
111
+ const label = opt.email ? t("profile.mergeProveEmailAddress", { email: opt.email }) : t("profile.mergeProveEmail");
112
+ const emailAttr = opt.email ? ` data-merge-email="${escapeHtml(opt.email)}"` : "";
113
+ return (`<button type="button" class="${cls}" data-merge-method="email"${emailAttr}>` +
114
+ `${iconFor("email")} ${escapeHtml(label)}</button>`);
19
115
  }
20
116
  const provider = opt.provider || "";
21
- return (`<button type="button" class="btn btn-secondary merge-method-btn" data-merge-method="oauth" data-merge-provider="${escapeHtml(provider)}">` +
117
+ return (`<button type="button" class="${cls}" data-merge-method="oauth" data-merge-provider="${escapeHtml(provider)}">` +
22
118
  `${iconFor(provider)} ${escapeHtml(t("profile.mergeProveOAuth", { provider: labelFor(provider) }))}</button>`);
23
- })
24
- .join("");
119
+ };
120
+ const alert = errorText
121
+ ? `<p id="account-merge-method-error" class="dialog-desc" role="alert">${escapeHtml(errorText)}</p>`
122
+ : "";
123
+ const hintKey = guide ? "profile.mergeCandidateProveHint" : "profile.mergeAccountHint";
124
+ let listHtml = "";
125
+ if (guide) {
126
+ if (guide.unavailable) {
127
+ listHtml += `<p class="merge-method-unavailable">${escapeHtml(t("profile.mergePromptMethodsDisabled"))}</p>`;
128
+ }
129
+ else {
130
+ const recommended = (guide.recommended || []).map((opt) => button(opt, true)).join("");
131
+ listHtml +=
132
+ `<div class="merge-method-recommended">` +
133
+ `<p class="merge-method-kicker">${escapeHtml(t("profile.mergePromptMethodsLabel"))}</p>` +
134
+ `<div class="merge-method-list">${recommended}</div></div>`;
135
+ }
136
+ const others = guide.others || [];
137
+ if (others.length) {
138
+ const open = guide.othersOpen ? " open" : "";
139
+ listHtml +=
140
+ `<details class="merge-method-others"${open}>` +
141
+ `<summary>${escapeHtml(t("profile.mergePromptOtherMethods"))}</summary>` +
142
+ `<div class="merge-method-list">${others.map((opt) => button(opt, false)).join("")}</div></details>`;
143
+ }
144
+ }
145
+ else {
146
+ listHtml = `<div class="merge-method-list">${(options || []).map((opt) => button(opt, false)).join("")}</div>`;
147
+ }
25
148
  return (`<div class="dialog-content">` +
26
149
  `<h3>${escapeHtml(t("profile.mergeChooseMethod"))}</h3>` +
27
- `<p class="dialog-desc">${escapeHtml(t("profile.mergeAccountHint"))}</p>` +
28
- `<div class="merge-method-list">${buttons}</div>` +
150
+ `<p class="dialog-desc">${escapeHtml(t(hintKey))}</p>` +
151
+ alert +
152
+ listHtml +
29
153
  `</div>` +
30
154
  `<div class="dialog-actions">` +
31
155
  `<button type="button" class="btn btn-secondary" id="account-merge-method-cancel">${escapeHtml(t("common.cancel"))}</button>` +
32
156
  `</div>`);
33
157
  }
158
+ export function renderMergePromptHtml(email, candidates, t, escapeHtml, iconFor, labelFor, formatWhen, hiddenProviders) {
159
+ const hidden = hiddenProviders || [];
160
+ const rows = candidates || [];
161
+ const many = rows.length > 1;
162
+ const title = many
163
+ ? t("profile.mergePromptTitleMany", { email, count: String(rows.length) })
164
+ : t("profile.mergePromptTitleOne", { email });
165
+ const body = many ? t("profile.mergePromptBodyMany") : t("profile.mergePromptBodyOne");
166
+ let html = `<div class="ca-merge-prompt-title">${escapeHtml(title)}</div>` +
167
+ `<p class="ca-merge-prompt-body">${escapeHtml(body)}</p>`;
168
+ for (let i = 0; i < rows.length; i++) {
169
+ const row = rows[i];
170
+ if (!row)
171
+ continue;
172
+ const methods = row.methods || [];
173
+ const icons = [];
174
+ const names = [];
175
+ for (let m = 0; m < methods.length; m++) {
176
+ const name = methods[m];
177
+ if (!name || hidden.indexOf(name) !== -1)
178
+ continue;
179
+ icons.push(`<span class="ca-merge-prompt-icon">${iconFor(name)}</span>`);
180
+ names.push(escapeHtml(labelFor(name)));
181
+ }
182
+ const bits = [];
183
+ if (names.length) {
184
+ bits.push(`<span class="ca-merge-prompt-methods">${icons.join("")}` +
185
+ `<span class="ca-merge-prompt-method-names">${names.join(escapeHtml(t("profile.mergePromptMethodSep")))}</span></span>`);
186
+ }
187
+ const created = row.createdAt ? formatWhen(row.createdAt) : "";
188
+ if (created)
189
+ bits.push(escapeHtml(t("profile.mergePromptCreated", { when: created })));
190
+ const last = row.lastLoginAt ? formatWhen(row.lastLoginAt) : "";
191
+ if (last)
192
+ bits.push(escapeHtml(t("profile.mergePromptLastLogin", { when: last })));
193
+ const ref = escapeHtml(row.ref || "");
194
+ html +=
195
+ `<div class="ca-merge-prompt-row">` +
196
+ `<div class="ca-merge-prompt-meta">${bits.join('<span class="ca-merge-prompt-dot"> · </span>')}</div>` +
197
+ `<div class="ca-merge-prompt-actions">` +
198
+ `<button type="button" class="btn" data-merge-ref="${ref}" onclick="startMergeCandidate(this)">${escapeHtml(t("profile.mergePromptMergeThis"))}</button>` +
199
+ `<button type="button" class="btn btn-secondary" data-merge-ref="${ref}" onclick="hideMergeCandidate(this)">${escapeHtml(t("profile.mergePromptNotMine"))}</button>` +
200
+ `</div></div>`;
201
+ }
202
+ html +=
203
+ `<div class="ca-merge-prompt-later">` +
204
+ `<button type="button" class="btn btn-secondary" id="merge-candidate-prompt-later" onclick="dismissMergePromptLater()">` +
205
+ `${escapeHtml(t("profile.mergePromptLater"))}</button></div>`;
206
+ return html;
207
+ }
34
208
  //# sourceMappingURL=merge-method-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-method-picker.js","sourceRoot":"","sources":["../../../src/pages/admin/merge-method-picker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,UAAU,2BAA2B,CACzC,OAA4B,EAC5B,CAA2D,EAC3D,UAAiC,EACjC,OAAqC,EACrC,QAAsC;IAEtC,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CACL,8FAA8F;gBAC9F,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CACL,+FAA+F;gBAC/F,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CACL,6FAA6F;gBAC7F,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,WAAW,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpC,OAAO,CACL,mHAAmH,UAAU,CAAC,QAAQ,CAAC,IAAI;YAC3I,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,CAC9G,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,CACL,8BAA8B;QAC9B,OAAO,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,OAAO;QACxD,0BAA0B,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM;QACzE,kCAAkC,OAAO,QAAQ;QACjD,QAAQ;QACR,8BAA8B;QAC9B,oFAAoF,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW;QAC7H,QAAQ,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"merge-method-picker.js","sourceRoot":"","sources":["../../../src/pages/admin/merge-method-picker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/styles.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAIH,eAAO,MAAM,YAAY,QAm0ErB,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/styles.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAIH,eAAO,MAAM,YAAY,QA49ErB,CAAC"}
@@ -1263,7 +1263,110 @@ export const ADMIN_STYLES = /* @__PURE__ */ (() => /* css */ `
1263
1263
  }
1264
1264
  .dialog-actions .btn { width: auto; }
1265
1265
 
1266
- dialog.merge-confirm-dialog { max-width: 560px; }
1266
+ dialog.merge-confirm-dialog { max-width: 720px; }
1267
+ .merge-confirm-cards {
1268
+ display: grid;
1269
+ grid-template-columns: 1fr 1fr;
1270
+ gap: 10px;
1271
+ margin: 12px 0 0;
1272
+ }
1273
+ .merge-confirm-card {
1274
+ display: flex;
1275
+ gap: 8px;
1276
+ align-items: flex-start;
1277
+ margin: 0;
1278
+ padding: 12px;
1279
+ border: 1px solid var(--border);
1280
+ border-radius: var(--radius-sm);
1281
+ background: transparent;
1282
+ cursor: pointer;
1283
+ min-width: 0;
1284
+ }
1285
+ .merge-confirm-card.is-selected {
1286
+ border-color: var(--blue);
1287
+ box-shadow: 0 0 0 1px var(--blue);
1288
+ }
1289
+ .merge-confirm-card input { margin-top: 3px; flex: none; }
1290
+ .merge-confirm-card-main { min-width: 0; flex: 1; }
1291
+ .merge-confirm-card-head {
1292
+ display: flex;
1293
+ align-items: center;
1294
+ gap: 6px;
1295
+ min-width: 0;
1296
+ }
1297
+ .merge-confirm-card-head .merge-confirm-did {
1298
+ font-size: 13px;
1299
+ word-break: normal;
1300
+ }
1301
+ .merge-confirm-badge {
1302
+ margin-left: auto;
1303
+ flex: none;
1304
+ font-size: 11px;
1305
+ font-weight: 600;
1306
+ color: var(--green-text);
1307
+ background: var(--green-light);
1308
+ border-radius: var(--radius-full);
1309
+ padding: 2px 8px;
1310
+ }
1311
+ .merge-confirm-copy {
1312
+ flex: none;
1313
+ border: none;
1314
+ background: none;
1315
+ color: var(--blue);
1316
+ font-size: 12px;
1317
+ font-weight: 600;
1318
+ cursor: pointer;
1319
+ padding: 0;
1320
+ }
1321
+ .merge-confirm-line,
1322
+ .merge-confirm-current {
1323
+ display: block;
1324
+ margin-top: 4px;
1325
+ font-size: 13px;
1326
+ line-height: 1.45;
1327
+ overflow-wrap: anywhere;
1328
+ }
1329
+ .merge-confirm-current { color: var(--text-secondary); font-size: 12px; }
1330
+ .merge-confirm-choose,
1331
+ .merge-confirm-reason,
1332
+ .merge-confirm-alias {
1333
+ margin: 12px 0 0;
1334
+ font-size: 13px;
1335
+ line-height: 1.5;
1336
+ color: var(--text);
1337
+ }
1338
+ .merge-confirm-match,
1339
+ .merge-confirm-not-match {
1340
+ margin: 0 0 12px;
1341
+ padding: 8px 10px;
1342
+ border-radius: var(--radius-sm);
1343
+ font-size: 13px;
1344
+ line-height: 1.45;
1345
+ }
1346
+ .merge-confirm-match {
1347
+ color: var(--green-text);
1348
+ background: var(--green-light);
1349
+ }
1350
+ .merge-confirm-not-match {
1351
+ color: var(--yellow-text);
1352
+ background: var(--yellow-light);
1353
+ }
1354
+ .merge-confirm-loading,
1355
+ .merge-confirm-host {
1356
+ margin: 8px 0 0;
1357
+ font-size: 12px;
1358
+ line-height: 1.5;
1359
+ color: var(--text-secondary);
1360
+ }
1361
+ .merge-confirm-done-did,
1362
+ .merge-confirm-done-methods {
1363
+ margin: 8px 0 0;
1364
+ font-size: 14px;
1365
+ line-height: 1.5;
1366
+ }
1367
+ @media (max-width: 559px) {
1368
+ .merge-confirm-cards { grid-template-columns: 1fr; }
1369
+ }
1267
1370
  .merge-method-list { display: grid; gap: 10px; margin-top: 16px; }
1268
1371
  .merge-method-list .btn,
1269
1372
  .merge-method-btn {
@@ -1301,6 +1404,62 @@ export const ADMIN_STYLES = /* @__PURE__ */ (() => /* css */ `
1301
1404
  gap: 8px;
1302
1405
  }
1303
1406
  .ca-merge-prompt .btn { width: auto; min-width: 96px; }
1407
+ .ca-merge-prompt-row {
1408
+ display: flex;
1409
+ flex-wrap: wrap;
1410
+ align-items: center;
1411
+ justify-content: space-between;
1412
+ gap: 8px;
1413
+ margin: 8px 0 0;
1414
+ }
1415
+ .ca-merge-prompt-meta {
1416
+ display: flex;
1417
+ flex-wrap: wrap;
1418
+ align-items: center;
1419
+ gap: 4px;
1420
+ font-size: 13px;
1421
+ color: var(--text);
1422
+ line-height: 1.45;
1423
+ min-width: 0;
1424
+ }
1425
+ .ca-merge-prompt-methods {
1426
+ display: inline-flex;
1427
+ align-items: center;
1428
+ gap: 4px;
1429
+ }
1430
+ .ca-merge-prompt-icon,
1431
+ .ca-merge-prompt-icon svg,
1432
+ .ca-merge-prompt-fallback {
1433
+ width: 16px;
1434
+ height: 16px;
1435
+ display: inline-flex;
1436
+ align-items: center;
1437
+ justify-content: center;
1438
+ flex-shrink: 0;
1439
+ }
1440
+ .ca-merge-prompt-later {
1441
+ display: flex;
1442
+ justify-content: flex-end;
1443
+ margin-top: 8px;
1444
+ }
1445
+ .merge-method-kicker {
1446
+ margin: 14px 0 0;
1447
+ font-size: 12px;
1448
+ font-weight: 600;
1449
+ color: var(--text-white);
1450
+ }
1451
+ .merge-method-unavailable {
1452
+ margin: 12px 0 0;
1453
+ font-size: 13px;
1454
+ color: var(--text-secondary);
1455
+ line-height: 1.45;
1456
+ }
1457
+ .merge-method-others { margin-top: 12px; }
1458
+ .merge-method-others summary {
1459
+ cursor: pointer;
1460
+ font-size: 13px;
1461
+ color: var(--text-secondary);
1462
+ }
1304
1463
  .merge-email-fields { display: grid; gap: 10px; margin-top: 12px; text-align: left; }
1305
1464
  .merge-confirm-section { margin: 14px 0 0; }
1306
1465
  .merge-confirm-section h4 {
@@ -1327,12 +1486,6 @@ export const ADMIN_STYLES = /* @__PURE__ */ (() => /* css */ `
1327
1486
  font-size: 12px;
1328
1487
  word-break: break-all;
1329
1488
  }
1330
- .merge-confirm-keep-other {
1331
- font-size: 13px;
1332
- color: var(--text-secondary);
1333
- margin: 0 0 4px;
1334
- line-height: 1.5;
1335
- }
1336
1489
  .merge-confirm-irreversible {
1337
1490
  color: var(--red-text);
1338
1491
  font-weight: 600;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/pages/admin/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AAEH,+EAA+E;AAC/E,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAm+D3D,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgWrB,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/pages/admin/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AAEH,+EAA+E;AAC/E,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4nE3D,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgWrB,CAAC,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tab-profile-accounts.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/tab-profile-accounts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAqBpE,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAUxD;AAID,eAAO,MAAM,yBAAyB,QAgiClC,CAAC"}
1
+ {"version":3,"file":"tab-profile-accounts.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/tab-profile-accounts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAqBpE,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAUxD;AAID,eAAO,MAAM,yBAAyB,QAw5ClC,CAAC"}