@idp.global/catalog 2.0.0 → 2.1.0

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 (70) hide show
  1. package/changelog.md +15 -0
  2. package/dist_bundle/bundle.js +4428 -1496
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/idp-admin-overview.d.ts +28 -0
  5. package/dist_ts_web/elements/idp-admin-overview.js +460 -0
  6. package/dist_ts_web/elements/idp-admin-shared.d.ts +18 -0
  7. package/dist_ts_web/elements/idp-admin-shared.js +404 -0
  8. package/dist_ts_web/elements/idp-admin-shell.d.ts +96 -11
  9. package/dist_ts_web/elements/idp-admin-shell.js +442 -816
  10. package/dist_ts_web/elements/idp-admin-sidebar.d.ts +42 -0
  11. package/dist_ts_web/elements/idp-admin-sidebar.js +700 -0
  12. package/dist_ts_web/elements/idp-app-pair.d.ts +19 -0
  13. package/dist_ts_web/elements/idp-app-pair.js +187 -0
  14. package/dist_ts_web/elements/idp-auth-card.d.ts +17 -0
  15. package/dist_ts_web/elements/idp-auth-card.js +180 -0
  16. package/dist_ts_web/elements/idp-avatar.d.ts +17 -0
  17. package/dist_ts_web/elements/idp-avatar.js +151 -0
  18. package/dist_ts_web/elements/idp-badge.d.ts +2 -0
  19. package/dist_ts_web/elements/idp-badge.js +12 -3
  20. package/dist_ts_web/elements/idp-brand-mark.d.ts +16 -0
  21. package/dist_ts_web/elements/idp-brand-mark.js +139 -0
  22. package/dist_ts_web/elements/idp-button.d.ts +3 -0
  23. package/dist_ts_web/elements/idp-button.js +47 -3
  24. package/dist_ts_web/elements/idp-consent-card.d.ts +34 -0
  25. package/dist_ts_web/elements/idp-consent-card.js +217 -0
  26. package/dist_ts_web/elements/idp-delegation-section.d.ts +59 -0
  27. package/dist_ts_web/elements/idp-delegation-section.js +609 -0
  28. package/dist_ts_web/elements/idp-form-submit.d.ts +2 -1
  29. package/dist_ts_web/elements/idp-form-submit.js +11 -2
  30. package/dist_ts_web/elements/idp-form.js +2 -2
  31. package/dist_ts_web/elements/idp-input.d.ts +4 -0
  32. package/dist_ts_web/elements/idp-input.js +68 -15
  33. package/dist_ts_web/elements/idp-option-row.d.ts +25 -0
  34. package/dist_ts_web/elements/idp-option-row.js +267 -0
  35. package/dist_ts_web/elements/idp-otp-input.d.ts +32 -0
  36. package/dist_ts_web/elements/idp-otp-input.js +274 -0
  37. package/dist_ts_web/elements/idp-progress-bar.d.ts +14 -0
  38. package/dist_ts_web/elements/idp-progress-bar.js +127 -0
  39. package/dist_ts_web/elements/idp-signed-in-pill.d.ts +15 -0
  40. package/dist_ts_web/elements/idp-signed-in-pill.js +113 -0
  41. package/dist_ts_web/elements/idp-spinner.d.ts +13 -0
  42. package/dist_ts_web/elements/idp-spinner.js +109 -0
  43. package/dist_ts_web/elements/idp-status-icon.d.ts +18 -0
  44. package/dist_ts_web/elements/idp-status-icon.js +136 -0
  45. package/dist_ts_web/elements/index.d.ts +15 -0
  46. package/dist_ts_web/elements/index.js +16 -1
  47. package/package.json +1 -1
  48. package/ts_web/00_commitinfo_data.ts +1 -1
  49. package/ts_web/elements/idp-admin-overview.ts +388 -0
  50. package/ts_web/elements/idp-admin-shared.ts +419 -0
  51. package/ts_web/elements/idp-admin-shell.ts +514 -871
  52. package/ts_web/elements/idp-admin-sidebar.ts +646 -0
  53. package/ts_web/elements/idp-app-pair.ts +120 -0
  54. package/ts_web/elements/idp-auth-card.ts +113 -0
  55. package/ts_web/elements/idp-avatar.ts +84 -0
  56. package/ts_web/elements/idp-badge.ts +5 -1
  57. package/ts_web/elements/idp-brand-mark.ts +76 -0
  58. package/ts_web/elements/idp-button.ts +36 -1
  59. package/ts_web/elements/idp-consent-card.ts +146 -0
  60. package/ts_web/elements/idp-delegation-section.ts +576 -0
  61. package/ts_web/elements/idp-form-submit.ts +5 -1
  62. package/ts_web/elements/idp-form.ts +1 -1
  63. package/ts_web/elements/idp-input.ts +58 -13
  64. package/ts_web/elements/idp-option-row.ts +184 -0
  65. package/ts_web/elements/idp-otp-input.ts +204 -0
  66. package/ts_web/elements/idp-progress-bar.ts +69 -0
  67. package/ts_web/elements/idp-signed-in-pill.ts +55 -0
  68. package/ts_web/elements/idp-spinner.ts +56 -0
  69. package/ts_web/elements/idp-status-icon.ts +76 -0
  70. package/ts_web/elements/index.ts +15 -0
@@ -37,6 +37,12 @@ import { idpElementStyles } from './tokens.js';
37
37
  import './idp-badge.js';
38
38
  import './idp-icon.js';
39
39
  import './idp-data-table.js';
40
+ import './idp-avatar.js';
41
+ import './idp-toggle.js';
42
+ import './idp-delegation-section.js';
43
+ import './idp-admin-sidebar.js';
44
+ import './idp-admin-overview.js';
45
+ import { idpAdminSharedStyles, renderAdminKpi, renderAdminStateCard, formatAdminTimeAgo } from './idp-admin-shared.js';
40
46
  let IdpAdminShell = (() => {
41
47
  let _classDecorators = [customElement('idp-admin-shell')];
42
48
  let _classDescriptor;
@@ -109,9 +115,36 @@ let IdpAdminShell = (() => {
109
115
  let _credentialMessage_decorators;
110
116
  let _credentialMessage_initializers = [];
111
117
  let _credentialMessage_extraInitializers = [];
112
- let _orgMenuOpen_decorators;
113
- let _orgMenuOpen_initializers = [];
114
- let _orgMenuOpen_extraInitializers = [];
118
+ let _accounts_decorators;
119
+ let _accounts_initializers = [];
120
+ let _accounts_extraInitializers = [];
121
+ let _gaUsers_decorators;
122
+ let _gaUsers_initializers = [];
123
+ let _gaUsers_extraInitializers = [];
124
+ let _overviewData_decorators;
125
+ let _overviewData_initializers = [];
126
+ let _overviewData_extraInitializers = [];
127
+ let _delegationApps_decorators;
128
+ let _delegationApps_initializers = [];
129
+ let _delegationApps_extraInitializers = [];
130
+ let _delegations_decorators;
131
+ let _delegations_initializers = [];
132
+ let _delegations_extraInitializers = [];
133
+ let _logoutEverywhere_decorators;
134
+ let _logoutEverywhere_initializers = [];
135
+ let _logoutEverywhere_extraInitializers = [];
136
+ let _createOrgName_decorators;
137
+ let _createOrgName_initializers = [];
138
+ let _createOrgName_extraInitializers = [];
139
+ let _createOrgSlug_decorators;
140
+ let _createOrgSlug_initializers = [];
141
+ let _createOrgSlug_extraInitializers = [];
142
+ let _gaUserSearch_decorators;
143
+ let _gaUserSearch_initializers = [];
144
+ let _gaUserSearch_extraInitializers = [];
145
+ let _toast_decorators;
146
+ let _toast_initializers = [];
147
+ let _toast_extraInitializers = [];
115
148
  let _currentPassword_decorators;
116
149
  let _currentPassword_initializers = [];
117
150
  let _currentPassword_extraInitializers = [];
@@ -204,7 +237,16 @@ let IdpAdminShell = (() => {
204
237
  _totpEnrollment_decorators = [property({ type: Object })];
205
238
  _passkeys_decorators = [property({ type: Array })];
206
239
  _credentialMessage_decorators = [property({ type: String, attribute: 'credential-message' })];
207
- _orgMenuOpen_decorators = [state()];
240
+ _accounts_decorators = [property({ type: Array })];
241
+ _gaUsers_decorators = [property({ type: Array })];
242
+ _overviewData_decorators = [property({ type: Object })];
243
+ _delegationApps_decorators = [property({ type: Array })];
244
+ _delegations_decorators = [property({ type: Array })];
245
+ _logoutEverywhere_decorators = [state()];
246
+ _createOrgName_decorators = [state()];
247
+ _createOrgSlug_decorators = [state()];
248
+ _gaUserSearch_decorators = [state()];
249
+ _toast_decorators = [state()];
208
250
  _currentPassword_decorators = [state()];
209
251
  _newPassword_decorators = [state()];
210
252
  _confirmPassword_decorators = [state()];
@@ -249,7 +291,16 @@ let IdpAdminShell = (() => {
249
291
  __esDecorate(this, null, _totpEnrollment_decorators, { kind: "accessor", name: "totpEnrollment", static: false, private: false, access: { has: obj => "totpEnrollment" in obj, get: obj => obj.totpEnrollment, set: (obj, value) => { obj.totpEnrollment = value; } }, metadata: _metadata }, _totpEnrollment_initializers, _totpEnrollment_extraInitializers);
250
292
  __esDecorate(this, null, _passkeys_decorators, { kind: "accessor", name: "passkeys", static: false, private: false, access: { has: obj => "passkeys" in obj, get: obj => obj.passkeys, set: (obj, value) => { obj.passkeys = value; } }, metadata: _metadata }, _passkeys_initializers, _passkeys_extraInitializers);
251
293
  __esDecorate(this, null, _credentialMessage_decorators, { kind: "accessor", name: "credentialMessage", static: false, private: false, access: { has: obj => "credentialMessage" in obj, get: obj => obj.credentialMessage, set: (obj, value) => { obj.credentialMessage = value; } }, metadata: _metadata }, _credentialMessage_initializers, _credentialMessage_extraInitializers);
252
- __esDecorate(this, null, _orgMenuOpen_decorators, { kind: "accessor", name: "orgMenuOpen", static: false, private: false, access: { has: obj => "orgMenuOpen" in obj, get: obj => obj.orgMenuOpen, set: (obj, value) => { obj.orgMenuOpen = value; } }, metadata: _metadata }, _orgMenuOpen_initializers, _orgMenuOpen_extraInitializers);
294
+ __esDecorate(this, null, _accounts_decorators, { kind: "accessor", name: "accounts", static: false, private: false, access: { has: obj => "accounts" in obj, get: obj => obj.accounts, set: (obj, value) => { obj.accounts = value; } }, metadata: _metadata }, _accounts_initializers, _accounts_extraInitializers);
295
+ __esDecorate(this, null, _gaUsers_decorators, { kind: "accessor", name: "gaUsers", static: false, private: false, access: { has: obj => "gaUsers" in obj, get: obj => obj.gaUsers, set: (obj, value) => { obj.gaUsers = value; } }, metadata: _metadata }, _gaUsers_initializers, _gaUsers_extraInitializers);
296
+ __esDecorate(this, null, _overviewData_decorators, { kind: "accessor", name: "overviewData", static: false, private: false, access: { has: obj => "overviewData" in obj, get: obj => obj.overviewData, set: (obj, value) => { obj.overviewData = value; } }, metadata: _metadata }, _overviewData_initializers, _overviewData_extraInitializers);
297
+ __esDecorate(this, null, _delegationApps_decorators, { kind: "accessor", name: "delegationApps", static: false, private: false, access: { has: obj => "delegationApps" in obj, get: obj => obj.delegationApps, set: (obj, value) => { obj.delegationApps = value; } }, metadata: _metadata }, _delegationApps_initializers, _delegationApps_extraInitializers);
298
+ __esDecorate(this, null, _delegations_decorators, { kind: "accessor", name: "delegations", static: false, private: false, access: { has: obj => "delegations" in obj, get: obj => obj.delegations, set: (obj, value) => { obj.delegations = value; } }, metadata: _metadata }, _delegations_initializers, _delegations_extraInitializers);
299
+ __esDecorate(this, null, _logoutEverywhere_decorators, { kind: "accessor", name: "logoutEverywhere", static: false, private: false, access: { has: obj => "logoutEverywhere" in obj, get: obj => obj.logoutEverywhere, set: (obj, value) => { obj.logoutEverywhere = value; } }, metadata: _metadata }, _logoutEverywhere_initializers, _logoutEverywhere_extraInitializers);
300
+ __esDecorate(this, null, _createOrgName_decorators, { kind: "accessor", name: "createOrgName", static: false, private: false, access: { has: obj => "createOrgName" in obj, get: obj => obj.createOrgName, set: (obj, value) => { obj.createOrgName = value; } }, metadata: _metadata }, _createOrgName_initializers, _createOrgName_extraInitializers);
301
+ __esDecorate(this, null, _createOrgSlug_decorators, { kind: "accessor", name: "createOrgSlug", static: false, private: false, access: { has: obj => "createOrgSlug" in obj, get: obj => obj.createOrgSlug, set: (obj, value) => { obj.createOrgSlug = value; } }, metadata: _metadata }, _createOrgSlug_initializers, _createOrgSlug_extraInitializers);
302
+ __esDecorate(this, null, _gaUserSearch_decorators, { kind: "accessor", name: "gaUserSearch", static: false, private: false, access: { has: obj => "gaUserSearch" in obj, get: obj => obj.gaUserSearch, set: (obj, value) => { obj.gaUserSearch = value; } }, metadata: _metadata }, _gaUserSearch_initializers, _gaUserSearch_extraInitializers);
303
+ __esDecorate(this, null, _toast_decorators, { kind: "accessor", name: "toast", static: false, private: false, access: { has: obj => "toast" in obj, get: obj => obj.toast, set: (obj, value) => { obj.toast = value; } }, metadata: _metadata }, _toast_initializers, _toast_extraInitializers);
253
304
  __esDecorate(this, null, _currentPassword_decorators, { kind: "accessor", name: "currentPassword", static: false, private: false, access: { has: obj => "currentPassword" in obj, get: obj => obj.currentPassword, set: (obj, value) => { obj.currentPassword = value; } }, metadata: _metadata }, _currentPassword_initializers, _currentPassword_extraInitializers);
254
305
  __esDecorate(this, null, _newPassword_decorators, { kind: "accessor", name: "newPassword", static: false, private: false, access: { has: obj => "newPassword" in obj, get: obj => obj.newPassword, set: (obj, value) => { obj.newPassword = value; } }, metadata: _metadata }, _newPassword_initializers, _newPassword_extraInitializers);
255
306
  __esDecorate(this, null, _confirmPassword_decorators, { kind: "accessor", name: "confirmPassword", static: false, private: false, access: { has: obj => "confirmPassword" in obj, get: obj => obj.confirmPassword, set: (obj, value) => { obj.confirmPassword = value; } }, metadata: _metadata }, _confirmPassword_initializers, _confirmPassword_extraInitializers);
@@ -276,10 +327,94 @@ let IdpAdminShell = (() => {
276
327
  IdpAdminShell = _classThis = _classDescriptor.value;
277
328
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
278
329
  }
279
- static demo = () => html `<idp-admin-shell global-admin></idp-admin-shell>`;
280
- static demoGroups = ['idp.global v3 full pages'];
330
+ static demo = () => {
331
+ const now = Date.now();
332
+ const hours = Array.from({ length: 24 }, (unused, indexArg) => indexArg);
333
+ return html `
334
+ <idp-admin-shell
335
+ global-admin
336
+ .user=${{ name: 'Alex Mercer', email: 'alex@lossless.com' }}
337
+ .accounts=${[
338
+ { name: 'Alex Mercer', email: 'alex.mercer@gmail.com' },
339
+ ]}
340
+ .orgs=${[
341
+ { id: 'org_foss', name: 'Lossless GmbH', slug: 'lossless', myRole: 'owner', plan: 'Pro', status: 'active', memberCount: 5, createdAt: now - 86400000 * 200 },
342
+ { id: 'org_task', name: 'Task VC', slug: 'task', myRole: 'admin', plan: 'Pro', status: 'active', memberCount: 3, createdAt: now - 86400000 * 140 },
343
+ { id: 'org_sus', name: 'Suspended Co.', slug: 'suspended', myRole: 'viewer', plan: 'Pro', status: 'suspended', memberCount: 2, createdAt: now - 86400000 * 80 },
344
+ ]}
345
+ .sessions=${[
346
+ { id: 's1', deviceName: 'MacBook Pro', browser: 'Safari 18', os: 'macOS', ip: '84.132.10.4', lastActive: now - 120000, createdAt: now - 86400000 * 3, isCurrent: true },
347
+ { id: 's2', deviceName: 'iPhone 15 Pro', browser: 'Safari', os: 'iOS 18', ip: '84.132.10.4', lastActive: now - 3600000, createdAt: now - 86400000 * 10, isCurrent: false },
348
+ { id: 's3', deviceName: 'Work laptop', browser: 'Chrome 132', os: 'Windows 11', ip: '13.48.2.1', lastActive: now - 86400000, createdAt: now - 86400000 * 30, isCurrent: false },
349
+ ]}
350
+ .gaUsers=${[
351
+ { id: 'u01', name: 'Alex Mercer', email: 'alex@lossless.com', status: 'active', isGlobalAdmin: true, orgCount: 2, createdAt: now - 86400000 * 200 },
352
+ { id: 'u02', name: 'Jordan Kim', email: 'jordan@lossless.com', status: 'active', isGlobalAdmin: false, orgCount: 1, createdAt: now - 86400000 * 100 },
353
+ { id: 'u05', name: 'Dana Walsh', email: 'dana@suspended.de', status: 'suspended', isGlobalAdmin: false, orgCount: 0, createdAt: now - 86400000 * 60 },
354
+ { id: 'u06', name: 'Morgan Lee', email: 'morgan@newuser.com', status: 'new', isGlobalAdmin: false, orgCount: 0, createdAt: now - 86400000 },
355
+ ]}
356
+ .adminApps=${[
357
+ { id: 'app_foss', name: 'foss.global', type: 'global', category: 'Productivity', status: 'active' },
358
+ { id: 'app_p1', name: 'Acme HR Portal', type: 'partner', category: 'HR', connectionCount: 412, status: 'approved' },
359
+ { id: 'app_p2', name: 'DevOps Suite', type: 'partner', category: 'DevOps', connectionCount: 87, status: 'pending_review' },
360
+ ]}
361
+ .overviewData=${{
362
+ chartLabel: 'Approval activity',
363
+ chartSeries: [
364
+ { name: 'Approvals', data: hours.map((hourArg) => ({ x: now - (23 - hourArg) * 3600000, y: [22, 18, 14, 10, 8, 7, 9, 14, 22, 38, 52, 64, 71, 74, 70, 65, 58, 52, 45, 38, 32, 28, 25, 23][hourArg] })) },
365
+ { name: 'OAuth grants', data: hours.map((hourArg) => ({ x: now - (23 - hourArg) * 3600000, y: [16, 12, 9, 7, 6, 5, 7, 11, 18, 30, 42, 50, 56, 58, 56, 52, 47, 41, 36, 30, 26, 23, 20, 18][hourArg] })) },
366
+ ],
367
+ threats: [
368
+ { severity: 'error', title: 'Repeated denied logins', meta: '5 attempts · Lagos, NG · last 1h', action: 'Block IP' },
369
+ { severity: 'warning', title: 'Stale device key', meta: 'sam@ · Apple Watch · 9 mo old', action: 'Rotate' },
370
+ { severity: 'info', title: 'Pending key rotations', meta: '3 identities · Cardano awaiting', action: 'Run' },
371
+ ],
372
+ regions: [
373
+ { name: 'Berlin, DE', code: 'DE', count: 1284, share: 1, kind: 'home' },
374
+ { name: 'Amsterdam, NL', code: 'NL', count: 642, share: 0.5 },
375
+ { name: 'San Francisco, US', code: 'US', count: 521, share: 0.41 },
376
+ { name: 'Lagos, NG', code: 'NG', count: 12, share: 0.01, kind: 'risk' },
377
+ ],
378
+ feed: [
379
+ { tone: 'info', text: 'Identity created · did:idp:0x9b12…f034', meta: 'block #9 841 222' },
380
+ { tone: 'ok', text: 'Anchor confirmed · 12 blocks deep', meta: '2m' },
381
+ { tone: 'warn', text: 'Device registered · MacBook Pro · pending', meta: '7m' },
382
+ ],
383
+ }}
384
+ .delegationApps=${[
385
+ {
386
+ id: 'foss',
387
+ name: 'foss.global',
388
+ perms: [
389
+ { id: 'projects:read', label: 'View projects', hint: 'Read-only access to your projects' },
390
+ { id: 'projects:write', label: 'Manage projects', hint: 'Create, edit and archive projects' },
391
+ ],
392
+ },
393
+ {
394
+ id: 'task',
395
+ name: 'task.vc',
396
+ perms: [
397
+ { id: 'tasks:read', label: 'View tasks', hint: 'See your tasks and boards' },
398
+ { id: 'tasks:write', label: 'Act on tasks', hint: 'Create, assign and complete tasks as you' },
399
+ ],
400
+ },
401
+ ]}
402
+ .delegations=${[
403
+ {
404
+ id: 'd1',
405
+ account: { name: 'Jordan Kim', email: 'jordan@lossless.com' },
406
+ grants: { task: ['tasks:read', 'tasks:write'] },
407
+ expiresAt: now + 86400000 * 24,
408
+ createdAt: now - 86400000 * 6,
409
+ },
410
+ ]}
411
+ ></idp-admin-shell>
412
+ `;
413
+ };
414
+ static demoGroups = ['idp.global v5 full pages'];
281
415
  static styles = [
282
416
  ...idpElementStyles,
417
+ idpAdminSharedStyles,
283
418
  css `
284
419
  :host {
285
420
  display: block;
@@ -298,78 +433,9 @@ let IdpAdminShell = (() => {
298
433
  border: 0;
299
434
  background: var(--idp-bg);
300
435
  }
301
- .sidebar {
436
+ idp-admin-sidebar {
302
437
  height: 100%;
303
438
  min-height: 0;
304
- display: flex;
305
- flex-direction: column;
306
- overflow: hidden;
307
- border-right: 1px solid var(--idp-border);
308
- background: var(--idp-bg);
309
- }
310
- .logo-block {
311
- padding: 14px 16px 10px;
312
- border-bottom: 1px solid var(--idp-border);
313
- }
314
- .logo {
315
- display: flex;
316
- align-items: center;
317
- gap: 8px;
318
- }
319
- .logo-icon {
320
- width: 26px;
321
- height: 26px;
322
- display: flex;
323
- align-items: center;
324
- justify-content: center;
325
- flex-shrink: 0;
326
- border-radius: 7px;
327
- background: var(--idp-primary);
328
- color: var(--idp-primary-fg);
329
- }
330
- .logo-text {
331
- color: var(--idp-fg);
332
- font-size: 13px;
333
- font-weight: 700;
334
- letter-spacing: -0.3px;
335
- }
336
- .nav-wrap {
337
- flex: 1;
338
- min-height: 0;
339
- overflow: auto;
340
- padding: 10px 8px;
341
- }
342
- .state-card {
343
- padding: 42px 24px;
344
- border: 1px solid var(--idp-border);
345
- border-radius: var(--idp-radius);
346
- background: var(--idp-card);
347
- color: var(--idp-muted-fg);
348
- text-align: center;
349
- }
350
- .state-icon {
351
- width: 38px;
352
- height: 38px;
353
- display: inline-flex;
354
- align-items: center;
355
- justify-content: center;
356
- margin-bottom: 12px;
357
- border: 1px solid var(--idp-border);
358
- border-radius: 10px;
359
- background: var(--idp-muted);
360
- color: var(--idp-muted-fg);
361
- }
362
- .state-title {
363
- margin-bottom: 4px;
364
- color: var(--idp-fg);
365
- font-size: 14px;
366
- font-weight: 600;
367
- }
368
- .state-description {
369
- max-width: 420px;
370
- margin: 0 auto;
371
- font-size: 12px;
372
- line-height: 1.5;
373
439
  }
374
440
  .notice-card {
375
441
  display: flex;
@@ -384,219 +450,48 @@ let IdpAdminShell = (() => {
384
450
  .notice-card .muted {
385
451
  color: var(--idp-muted-fg);
386
452
  }
387
- .nav-section {
388
- margin-bottom: 20px;
389
- }
390
- .nav-title {
391
- padding: 0 8px;
392
- margin-bottom: 4px;
393
- color: var(--idp-muted-fg);
394
- font-size: 10px;
395
- font-weight: 600;
396
- letter-spacing: 0.8px;
397
- text-transform: uppercase;
398
- }
399
- .nav-list {
400
- display: grid;
401
- }
402
- .nav-item,
403
- .org-switch,
404
- .plain-button {
405
- border: 0;
406
- font-family: inherit;
407
- }
408
- .nav-item {
409
- width: 100%;
453
+ .logout-everywhere-row {
410
454
  display: flex;
411
455
  align-items: center;
412
- gap: 8px;
413
- padding: 6px 8px;
414
- border-radius: 7px;
415
- background: transparent;
416
- color: var(--idp-muted-fg);
417
- font-size: 13px;
418
- font-weight: 400;
419
- text-align: left;
420
- }
421
- .nav-item.active {
422
- background: var(--idp-muted);
423
- color: var(--idp-fg);
424
- font-weight: 500;
425
- }
426
- .nav-item idp-icon {
427
- color: currentColor;
428
- }
429
- .nav-item.active idp-icon {
430
- color: var(--idp-accent);
431
- }
432
- .org-switch-wrap {
433
- position: relative;
434
- margin-bottom: 2px;
435
- }
436
- .org-switch {
437
- width: 100%;
438
- display: flex;
439
- align-items: center;
440
- gap: 8px;
441
- padding: 6px 8px;
442
- border-radius: 7px;
443
- background: transparent;
444
- color: var(--idp-muted-fg);
445
- cursor: pointer;
446
- }
447
- .org-switch:hover {
448
- background: var(--idp-muted);
449
- }
450
- .org-switch.open {
451
- background: var(--idp-muted);
452
- }
453
- .org-switch.open .org-name {
454
- color: var(--idp-accent);
455
- }
456
- .org-switch.open idp-icon {
457
- transform: rotate(180deg);
458
- }
459
- .org-menu {
460
- position: absolute;
461
- top: calc(100% + 4px);
462
- left: 0;
463
- right: 0;
464
- z-index: 40;
465
- overflow: hidden;
456
+ gap: 10px;
457
+ margin-top: 14px;
458
+ padding: 10px 12px;
466
459
  border: 1px solid var(--idp-border);
467
- border-radius: 10px;
468
- background: var(--idp-card);
469
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
470
- }
471
- .org-menu-title {
472
- padding: 6px 8px 3px;
473
- color: var(--idp-muted-fg);
474
- font-size: 10px;
475
- font-weight: 600;
476
- letter-spacing: 0.7px;
477
- text-transform: uppercase;
478
- }
479
- .org-menu-item,
480
- .org-create {
481
- width: 100%;
482
- display: flex;
483
- align-items: center;
484
- gap: 8px;
485
- border: 0;
486
- background: transparent;
487
- font-family: inherit;
488
- text-align: left;
489
- }
490
- .org-menu-item {
491
- padding: 6px 8px;
492
- cursor: pointer;
493
- }
494
- .org-menu-item.selected {
495
- background: var(--idp-accent-soft);
496
- }
497
- .org-menu-item .org-avatar {
498
- width: 20px;
499
- height: 20px;
500
- font-size: 7px;
501
- }
502
- .org-menu-name {
503
- overflow: hidden;
460
+ border-radius: 9px;
461
+ font-size: 12.5px;
504
462
  color: var(--idp-fg);
505
- font-size: 12px;
506
- font-weight: 400;
507
- text-overflow: ellipsis;
508
- white-space: nowrap;
509
- }
510
- .org-menu-item.selected .org-menu-name {
511
- color: var(--idp-accent);
512
- }
513
- .org-menu-role {
514
- color: var(--idp-muted-fg);
515
- font-size: 10px;
516
- }
517
- .org-menu-divider {
518
- height: 1px;
519
- margin: 3px 0;
520
- background: var(--idp-border);
521
- }
522
- .org-create {
523
- padding: 6px 8px 8px;
524
- color: var(--idp-muted-fg);
525
463
  cursor: pointer;
526
- font-size: 12px;
527
464
  }
528
- .org-create-icon {
529
- width: 20px;
530
- height: 20px;
465
+ .toast {
466
+ position: fixed;
467
+ right: 20px;
468
+ bottom: 20px;
469
+ z-index: 60;
531
470
  display: flex;
532
471
  align-items: center;
533
- justify-content: center;
534
- flex-shrink: 0;
535
- border: 1.5px dashed var(--idp-border);
536
- border-radius: 5px;
537
- }
538
- .org-name {
539
- flex: 1;
540
- min-width: 0;
541
- overflow: hidden;
542
- color: var(--idp-muted-fg);
472
+ gap: 10px;
473
+ max-width: 320px;
474
+ padding: 10px 14px;
475
+ border-radius: 9px;
476
+ border: 1px solid;
477
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.07);
543
478
  font-size: 13px;
544
- font-weight: 400;
545
- text-align: left;
546
- text-overflow: ellipsis;
547
- white-space: nowrap;
548
- }
549
- .org-avatar,
550
- .user-avatar {
551
- display: flex;
552
- align-items: center;
553
- justify-content: center;
554
- flex-shrink: 0;
555
- font-family: var(--idp-mono);
556
- font-weight: 700;
557
- }
558
- .org-avatar {
559
- width: 14px;
560
- height: 14px;
561
- border: 1px solid var(--idp-border);
562
- border-radius: 6px;
563
- background: var(--idp-accent-soft);
564
- color: var(--idp-accent);
565
- font-size: 5px;
566
- }
567
- .user-footer {
568
- display: flex;
569
- align-items: center;
570
- gap: 9px;
571
- padding: 10px 12px;
572
- border-top: 1px solid var(--idp-border);
573
- }
574
- .user-avatar {
575
- width: 26px;
576
- height: 26px;
577
- border-radius: 50%;
578
- background: oklch(0.85 0.08 240);
579
- color: oklch(0.3 0.08 240);
580
- font-size: 9px;
581
- }
582
- .user-meta {
583
- flex: 1;
584
- min-width: 0;
479
+ font-weight: 500;
585
480
  }
586
- .user-name,
587
- .user-email {
588
- overflow: hidden;
589
- text-overflow: ellipsis;
590
- white-space: nowrap;
481
+ .toast.ok {
482
+ background: var(--idp-ok-bg);
483
+ border-color: var(--idp-ok-border);
484
+ color: var(--idp-ok);
591
485
  }
592
- .user-name {
593
- color: var(--idp-fg);
594
- font-size: 12px;
595
- font-weight: 500;
486
+ .toast.warn {
487
+ background: var(--idp-warn-bg);
488
+ border-color: var(--idp-warn-border);
489
+ color: var(--idp-warn);
596
490
  }
597
- .user-email {
598
- color: var(--idp-muted-fg);
599
- font-size: 10px;
491
+ .toast.error {
492
+ background: var(--idp-error-bg);
493
+ border-color: var(--idp-error-border);
494
+ color: var(--idp-error);
600
495
  }
601
496
  main {
602
497
  height: 100%;
@@ -605,146 +500,6 @@ let IdpAdminShell = (() => {
605
500
  overflow: auto;
606
501
  background: var(--idp-bg);
607
502
  }
608
- .page-head {
609
- display: flex;
610
- align-items: flex-end;
611
- justify-content: space-between;
612
- gap: 16px;
613
- flex-wrap: wrap;
614
- padding: 24px 28px 18px;
615
- border-bottom: 1px solid var(--idp-border);
616
- background: var(--idp-bg);
617
- }
618
- .eyebrow-row {
619
- display: flex;
620
- align-items: center;
621
- gap: 8px;
622
- margin-bottom: 4px;
623
- }
624
- .eyebrow {
625
- color: var(--idp-muted-fg);
626
- font-family: var(--idp-mono);
627
- font-size: 10px;
628
- font-weight: 600;
629
- letter-spacing: 0.08em;
630
- text-transform: uppercase;
631
- }
632
- .live-pill {
633
- display: inline-flex;
634
- align-items: center;
635
- gap: 4px;
636
- padding: 1px 7px;
637
- border: 1px solid var(--idp-ok-border);
638
- border-radius: 999px;
639
- background: var(--idp-ok-bg);
640
- color: var(--idp-ok);
641
- font-family: var(--idp-mono);
642
- font-size: 10px;
643
- font-weight: 500;
644
- }
645
- .live-dot,
646
- .feed-dot {
647
- width: 6px;
648
- height: 6px;
649
- border-radius: 50%;
650
- background: var(--idp-ok);
651
- box-shadow: 0 0 6px var(--idp-ok);
652
- animation: idp-blink 1.6s ease-in-out infinite;
653
- }
654
- @keyframes idp-blink {
655
- 0%, 100% { opacity: 1; }
656
- 50% { opacity: 0.35; }
657
- }
658
- h1,
659
- h2 {
660
- margin: 0;
661
- color: var(--idp-fg);
662
- font-family: var(--idp-display);
663
- letter-spacing: -0.025em;
664
- }
665
- h1 {
666
- font-size: 26px;
667
- font-weight: 700;
668
- line-height: 1.1;
669
- }
670
- .lead {
671
- margin-top: 4px;
672
- color: var(--idp-muted-fg);
673
- font-size: 13px;
674
- }
675
- .lead code,
676
- .mono {
677
- color: var(--idp-info);
678
- font-family: var(--idp-mono);
679
- }
680
- .page-actions {
681
- display: flex;
682
- align-items: center;
683
- gap: 12px;
684
- }
685
- .tabs {
686
- display: inline-flex;
687
- gap: 1px;
688
- padding: 2px;
689
- border: 1px solid var(--idp-border);
690
- border-radius: 6px;
691
- background: var(--idp-bg-2);
692
- }
693
- .tab {
694
- padding: 4px 10px;
695
- border-radius: 4px;
696
- color: var(--idp-muted-fg);
697
- font-family: var(--idp-mono);
698
- font-size: 11px;
699
- font-weight: 500;
700
- }
701
- .tab.active {
702
- background: var(--idp-muted);
703
- color: var(--idp-fg);
704
- }
705
- .plain-button {
706
- display: inline-flex;
707
- align-items: center;
708
- gap: 6px;
709
- height: 28px;
710
- padding: 5px 10px;
711
- border-radius: 8px;
712
- background: transparent;
713
- color: var(--idp-fg);
714
- font-size: 12px;
715
- font-weight: 500;
716
- white-space: nowrap;
717
- }
718
- .plain-button.outline {
719
- border: 1px solid var(--idp-border);
720
- }
721
- .plain-button.primary {
722
- background: var(--idp-accent);
723
- color: var(--idp-accent-fg);
724
- }
725
- .plain-button.destructive {
726
- background: var(--idp-destructive);
727
- color: var(--idp-accent-fg);
728
- }
729
- .plain-button.ghost {
730
- color: var(--idp-fg);
731
- }
732
- .plain-button:disabled {
733
- opacity: 0.45;
734
- cursor: not-allowed;
735
- }
736
- .body {
737
- display: flex;
738
- flex-direction: column;
739
- gap: 16px;
740
- padding: 20px 28px 32px;
741
- }
742
- .narrow-body {
743
- max-width: 700px;
744
- }
745
- .wide-body {
746
- max-width: 860px;
747
- }
748
503
  .section-card {
749
504
  margin-bottom: 16px;
750
505
  padding: 20px;
@@ -963,135 +718,6 @@ let IdpAdminShell = (() => {
963
718
  font-weight: 500;
964
719
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
965
720
  }
966
- .kpis {
967
- display: grid;
968
- grid-template-columns: repeat(4, 1fr);
969
- gap: 12px;
970
- }
971
- .kpi,
972
- .card {
973
- border: 1px solid var(--idp-border);
974
- background: var(--idp-card);
975
- }
976
- .kpi {
977
- position: relative;
978
- min-height: 132px;
979
- display: flex;
980
- flex-direction: column;
981
- gap: 4px;
982
- overflow: hidden;
983
- padding: 18px 20px 14px;
984
- border-radius: 10px;
985
- }
986
- .kpi::before {
987
- content: '';
988
- position: absolute;
989
- top: 0;
990
- left: 0;
991
- right: 0;
992
- height: 2px;
993
- background: var(--kpi-accent);
994
- }
995
- .kpi-label {
996
- color: var(--idp-muted-fg);
997
- font-size: 11.5px;
998
- font-weight: 500;
999
- letter-spacing: 0.02em;
1000
- }
1001
- .kpi-value {
1002
- color: var(--idp-fg);
1003
- font-family: var(--idp-display);
1004
- font-size: 30px;
1005
- font-weight: 700;
1006
- font-variant-numeric: tabular-nums;
1007
- letter-spacing: -0.025em;
1008
- line-height: 1.1;
1009
- }
1010
- .kpi-value span {
1011
- margin-left: 2px;
1012
- color: var(--idp-muted-fg);
1013
- font-size: 14px;
1014
- font-weight: 500;
1015
- }
1016
- .kpi-sub {
1017
- color: var(--idp-fg-3);
1018
- font-family: var(--idp-mono);
1019
- font-size: 11px;
1020
- }
1021
- .kpi-foot {
1022
- display: flex;
1023
- align-items: flex-end;
1024
- justify-content: space-between;
1025
- gap: 8px;
1026
- margin-top: auto;
1027
- }
1028
- .delta {
1029
- display: inline-flex;
1030
- align-items: center;
1031
- gap: 4px;
1032
- color: var(--idp-ok);
1033
- font-family: var(--idp-mono);
1034
- font-size: 11px;
1035
- font-weight: 600;
1036
- }
1037
- .sparkline {
1038
- width: 84px;
1039
- opacity: 0.85;
1040
- }
1041
- .primary-grid,
1042
- .secondary-grid {
1043
- display: grid;
1044
- grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr);
1045
- gap: 16px;
1046
- }
1047
- .card {
1048
- overflow: hidden;
1049
- border-radius: 8px;
1050
- }
1051
- .card-head {
1052
- display: flex;
1053
- align-items: center;
1054
- gap: 10px;
1055
- padding: 12px 16px;
1056
- border-bottom: 1px solid var(--idp-border-soft);
1057
- }
1058
- .card-title {
1059
- color: var(--idp-fg);
1060
- font-size: 13px;
1061
- font-weight: 600;
1062
- }
1063
- .feed-dot {
1064
- display: inline-block;
1065
- width: 8px;
1066
- height: 8px;
1067
- border-radius: 4px;
1068
- background: var(--dot-color);
1069
- box-shadow: var(--dot-glow, none);
1070
- }
1071
- .feed-meta {
1072
- color: var(--idp-muted-fg);
1073
- font-family: var(--idp-mono);
1074
- font-size: 11.5px;
1075
- }
1076
- .feed-item {
1077
- display: grid;
1078
- grid-template-columns: 14px 1fr auto;
1079
- gap: 12px;
1080
- align-items: center;
1081
- padding: 11px 16px;
1082
- border-bottom: 1px solid var(--idp-border-soft);
1083
- }
1084
- .feed-item:last-child {
1085
- border-bottom: 0;
1086
- }
1087
- .feed-text {
1088
- color: var(--idp-fg-2);
1089
- font-size: 12.5px;
1090
- }
1091
- .feed-text strong {
1092
- color: var(--idp-fg);
1093
- font-weight: 600;
1094
- }
1095
721
  .dialog-backdrop {
1096
722
  position: fixed;
1097
723
  inset: 0;
@@ -1191,29 +817,11 @@ let IdpAdminShell = (() => {
1191
817
  .shell {
1192
818
  grid-template-columns: 1fr;
1193
819
  }
1194
- .sidebar {
820
+ idp-admin-sidebar {
1195
821
  display: none;
1196
822
  }
1197
- .kpis {
1198
- grid-template-columns: repeat(2, 1fr);
1199
- }
1200
- .primary-grid,
1201
- .secondary-grid {
1202
- grid-template-columns: 1fr;
1203
- }
1204
823
  }
1205
824
  @media (max-width: 720px) {
1206
- .page-head,
1207
- .body {
1208
- padding-left: 20px;
1209
- padding-right: 20px;
1210
- }
1211
- .page-actions {
1212
- flex-wrap: wrap;
1213
- }
1214
- .kpis {
1215
- grid-template-columns: 1fr;
1216
- }
1217
825
  .mapping-row {
1218
826
  grid-template-columns: 1fr;
1219
827
  }
@@ -1289,10 +897,38 @@ let IdpAdminShell = (() => {
1289
897
  #credentialMessage_accessor_storage = (__runInitializers(this, _passkeys_extraInitializers), __runInitializers(this, _credentialMessage_initializers, ''));
1290
898
  get credentialMessage() { return this.#credentialMessage_accessor_storage; }
1291
899
  set credentialMessage(value) { this.#credentialMessage_accessor_storage = value; }
1292
- #orgMenuOpen_accessor_storage = (__runInitializers(this, _credentialMessage_extraInitializers), __runInitializers(this, _orgMenuOpen_initializers, false));
1293
- get orgMenuOpen() { return this.#orgMenuOpen_accessor_storage; }
1294
- set orgMenuOpen(value) { this.#orgMenuOpen_accessor_storage = value; }
1295
- #currentPassword_accessor_storage = (__runInitializers(this, _orgMenuOpen_extraInitializers), __runInitializers(this, _currentPassword_initializers, ''));
900
+ #accounts_accessor_storage = (__runInitializers(this, _credentialMessage_extraInitializers), __runInitializers(this, _accounts_initializers, []));
901
+ get accounts() { return this.#accounts_accessor_storage; }
902
+ set accounts(value) { this.#accounts_accessor_storage = value; }
903
+ #gaUsers_accessor_storage = (__runInitializers(this, _accounts_extraInitializers), __runInitializers(this, _gaUsers_initializers, []));
904
+ get gaUsers() { return this.#gaUsers_accessor_storage; }
905
+ set gaUsers(value) { this.#gaUsers_accessor_storage = value; }
906
+ #overviewData_accessor_storage = (__runInitializers(this, _gaUsers_extraInitializers), __runInitializers(this, _overviewData_initializers, null));
907
+ get overviewData() { return this.#overviewData_accessor_storage; }
908
+ set overviewData(value) { this.#overviewData_accessor_storage = value; }
909
+ #delegationApps_accessor_storage = (__runInitializers(this, _overviewData_extraInitializers), __runInitializers(this, _delegationApps_initializers, []));
910
+ get delegationApps() { return this.#delegationApps_accessor_storage; }
911
+ set delegationApps(value) { this.#delegationApps_accessor_storage = value; }
912
+ #delegations_accessor_storage = (__runInitializers(this, _delegationApps_extraInitializers), __runInitializers(this, _delegations_initializers, []));
913
+ get delegations() { return this.#delegations_accessor_storage; }
914
+ set delegations(value) { this.#delegations_accessor_storage = value; }
915
+ #logoutEverywhere_accessor_storage = (__runInitializers(this, _delegations_extraInitializers), __runInitializers(this, _logoutEverywhere_initializers, false));
916
+ get logoutEverywhere() { return this.#logoutEverywhere_accessor_storage; }
917
+ set logoutEverywhere(value) { this.#logoutEverywhere_accessor_storage = value; }
918
+ #createOrgName_accessor_storage = (__runInitializers(this, _logoutEverywhere_extraInitializers), __runInitializers(this, _createOrgName_initializers, ''));
919
+ get createOrgName() { return this.#createOrgName_accessor_storage; }
920
+ set createOrgName(value) { this.#createOrgName_accessor_storage = value; }
921
+ #createOrgSlug_accessor_storage = (__runInitializers(this, _createOrgName_extraInitializers), __runInitializers(this, _createOrgSlug_initializers, ''));
922
+ get createOrgSlug() { return this.#createOrgSlug_accessor_storage; }
923
+ set createOrgSlug(value) { this.#createOrgSlug_accessor_storage = value; }
924
+ #gaUserSearch_accessor_storage = (__runInitializers(this, _createOrgSlug_extraInitializers), __runInitializers(this, _gaUserSearch_initializers, ''));
925
+ get gaUserSearch() { return this.#gaUserSearch_accessor_storage; }
926
+ set gaUserSearch(value) { this.#gaUserSearch_accessor_storage = value; }
927
+ #toast_accessor_storage = (__runInitializers(this, _gaUserSearch_extraInitializers), __runInitializers(this, _toast_initializers, null));
928
+ get toast() { return this.#toast_accessor_storage; }
929
+ set toast(value) { this.#toast_accessor_storage = value; }
930
+ toastTimer = (__runInitializers(this, _toast_extraInitializers), null);
931
+ #currentPassword_accessor_storage = __runInitializers(this, _currentPassword_initializers, '');
1296
932
  get currentPassword() { return this.#currentPassword_accessor_storage; }
1297
933
  set currentPassword(value) { this.#currentPassword_accessor_storage = value; }
1298
934
  #newPassword_accessor_storage = (__runInitializers(this, _currentPassword_extraInitializers), __runInitializers(this, _newPassword_initializers, ''));
@@ -1358,29 +994,6 @@ let IdpAdminShell = (() => {
1358
994
  #dialogAppMappings_accessor_storage = (__runInitializers(this, _dialogApp_extraInitializers), __runInitializers(this, _dialogAppMappings_initializers, []));
1359
995
  get dialogAppMappings() { return this.#dialogAppMappings_accessor_storage; }
1360
996
  set dialogAppMappings(value) { this.#dialogAppMappings_accessor_storage = value; }
1361
- workspaceNav = (__runInitializers(this, _dialogAppMappings_extraInitializers), [
1362
- { id: 'overview', label: 'Overview', icon: 'grid' },
1363
- ]);
1364
- accountNav = [
1365
- { id: 'profile', label: 'Profile', icon: 'user' },
1366
- { id: 'security', label: 'Security', icon: 'shield' },
1367
- { id: 'sessions', label: 'Sessions & Devices', icon: 'monitor' },
1368
- { id: 'apps', label: 'Connected Apps', icon: 'grid' },
1369
- ];
1370
- orgNav = [
1371
- { id: 'org-general', label: 'General', icon: 'building' },
1372
- { id: 'org-settings', label: 'Settings', icon: 'settings' },
1373
- { id: 'org-members', label: 'Members', icon: 'users' },
1374
- { id: 'org-apps', label: 'OAuth Apps', icon: 'box' },
1375
- ];
1376
- supportNav = [
1377
- { id: 'support', label: 'Support', icon: 'shield' },
1378
- ];
1379
- adminNav = [
1380
- { id: 'ga-users', label: 'All Users', icon: 'users' },
1381
- { id: 'ga-orgs', label: 'All Organisations', icon: 'building' },
1382
- { id: 'ga-apps', label: 'Platform Apps', icon: 'globe' },
1383
- ];
1384
997
  get safeOrgs() {
1385
998
  return Array.isArray(this.orgs) ? this.orgs.filter(Boolean) : [];
1386
999
  }
@@ -1592,32 +1205,73 @@ let IdpAdminShell = (() => {
1592
1205
  }
1593
1206
  setPage(pageArg) {
1594
1207
  this.page = pageArg;
1595
- this.orgMenuOpen = false;
1596
1208
  this.dispatchEvent(new CustomEvent('idp-admin-navigate', {
1597
1209
  detail: { page: pageArg },
1598
1210
  bubbles: true,
1599
1211
  composed: true,
1600
1212
  }));
1601
1213
  }
1602
- selectOrg(orgIdArg) {
1603
- this.selectedOrgId = orgIdArg;
1604
- this.orgMenuOpen = false;
1214
+ handleSidebarNavigate(eventArg) {
1215
+ this.page = eventArg.detail.page;
1216
+ }
1217
+ handleSidebarOrgSelect(eventArg) {
1218
+ this.selectedOrgId = eventArg.detail.orgId;
1605
1219
  this.page = 'org-general';
1606
- this.dispatchEvent(new CustomEvent('idp-admin-org-select', {
1607
- detail: {
1608
- orgId: orgIdArg,
1609
- org: this.orgs.find((orgArg) => orgArg.id === orgIdArg) || null,
1610
- },
1611
- bubbles: true,
1612
- composed: true,
1613
- }));
1614
1220
  }
1615
1221
  requestOrgCreate() {
1616
- this.orgMenuOpen = false;
1617
- this.dispatchEvent(new CustomEvent('idp-admin-org-create', {
1618
- bubbles: true,
1619
- composed: true,
1620
- }));
1222
+ this.createOrgName = '';
1223
+ this.createOrgSlug = '';
1224
+ this.dialogError = '';
1225
+ this.dialogMode = 'create-org';
1226
+ }
1227
+ slugify(valueArg) {
1228
+ return valueArg
1229
+ .toLowerCase()
1230
+ .replace(/[^a-z0-9]/g, '-')
1231
+ .replace(/-+/g, '-')
1232
+ .replace(/^-|-$/g, '');
1233
+ }
1234
+ setCreateOrgName(eventArg) {
1235
+ const value = eventArg.target.value;
1236
+ this.createOrgName = value;
1237
+ this.createOrgSlug = this.slugify(value);
1238
+ }
1239
+ submitCreateOrg() {
1240
+ if (!this.createOrgName.trim()) {
1241
+ this.dialogError = 'Enter an organisation name.';
1242
+ return;
1243
+ }
1244
+ this.dispatchShellEvent('idp-admin-org-create', {
1245
+ name: this.createOrgName.trim(),
1246
+ slug: this.createOrgSlug || this.slugify(this.createOrgName),
1247
+ });
1248
+ this.closeDialog();
1249
+ }
1250
+ requestLogout() {
1251
+ this.logoutEverywhere = false;
1252
+ this.dialogMode = 'logout-confirm';
1253
+ }
1254
+ confirmLogout() {
1255
+ const everywhere = this.logoutEverywhere;
1256
+ this.closeDialog();
1257
+ this.dispatchShellEvent('idp-admin-logout', { everywhere });
1258
+ }
1259
+ showToast(messageArg, toneArg = 'ok') {
1260
+ this.toast = { message: messageArg, tone: toneArg };
1261
+ if (this.toastTimer) {
1262
+ clearTimeout(this.toastTimer);
1263
+ }
1264
+ this.toastTimer = setTimeout(() => {
1265
+ this.toast = null;
1266
+ this.toastTimer = null;
1267
+ }, 3000);
1268
+ }
1269
+ async disconnectedCallback() {
1270
+ if (this.toastTimer) {
1271
+ clearTimeout(this.toastTimer);
1272
+ this.toastTimer = null;
1273
+ }
1274
+ await super.disconnectedCallback();
1621
1275
  }
1622
1276
  dispatchShellEvent(eventNameArg, detailArg) {
1623
1277
  this.dispatchEvent(new CustomEvent(eventNameArg, {
@@ -1627,31 +1281,10 @@ let IdpAdminShell = (() => {
1627
1281
  }));
1628
1282
  }
1629
1283
  formatTimeAgo(timestampArg) {
1630
- if (!timestampArg) {
1631
- return 'unknown';
1632
- }
1633
- const diff = Date.now() - timestampArg;
1634
- const minutes = Math.floor(diff / 60000);
1635
- const hours = Math.floor(diff / 3600000);
1636
- const days = Math.floor(diff / 86400000);
1637
- if (minutes < 1)
1638
- return 'just now';
1639
- if (minutes < 60)
1640
- return `${minutes}m ago`;
1641
- if (hours < 24)
1642
- return `${hours}h ago`;
1643
- if (days < 7)
1644
- return `${days}d ago`;
1645
- return new Date(timestampArg).toLocaleDateString();
1284
+ return formatAdminTimeAgo(timestampArg);
1646
1285
  }
1647
1286
  renderStateCard(titleArg, descriptionArg, iconArg = 'box') {
1648
- return html `
1649
- <div class="state-card">
1650
- <span class="state-icon"><idp-icon name=${iconArg} size="17"></idp-icon></span>
1651
- <div class="state-title">${titleArg}</div>
1652
- <div class="state-description">${descriptionArg}</div>
1653
- </div>
1654
- `;
1287
+ return renderAdminStateCard(titleArg, descriptionArg, iconArg);
1655
1288
  }
1656
1289
  renderDataState(emptyTitleArg, emptyDescriptionArg, iconArg = 'box') {
1657
1290
  if (this.dataLoading) {
@@ -1948,6 +1581,47 @@ let IdpAdminShell = (() => {
1948
1581
  <button class="plain-button primary" @click=${() => this.submitAppRoleMappingsDialog()}>Save mappings</button>
1949
1582
  </div>
1950
1583
  </div>
1584
+ `;
1585
+ }
1586
+ renderCreateOrgDialog() {
1587
+ return html `
1588
+ <div class="dialog-card" @click=${(eventArg) => eventArg.stopPropagation()}>
1589
+ <div class="dialog-head">
1590
+ <div><div class="dialog-title">Create organisation</div><div class="muted">Organisations group members, roles, and OAuth apps.</div></div>
1591
+ <button class="plain-button ghost" @click=${() => this.closeDialog()}>Close</button>
1592
+ </div>
1593
+ <div class="dialog-body">
1594
+ ${this.renderDialogError()}
1595
+ ${this.renderFormRow('Organisation name', 'Shown to members and in app consent screens.', html `<input class="input" placeholder="Acme Corp" .value=${this.createOrgName} @input=${(eventArg) => this.setCreateOrgName(eventArg)} />`, true)}
1596
+ ${this.renderFormRow('URL slug', 'Public identifier under idp.global/', html `<input class="input" placeholder="acme-corp" .value=${this.createOrgSlug} @input=${(eventArg) => { this.createOrgSlug = this.slugify(eventArg.target.value); }} />`)}
1597
+ </div>
1598
+ <div class="dialog-actions">
1599
+ <button class="plain-button outline" @click=${() => this.closeDialog()}>Cancel</button>
1600
+ <button class="plain-button primary" ?disabled=${!this.createOrgName.trim()} @click=${() => this.submitCreateOrg()}>Create</button>
1601
+ </div>
1602
+ </div>
1603
+ `;
1604
+ }
1605
+ renderLogoutConfirmDialog() {
1606
+ const otherSessionCount = this.sessions.filter((sessionArg) => !sessionArg.isCurrent).length;
1607
+ return html `
1608
+ <div class="dialog-card" @click=${(eventArg) => eventArg.stopPropagation()}>
1609
+ <div class="dialog-head">
1610
+ <div><div class="dialog-title">Sign out?</div></div>
1611
+ <button class="plain-button ghost" @click=${() => this.closeDialog()}>Close</button>
1612
+ </div>
1613
+ <div class="dialog-body">
1614
+ <div class="muted">You'll be signed out of idp.global on this device. Apps you've signed into with idp.global keep their own sessions.</div>
1615
+ <label class="logout-everywhere-row">
1616
+ <idp-toggle .checked=${this.logoutEverywhere} @idp-toggle-change=${(eventArg) => { this.logoutEverywhere = !!eventArg.detail?.checked; }}></idp-toggle>
1617
+ <span>Also sign out of all other devices${otherSessionCount ? html ` <span class="muted">(${otherSessionCount} other ${otherSessionCount === 1 ? 'session' : 'sessions'})</span>` : html ``}</span>
1618
+ </label>
1619
+ </div>
1620
+ <div class="dialog-actions">
1621
+ <button class="plain-button outline" @click=${() => this.closeDialog()}>Cancel</button>
1622
+ <button class="plain-button destructive" @click=${() => this.confirmLogout()}>${this.logoutEverywhere ? 'Sign out everywhere' : 'Sign out'}</button>
1623
+ </div>
1624
+ </div>
1951
1625
  `;
1952
1626
  }
1953
1627
  renderDialog() {
@@ -1960,106 +1634,13 @@ let IdpAdminShell = (() => {
1960
1634
  ? this.renderRoleDeleteDialog()
1961
1635
  : this.dialogMode === 'member-roles'
1962
1636
  ? this.renderMemberRolesDialog()
1963
- : this.renderAppRoleMappingsDialog();
1637
+ : this.dialogMode === 'create-org'
1638
+ ? this.renderCreateOrgDialog()
1639
+ : this.dialogMode === 'logout-confirm'
1640
+ ? this.renderLogoutConfirmDialog()
1641
+ : this.renderAppRoleMappingsDialog();
1964
1642
  return html `<div class="dialog-backdrop" @click=${() => this.closeDialog()}>${dialog}</div>`;
1965
1643
  }
1966
- renderNavGroup(items, active = '') {
1967
- return html `
1968
- <div class="nav-list">
1969
- ${items.map((item) => html `
1970
- <button class="nav-item ${item.id === active ? 'active' : ''}" @click=${() => this.setPage(item.id)}>
1971
- <idp-icon name=${item.icon} size="14"></idp-icon>
1972
- ${item.label}
1973
- ${item.badge ? html `<idp-badge variant="accent" style="margin-left:auto">${item.badge}</idp-badge>` : html ``}
1974
- </button>
1975
- `)}
1976
- </div>
1977
- `;
1978
- }
1979
- renderSidebar() {
1980
- const currentOrg = this.currentOrg;
1981
- return html `
1982
- <aside class="sidebar">
1983
- <div class="logo-block">
1984
- <div class="logo">
1985
- <div class="logo-icon" aria-hidden="true">
1986
- <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
1987
- <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
1988
- </svg>
1989
- </div>
1990
- <span class="logo-text">idp.global</span>
1991
- </div>
1992
- </div>
1993
- <div class="nav-wrap">
1994
- <div class="nav-section"><div class="nav-title">Workspace</div>${this.renderNavGroup(this.workspaceNav, this.page)}</div>
1995
- <div class="nav-section"><div class="nav-title">My Account</div>${this.renderNavGroup(this.accountNav, this.page)}</div>
1996
- <div class="nav-section">
1997
- <div class="nav-title">Organisation</div>
1998
- <div class="org-switch-wrap">
1999
- <button class="org-switch ${this.orgMenuOpen ? 'open' : ''}" @click=${() => { this.orgMenuOpen = !this.orgMenuOpen; }}>
2000
- <span class="org-avatar">${currentOrg.name.slice(0, 2).toUpperCase()}</span>
2001
- <span class="org-name">${currentOrg.name}</span>
2002
- <idp-icon name="chevron-down" size="10"></idp-icon>
2003
- </button>
2004
- ${this.orgMenuOpen ? html `
2005
- <div class="org-menu">
2006
- <div class="org-menu-title">Switch organisation</div>
2007
- ${this.safeOrgs.map((orgArg) => html `
2008
- <button class="org-menu-item ${orgArg.id === this.selectedOrgId ? 'selected' : ''}" @click=${() => this.selectOrg(orgArg.id)}>
2009
- <span class="org-avatar">${orgArg.name.slice(0, 2).toUpperCase()}</span>
2010
- <span style="flex:1;min-width:0"><span class="org-menu-name">${orgArg.name}</span><span class="org-menu-role">${orgArg.myRole || 'member'}</span></span>
2011
- ${orgArg.id === this.selectedOrgId ? html `<idp-icon name="check" size="11"></idp-icon>` : html ``}
2012
- </button>
2013
- `)}
2014
- <div class="org-menu-divider"></div>
2015
- <button class="org-create" @click=${() => this.requestOrgCreate()}><span class="org-create-icon"><idp-icon name="plus" size="9"></idp-icon></span>Create organisation</button>
2016
- </div>
2017
- ` : html ``}
2018
- </div>
2019
- ${this.renderNavGroup(this.orgNav, this.page)}
2020
- </div>
2021
- <div class="nav-section"><div class="nav-title">Support</div>${this.renderNavGroup(this.supportNav, this.page)}</div>
2022
- ${this.globalAdmin ? html `<div class="nav-section"><div class="nav-title">Global Admin</div>${this.renderNavGroup(this.adminNav, this.page)}</div>` : html ``}
2023
- </div>
2024
- <div class="user-footer">
2025
- <span class="user-avatar">${this.userInitials}</span>
2026
- <div class="user-meta"><div class="user-name">${this.user?.name || 'Unknown User'}</div><div class="user-email">${this.user?.email || 'No email'}</div></div>
2027
- </div>
2028
- </aside>
2029
- `;
2030
- }
2031
- renderSparkline(data, color) {
2032
- const max = Math.max(...data);
2033
- const min = Math.min(...data);
2034
- const range = max - min || 1;
2035
- const width = 100;
2036
- const height = 22;
2037
- const points = data.map((valueArg, indexArg) => {
2038
- const x = (indexArg / (data.length - 1)) * width;
2039
- const y = height - ((valueArg - min) / range) * (height - 4) - 2;
2040
- return `${x},${y}`;
2041
- }).join(' ');
2042
- const area = `0,${height} ${points} ${width},${height}`;
2043
- return html `
2044
- <svg viewBox="0 0 ${width} ${height}" preserveAspectRatio="none">
2045
- <polygon points=${area} fill=${color} opacity="0.12"></polygon>
2046
- <polyline points=${points} fill="none" stroke=${color} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></polyline>
2047
- </svg>
2048
- `;
2049
- }
2050
- renderKpi(kpi) {
2051
- return html `
2052
- <div class="kpi" style="--kpi-accent:${kpi.accent}">
2053
- <div class="kpi-label">${kpi.label}</div>
2054
- <div class="kpi-value">${kpi.value}${kpi.unit ? html `<span>${kpi.unit}</span>` : html ``}</div>
2055
- <div class="kpi-sub">${kpi.sub}</div>
2056
- <div class="kpi-foot">
2057
- <span class="delta">${kpi.deltaKind === 'live' ? html `<span class="live-dot"></span>` : html ``}${kpi.delta}</span>
2058
- <div class="sparkline">${this.renderSparkline(kpi.spark, kpi.sparkColor)}</div>
2059
- </div>
2060
- </div>
2061
- `;
2062
- }
2063
1644
  renderPageHeader(titleArg, descriptionArg, actionArg) {
2064
1645
  return html `
2065
1646
  <header class="page-head">
@@ -2093,78 +1674,17 @@ let IdpAdminShell = (() => {
2093
1674
  return html `<div class="code-block"><code>${valueArg}</code><idp-icon name="copy" size="13"></idp-icon></div>`;
2094
1675
  }
2095
1676
  renderOverview() {
2096
- const firstName = this.user?.name?.split(' ')[0] || 'there';
2097
- const activeSessionCount = this.sessions.filter((sessionArg) => sessionArg.isCurrent).length || this.sessions.length;
2098
- const activePassportCount = this.passportDevices.filter((deviceArg) => deviceArg.status === 'active').length;
2099
- const kpis = [
2100
- {
2101
- label: 'Organisations',
2102
- value: String(this.orgs.length),
2103
- delta: 'live',
2104
- deltaKind: 'live',
2105
- spark: [1, 1, 1, 1, 1, 1, 1, Math.max(this.orgs.length, 1)],
2106
- sparkColor: 'var(--idp-spark-info)',
2107
- accent: 'var(--idp-chart-1)',
2108
- sub: 'Memberships visible to this account',
2109
- },
2110
- {
2111
- label: 'Sessions',
2112
- value: String(this.sessions.length),
2113
- delta: `${activeSessionCount} active`,
2114
- deltaKind: 'up',
2115
- spark: [1, 2, 1, 2, 3, 2, Math.max(this.sessions.length, 1)],
2116
- sparkColor: 'var(--idp-spark-up)',
2117
- accent: 'var(--idp-chart-2)',
2118
- sub: this.sessions.length ? `Latest ${this.formatTimeAgo(Math.max(...this.sessions.map((sessionArg) => sessionArg.lastActive)))}` : 'No active sessions loaded',
2119
- },
2120
- {
2121
- label: 'Passport devices',
2122
- value: String(this.passportDevices.length),
2123
- delta: `${activePassportCount} active`,
2124
- deltaKind: 'live',
2125
- spark: [1, 1, 1, Math.max(this.passportDevices.length, 1)],
2126
- sparkColor: 'var(--idp-spark-info)',
2127
- accent: 'var(--idp-chart-5)',
2128
- sub: 'Cryptographic credentials',
2129
- },
2130
- {
2131
- label: 'Activity',
2132
- value: String(this.activities.length),
2133
- delta: 'live',
2134
- deltaKind: 'live',
2135
- spark: [1, 2, 2, 3, Math.max(this.activities.length, 1)],
2136
- sparkColor: 'var(--idp-spark-info)',
2137
- accent: 'var(--idp-info)',
2138
- sub: 'Recent account events',
2139
- },
2140
- ];
2141
1677
  return html `
2142
- <header class="page-head">
2143
- <div>
2144
- <div class="eyebrow-row"><span class="eyebrow">Account - Overview</span><span class="live-pill"><span class="live-dot"></span>live</span></div>
2145
- <h1>Good morning, ${firstName}.</h1>
2146
- <div class="lead">Account-wide operational snapshot using live identity data.</div>
2147
- </div>
2148
- <div class="page-actions"><button class="plain-button outline" @click=${() => this.setPage('sessions')}>Review sessions</button><button class="plain-button primary" @click=${() => this.setPage('security')}>Manage security</button></div>
2149
- </header>
2150
- <div class="body">
2151
- <div class="kpis">${kpis.map((kpiArg) => this.renderKpi(kpiArg))}</div>
2152
- ${this.dataLoading || this.dataError ? this.renderDataState('No overview data', 'The console has not received live account data yet.', 'activity') : html ``}
2153
- <div class="primary-grid">
2154
- <div class="card">
2155
- <div class="card-head"><span class="card-title">Recent activity</span><idp-badge>${this.activities.length} events</idp-badge></div>
2156
- ${this.activities.length ? this.activities.slice(0, 8).map((activityArg) => html `
2157
- <div class="feed-item"><span class="feed-dot" style="--dot-color:var(--idp-info)"></span><div class="feed-text"><strong>${activityArg.action.replace(/_/g, ' ')}</strong> - ${activityArg.description}</div><span class="feed-meta">${this.formatTimeAgo(activityArg.timestamp)}</span></div>
2158
- `) : this.renderStateCard('No activity yet', 'Activity events will appear here after logins, app changes, and organisation updates.', 'activity')}
2159
- </div>
2160
- <div class="card">
2161
- <div class="card-head"><span class="card-title">Current sessions</span><idp-badge>${this.sessions.length} total</idp-badge></div>
2162
- ${this.sessions.length ? this.sessions.slice(0, 5).map((sessionArg) => html `
2163
- <div class="feed-item"><span class="feed-dot" style="--dot-color:${sessionArg.isCurrent ? 'var(--idp-ok)' : 'var(--idp-muted-fg)'}"></span><div class="feed-text"><strong>${sessionArg.deviceName || 'Unknown device'}</strong> - <span class="mono">${sessionArg.browser} ${sessionArg.os}</span></div><span class="feed-meta">${this.formatTimeAgo(sessionArg.lastActive)}</span></div>
2164
- `) : this.renderStateCard('No sessions loaded', 'Active session telemetry is unavailable or there are no sessions.', 'monitor')}
2165
- </div>
2166
- </div>
2167
- </div>
1678
+ <idp-admin-overview
1679
+ .user=${this.user}
1680
+ .orgs=${this.orgs}
1681
+ .sessions=${this.sessions}
1682
+ .activities=${this.activities}
1683
+ .passportDevices=${this.passportDevices}
1684
+ .dataLoading=${this.dataLoading}
1685
+ .dataError=${this.dataError}
1686
+ .overviewData=${this.overviewData}
1687
+ ></idp-admin-overview>
2168
1688
  `;
2169
1689
  }
2170
1690
  renderProfile() {
@@ -2181,6 +1701,9 @@ let IdpAdminShell = (() => {
2181
1701
  ${this.renderFormRow('Mobile number', 'Used for SMS verification', html `<input class="input" .value=${this.user?.mobileNumber || ''} disabled />`)}
2182
1702
  `)}
2183
1703
  ${this.renderSectionCard('Account status', '', html `<div class="split-row"><div><div class="section-title">Status</div><div class="muted">Your account is currently ${status}.</div></div><idp-badge variant=${status === 'active' ? 'ok' : status === 'suspended' ? 'error' : 'warn'}>${status}</idp-badge></div>${this.globalAdmin ? html `<div class="divider"></div><div class="split-row"><div><div class="section-title">Global admin</div><div class="muted">You have platform-wide administrative access.</div></div><idp-badge variant="accent">Admin</idp-badge></div>` : html ``}`)}
1704
+ ${this.delegationApps.length
1705
+ ? html `<idp-delegation-section .apps=${this.delegationApps} .delegations=${this.delegations}></idp-delegation-section>`
1706
+ : html ``}
2184
1707
  </div>
2185
1708
  `;
2186
1709
  }
@@ -2401,7 +1924,7 @@ let IdpAdminShell = (() => {
2401
1924
  <div class="page-actions"><button class="plain-button outline" @click=${() => this.setPage('org-members')}>Manage members</button><button class="plain-button primary" @click=${() => this.setPage('org-apps')}>Manage apps</button></div>
2402
1925
  </header>
2403
1926
  <div class="body">
2404
- <div class="kpis">${kpis.map((kpiArg) => this.renderKpi(kpiArg))}</div>
1927
+ <div class="kpis">${kpis.map((kpiArg) => renderAdminKpi(kpiArg))}</div>
2405
1928
  ${this.dataLoading || this.dataError ? this.renderDataState('No organisation data', 'The console has not received live organisation data yet.', 'building') : html ``}
2406
1929
  <div class="primary-grid">
2407
1930
  <div class="card">
@@ -2625,9 +2148,59 @@ let IdpAdminShell = (() => {
2625
2148
  `;
2626
2149
  }
2627
2150
  renderGAUsers() {
2628
- return html `${this.renderPageHeader('All Users', 'Platform-wide user administration.')}<div class="body wide-body">${this.renderDataState('User directory not connected', 'The shell is ready for global user data, but no platform user-list endpoint is wired into this app yet. No demo users are shown in production mode.', 'users')}</div>`;
2151
+ if (!this.gaUsers.length) {
2152
+ return html `${this.renderPageHeader('All Users', 'Platform-wide user administration.')}<div class="body wide-body">${this.renderDataState('User directory not connected', 'The shell is ready for global user data, but no platform user-list endpoint is wired into this app yet. No demo users are shown in production mode.', 'users')}</div>`;
2153
+ }
2154
+ const query = this.gaUserSearch.trim().toLowerCase();
2155
+ const filtered = query
2156
+ ? this.gaUsers.filter((userArg) => userArg.name.toLowerCase().includes(query) || userArg.email.toLowerCase().includes(query))
2157
+ : this.gaUsers;
2158
+ const statusVariant = (statusArg) => statusArg === 'active' ? 'ok' : statusArg === 'suspended' ? 'error' : statusArg === 'new' ? 'warn' : 'default';
2159
+ const userRows = filtered.map((userArg) => ({
2160
+ cells: [
2161
+ html `
2162
+ <div class="identity-cell">
2163
+ <idp-avatar name=${userArg.name || userArg.email} size="28"></idp-avatar>
2164
+ <div>
2165
+ <div class="identity-primary">${userArg.name}</div>
2166
+ <div class="identity-secondary">${userArg.email}</div>
2167
+ </div>
2168
+ </div>
2169
+ `,
2170
+ String(userArg.orgCount),
2171
+ html `<idp-badge variant=${statusVariant(userArg.status)}>${userArg.status}</idp-badge>`,
2172
+ userArg.isGlobalAdmin ? html `<idp-badge variant="accent">Admin</idp-badge>` : '-',
2173
+ this.formatTimeAgo(userArg.createdAt),
2174
+ html `<button class="plain-button ghost" style="font-size:11px" @click=${() => this.dispatchShellEvent('idp-admin-ga-user-action', { userId: userArg.id, action: userArg.status === 'suspended' ? 'unsuspend' : 'suspend' })}>${userArg.status === 'suspended' ? 'Unsuspend' : 'Suspend'}</button>`,
2175
+ ],
2176
+ }));
2177
+ return html `
2178
+ ${this.renderPageHeader('All Users', `${this.gaUsers.length} users on the platform`)}
2179
+ <div class="body wide-body">
2180
+ <div style="margin-bottom:12px;max-width:360px">
2181
+ <input class="input" placeholder="Search users…" .value=${this.gaUserSearch} @input=${(eventArg) => { this.gaUserSearch = eventArg.target.value; }} />
2182
+ </div>
2183
+ <idp-data-table
2184
+ title="Users"
2185
+ badge=${`${filtered.length} shown`}
2186
+ empty-title="No matching users"
2187
+ empty-description="No users match the current search."
2188
+ .columns=${[
2189
+ { label: 'User' },
2190
+ { label: 'Orgs', mono: true, hideBelow: 'mobile' },
2191
+ { label: 'Status' },
2192
+ { label: 'Admin', hideBelow: 'mobile' },
2193
+ { label: 'Joined', hideBelow: 'tablet' },
2194
+ { label: '' },
2195
+ ]}
2196
+ .rows=${userRows}
2197
+ ></idp-data-table>
2198
+ </div>
2199
+ `;
2629
2200
  }
2630
2201
  renderGAOrgs() {
2202
+ const planVariant = (planArg) => planArg === 'Pro' ? 'accent' : planArg === 'Enterprise' ? 'ok' : planArg === 'Internal' ? 'warn' : 'default';
2203
+ const hasAdminFields = this.orgs.some((orgArg) => orgArg.status || orgArg.plan);
2631
2204
  const orgRows = this.orgs.map((orgArg) => ({
2632
2205
  cells: [
2633
2206
  html `
@@ -2640,8 +2213,17 @@ let IdpAdminShell = (() => {
2640
2213
  </div>
2641
2214
  `,
2642
2215
  orgArg.slug || '-',
2643
- html `<idp-badge variant=${this.roleVariant(orgArg.myRole || 'member')}>${orgArg.myRole || 'member'}</idp-badge>`,
2644
- orgArg.id,
2216
+ ...(hasAdminFields
2217
+ ? [
2218
+ orgArg.memberCount !== undefined ? String(orgArg.memberCount) : '-',
2219
+ orgArg.plan ? html `<idp-badge variant=${planVariant(orgArg.plan)}>${orgArg.plan}</idp-badge>` : '-',
2220
+ html `<idp-badge variant=${orgArg.status === 'suspended' ? 'error' : 'ok'}>${orgArg.status || 'active'}</idp-badge>`,
2221
+ html `<button class="plain-button ghost" style="font-size:11px" @click=${() => this.dispatchShellEvent('idp-admin-ga-org-action', { orgId: orgArg.id, action: orgArg.status === 'suspended' ? 'unsuspend' : 'suspend' })}>${orgArg.status === 'suspended' ? 'Unsuspend' : 'Suspend'}</button>`,
2222
+ ]
2223
+ : [
2224
+ html `<idp-badge variant=${this.roleVariant(orgArg.myRole || 'member')}>${orgArg.myRole || 'member'}</idp-badge>`,
2225
+ orgArg.id,
2226
+ ]),
2645
2227
  ],
2646
2228
  }));
2647
2229
  return html `
@@ -2652,12 +2234,21 @@ let IdpAdminShell = (() => {
2652
2234
  badge=${`${this.orgs.length} total`}
2653
2235
  empty-title="No organisations"
2654
2236
  empty-description="No organisations are visible to this admin session."
2655
- .columns=${[
2656
- { label: 'Organisation' },
2657
- { label: 'Slug', mono: true, hideBelow: 'mobile' },
2658
- { label: 'Role' },
2659
- { label: 'Identifier', mono: true, hideBelow: 'tablet' },
2660
- ]}
2237
+ .columns=${hasAdminFields
2238
+ ? [
2239
+ { label: 'Organisation' },
2240
+ { label: 'Slug', mono: true, hideBelow: 'mobile' },
2241
+ { label: 'Members', mono: true, hideBelow: 'mobile' },
2242
+ { label: 'Plan' },
2243
+ { label: 'Status' },
2244
+ { label: '' },
2245
+ ]
2246
+ : [
2247
+ { label: 'Organisation' },
2248
+ { label: 'Slug', mono: true, hideBelow: 'mobile' },
2249
+ { label: 'Role' },
2250
+ { label: 'Identifier', mono: true, hideBelow: 'tablet' },
2251
+ ]}
2661
2252
  .rows=${orgRows}
2662
2253
  ></idp-data-table>
2663
2254
  </div>
@@ -2679,7 +2270,15 @@ let IdpAdminShell = (() => {
2679
2270
  html `<idp-badge variant=${appArg.type === 'global' ? 'accent' : 'outline'}>${appArg.type || 'global'}</idp-badge>`,
2680
2271
  appArg.category || '-',
2681
2272
  appArg.connectionCount ?? '-',
2682
- html `<idp-badge variant=${appArg.status === 'suspended' ? 'error' : appArg.status === 'pending_review' ? 'warn' : 'ok'}>${appArg.status || 'active'}</idp-badge>`,
2273
+ html `<idp-badge variant=${appArg.status === 'suspended' || appArg.status === 'rejected' ? 'error' : appArg.status === 'pending_review' ? 'warn' : 'ok'}>${(appArg.status || 'active').replace(/_/g, ' ')}</idp-badge>`,
2274
+ appArg.status === 'pending_review'
2275
+ ? html `
2276
+ <div style="display:flex;gap:4px">
2277
+ <button class="plain-button outline" style="font-size:11px;color:var(--idp-ok);border-color:var(--idp-ok-border)" @click=${() => this.dispatchShellEvent('idp-admin-ga-app-action', { appId: appArg.id, action: 'approve' })}>Approve</button>
2278
+ <button class="plain-button ghost" style="font-size:11px;color:var(--idp-destructive)" @click=${() => this.dispatchShellEvent('idp-admin-ga-app-action', { appId: appArg.id, action: 'reject' })}>Reject</button>
2279
+ </div>
2280
+ `
2281
+ : html `<button class="plain-button ghost" style="font-size:11px" @click=${() => this.dispatchShellEvent('idp-admin-ga-app-action', { appId: appArg.id, action: appArg.status === 'suspended' ? 'reinstate' : 'suspend' })}>${appArg.status === 'suspended' ? 'Reinstate' : 'Suspend'}</button>`,
2683
2282
  ],
2684
2283
  }));
2685
2284
  return html `
@@ -2696,6 +2295,7 @@ let IdpAdminShell = (() => {
2696
2295
  { label: 'Category', hideBelow: 'mobile' },
2697
2296
  { label: 'Connections', align: 'right', mono: true, hideBelow: 'mobile' },
2698
2297
  { label: 'Status' },
2298
+ { label: '' },
2699
2299
  ]}
2700
2300
  .rows=${appRows}
2701
2301
  ></idp-data-table>
@@ -2722,13 +2322,39 @@ let IdpAdminShell = (() => {
2722
2322
  }
2723
2323
  render() {
2724
2324
  return html `
2725
- <div class="shell">
2726
- ${this.renderSidebar()}
2325
+ <div
2326
+ class="shell"
2327
+ @idp-admin-navigate=${this.handleSidebarNavigate}
2328
+ @idp-admin-org-select=${this.handleSidebarOrgSelect}
2329
+ @idp-admin-org-create-request=${this.requestOrgCreate}
2330
+ @idp-admin-logout-request=${this.requestLogout}
2331
+ >
2332
+ <idp-admin-sidebar
2333
+ .page=${this.page}
2334
+ .user=${this.user}
2335
+ .accounts=${this.accounts}
2336
+ .orgs=${this.orgs}
2337
+ .selectedOrgId=${this.selectedOrgId}
2338
+ .globalAdmin=${this.globalAdmin}
2339
+ .sessionCount=${this.sessions.length}
2340
+ ></idp-admin-sidebar>
2727
2341
  <main>${this.renderMainContent()}</main>
2728
2342
  </div>
2729
2343
  ${this.renderDialog()}
2344
+ ${this.toast
2345
+ ? html `
2346
+ <div class="toast ${this.toast.tone}">
2347
+ <idp-icon name=${this.toast.tone === 'ok' ? 'check' : 'alert'} size="14"></idp-icon>
2348
+ <span style="flex:1">${this.toast.message}</span>
2349
+ </div>
2350
+ `
2351
+ : html ``}
2730
2352
  `;
2731
2353
  }
2354
+ constructor() {
2355
+ super(...arguments);
2356
+ __runInitializers(this, _dialogAppMappings_extraInitializers);
2357
+ }
2732
2358
  static {
2733
2359
  __runInitializers(_classThis, _classExtraInitializers);
2734
2360
  }
@@ -2736,4 +2362,4 @@ let IdpAdminShell = (() => {
2736
2362
  return IdpAdminShell = _classThis;
2737
2363
  })();
2738
2364
  export { IdpAdminShell };
2739
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWFkbWluLXNoZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2lkcC1hZG1pbi1zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQzFILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8scUJBQXFCLENBQUM7SUErUWhCLGFBQWE7NEJBRHpCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBbTdCM0MsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBTTFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzt5Q0FHekIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQzt1Q0FHeEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQzt1Q0FHckUsUUFBUSxDQUFDLEVB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
2365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWFkbWluLXNoZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2lkcC1hZG1pbi1zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQzFILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sNkJBQTZCLENBQUM7QUFDckMsT0FBTyx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7SUEwVTdILGFBQWE7NEJBRHpCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBd2YzQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztn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