@ibgib/web-gib 0.0.59 → 0.0.61

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 (92) hide show
  1. package/dist/AUTO-GENERATED-version.d.mts +1 -1
  2. package/dist/AUTO-GENERATED-version.mjs +1 -1
  3. package/dist/helpers.d.mts.map +1 -1
  4. package/dist/helpers.mjs +1 -0
  5. package/dist/helpers.mjs.map +1 -1
  6. package/dist/identity/device-delegate-helper.d.mts +43 -0
  7. package/dist/identity/device-delegate-helper.d.mts.map +1 -0
  8. package/dist/identity/device-delegate-helper.mjs +106 -0
  9. package/dist/identity/device-delegate-helper.mjs.map +1 -0
  10. package/dist/identity/device-delegate.respec.d.mts +2 -0
  11. package/dist/identity/device-delegate.respec.d.mts.map +1 -0
  12. package/dist/identity/device-delegate.respec.mjs +106 -0
  13. package/dist/identity/device-delegate.respec.mjs.map +1 -0
  14. package/dist/identity/identity-constants.mjs +2 -2
  15. package/dist/identity/identity-constants.mjs.map +1 -1
  16. package/dist/identity/identity-types.d.mts +4 -4
  17. package/dist/identity/identity-types.d.mts.map +1 -1
  18. package/dist/identity/keystone-sync-service.d.mts +18 -0
  19. package/dist/identity/keystone-sync-service.d.mts.map +1 -1
  20. package/dist/identity/keystone-sync-service.mjs +77 -1
  21. package/dist/identity/keystone-sync-service.mjs.map +1 -1
  22. package/dist/index.d.mts +1 -1
  23. package/dist/index.d.mts.map +1 -1
  24. package/dist/index.mjs +1 -2
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/storage/storage-helpers.web.d.mts +9 -0
  27. package/dist/storage/storage-helpers.web.d.mts.map +1 -1
  28. package/dist/storage/storage-helpers.web.mjs +42 -0
  29. package/dist/storage/storage-helpers.web.mjs.map +1 -1
  30. package/dist/ui/component/identity/add-device/add-device.css +93 -17
  31. package/dist/ui/component/identity/add-device/add-device.d.mts +24 -7
  32. package/dist/ui/component/identity/add-device/add-device.d.mts.map +1 -1
  33. package/dist/ui/component/identity/add-device/add-device.html +97 -23
  34. package/dist/ui/component/identity/add-device/add-device.mjs +489 -198
  35. package/dist/ui/component/identity/add-device/add-device.mjs.map +1 -1
  36. package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts.map +1 -1
  37. package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs +48 -61
  38. package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs.map +1 -1
  39. package/dist/ui/component/identity/keystone-details/keystone-details.css +1 -1
  40. package/dist/ui/component/identity/keystone-details/keystone-details.d.mts +11 -8
  41. package/dist/ui/component/identity/keystone-details/keystone-details.d.mts.map +1 -1
  42. package/dist/ui/component/identity/keystone-details/keystone-details.html +29 -20
  43. package/dist/ui/component/identity/keystone-details/keystone-details.mjs +358 -97
  44. package/dist/ui/component/identity/keystone-details/keystone-details.mjs.map +1 -1
  45. package/dist/ui/component/identity/remove-device/remove-device.d.mts +1 -1
  46. package/dist/ui/component/identity/remove-device/remove-device.d.mts.map +1 -1
  47. package/dist/ui/component/identity/remove-device/remove-device.html +3 -3
  48. package/dist/ui/component/identity/remove-device/remove-device.mjs +7 -7
  49. package/dist/ui/component/identity/remove-device/remove-device.mjs.map +1 -1
  50. package/dist/ui/ui-constants.d.mts +1 -0
  51. package/dist/ui/ui-constants.d.mts.map +1 -1
  52. package/dist/ui/ui-constants.mjs +1 -0
  53. package/dist/ui/ui-constants.mjs.map +1 -1
  54. package/dist/ui/ui-types.d.mts +5 -0
  55. package/dist/ui/ui-types.d.mts.map +1 -1
  56. package/dist/util/device-helper.d.mts +30 -0
  57. package/dist/util/device-helper.d.mts.map +1 -0
  58. package/dist/util/device-helper.mjs +90 -0
  59. package/dist/util/device-helper.mjs.map +1 -0
  60. package/dist/util/device-helper.respec.d.mts +2 -0
  61. package/dist/util/device-helper.respec.d.mts.map +1 -0
  62. package/dist/util/device-helper.respec.mjs +83 -0
  63. package/dist/util/device-helper.respec.mjs.map +1 -0
  64. package/package.json +3 -3
  65. package/src/AUTO-GENERATED-version.mts +1 -1
  66. package/src/helpers.mts +1 -0
  67. package/src/identity/custodian-delegate-helper.mts.bak +7 -0
  68. package/src/identity/device-delegate-helper.mts +135 -0
  69. package/src/identity/device-delegate.respec.mts +125 -0
  70. package/src/identity/identity-constants.mts +2 -2
  71. package/src/identity/identity-types.mts +4 -4
  72. package/src/identity/keystone-sync-service.mts +95 -2
  73. package/src/index.mts +1 -2
  74. package/src/storage/storage-helpers.web.mts +47 -0
  75. package/src/ui/component/identity/add-device/add-device.css +93 -17
  76. package/src/ui/component/identity/add-device/add-device.html +97 -23
  77. package/src/ui/component/identity/add-device/add-device.mts +579 -208
  78. package/src/ui/component/identity/keystone-creator/keystone-creator.mts +55 -69
  79. package/src/ui/component/identity/keystone-details/keystone-details.css +1 -1
  80. package/src/ui/component/identity/keystone-details/keystone-details.html +29 -20
  81. package/src/ui/component/identity/keystone-details/keystone-details.mts +374 -106
  82. package/src/ui/component/identity/remove-device/remove-device.html +3 -3
  83. package/src/ui/component/identity/remove-device/remove-device.mts +8 -8
  84. package/src/ui/ui-constants.mts +1 -0
  85. package/src/ui/ui-types.mts +6 -0
  86. package/src/util/device-helper.mts +104 -0
  87. package/src/util/device-helper.respec.mts +90 -0
  88. package/dist/identity/custodian-delegate-helper.d.mts +0 -22
  89. package/dist/identity/custodian-delegate-helper.d.mts.map +0 -1
  90. package/dist/identity/custodian-delegate-helper.mjs +0 -50
  91. package/dist/identity/custodian-delegate-helper.mjs.map +0 -1
  92. package/src/identity/custodian-delegate-helper.mts +0 -61
@@ -1,37 +1,111 @@
1
1
  <div id="container" class="component-container">
2
- <h2 id="title">Sign In New Device</h2>
2
+ <h2 id="title">Sign In to Device</h2>
3
3
  <div class="content">
4
- <p>Sign in on this device to add it to an existing account.</p>
4
+ <p id="subtitle" style="margin-bottom: 1.25rem; font-size: 0.95rem; color: #a6adc8;">
5
+ Sign in on this device to link and synchronize your identity.
6
+ </p>
5
7
 
6
- <div class="input-group">
7
- <label for="input-identifier">Email</label>
8
- <input type="text" id="input-identifier" placeholder="Enter registered email..." class="text-input">
9
- </div>
8
+ <!-- ----------------------------------------------------------------- -->
9
+ <!-- Surface 1: Main Sign In Entry Surface -->
10
+ <!-- ----------------------------------------------------------------- -->
11
+ <div id="surface-entry">
12
+ <div class="sso-options"
13
+ style="display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 1.25rem;">
14
+ <button id="btn-google-sso" class="sso-btn google-btn">
15
+ <svg width="18" height="18" viewBox="0 0 24 24">
16
+ <path fill="#4285F4"
17
+ d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" />
18
+ <path fill="#34A853"
19
+ d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" />
20
+ <path fill="#FBBC05"
21
+ d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z" />
22
+ <path fill="#EA4335"
23
+ d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z" />
24
+ </svg>
25
+ Continue with Google
26
+ </button>
27
+ <button id="btn-github-sso" class="sso-btn github-btn">
28
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
29
+ <path
30
+ d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
31
+ </svg>
32
+ Continue with GitHub
33
+ </button>
34
+ </div>
10
35
 
11
- <div class="input-group">
12
- <label for="input-device-tag">Device Name</label>
13
- <input type="text" id="input-device-tag" placeholder="e.g. laptop, phone, living-room..."
14
- class="text-input">
15
- </div>
36
+ <div class="divider">
37
+ <span>OR SIGN IN WITH EMAIL</span>
38
+ </div>
16
39
 
17
- <div class="input-group">
18
- <label for="input-passphrase">Master Passphrase</label>
19
- <input type="password" id="input-passphrase" placeholder="Enter your master passphrase..."
20
- class="secret-input">
40
+ <div class="input-group">
41
+ <label for="input-identifier">Email</label>
42
+ <input type="email" id="input-identifier" placeholder="Enter your registered email..."
43
+ class="text-input">
44
+ </div>
45
+
46
+ <div class="action-row" style="margin-top: 0.75rem;">
47
+ <button id="btn-continue-email" class="action-btn">Continue with Email</button>
48
+ </div>
21
49
  </div>
22
50
 
23
- <div class="checkbox-group" style="margin-bottom: 1.5rem; display: flex; align-items: center; gap: 0.5rem;">
24
- <input type="checkbox" id="checkbox-make-active" checked
25
- style="cursor: pointer; width: 1rem; height: 1rem;">
26
- <label for="checkbox-make-active" style="cursor: pointer; font-size: 0.9rem; user-select: none;">Set as
27
- active device on this browser</label>
51
+ <!-- ----------------------------------------------------------------- -->
52
+ <!-- Surface 2 (Conditional): 6-Digit Email OTP Verification -->
53
+ <!-- ----------------------------------------------------------------- -->
54
+ <div id="section-code-verification" class="input-group hidden"
55
+ style="margin-top: 1.25rem; padding: 1rem; border: 1px dashed #89b4fa; border-radius: 8px; background: rgba(137, 180, 250, 0.05);">
56
+ <label for="input-code" style="font-weight: bold; color: #89b4fa;">✉️ Enter 6-Digit Email Verification
57
+ Code</label>
58
+ <p style="font-size: 0.82rem; color: #a6adc8; margin-top: 0.25rem; margin-bottom: 0.75rem;">Check your email
59
+ for your 6-digit verification code:</p>
60
+ <div style="display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center;">
61
+ <input type="text" id="input-code" maxlength="6" placeholder="123456" class="text-input"
62
+ style="font-family: monospace; font-size: 1.2rem; letter-spacing: 4px; text-align: center; max-width: 160px;">
63
+ <button id="btn-verify-code" class="action-btn" style="white-space: nowrap; width: auto;">Verify
64
+ Code</button>
65
+ </div>
28
66
  </div>
29
67
 
30
- <div class="action-row">
31
- <button id="btn-add-device" class="action-btn">Sign In</button>
68
+ <!-- ----------------------------------------------------------------- -->
69
+ <!-- Surface 3 (Conditional): Sovereign Primary Password Entry -->
70
+ <!-- ----------------------------------------------------------------- -->
71
+ <div id="section-sovereign-password" class="input-group hidden"
72
+ style="margin-top: 1.25rem; padding: 1rem; border: 1px dashed #f59e0b; border-radius: 8px; background: rgba(245, 158, 11, 0.05);">
73
+ <label for="input-password" style="font-weight: bold; color: #f59e0b;">🔐 Primary Password
74
+ Required</label>
75
+ <p style="font-size: 0.82rem; color: #a6adc8; margin-top: 0.25rem; margin-bottom: 0.75rem;">This sovereign
76
+ identity requires your master password to authorize this device:</p>
77
+ <div class="input-group">
78
+ <input type="password" id="input-password" placeholder="Enter your master password..."
79
+ class="secret-input text-input">
80
+ </div>
81
+ <div class="action-row" style="margin-top: 0.5rem;">
82
+ <button id="btn-authorize-password" class="action-btn">Authorize & Pair Device</button>
83
+ </div>
32
84
  </div>
33
85
 
34
- <div class="switch-workflow" style="margin-top: 1.2rem; text-align: center; font-size: 0.9rem; color: #a6adc8;">
86
+ <!-- ----------------------------------------------------------------- -->
87
+ <!-- Advanced Settings (Collapsible Device Tag & Active Toggle) -->
88
+ <!-- ----------------------------------------------------------------- -->
89
+ <details id="details-device-options"
90
+ style="margin-top: 1.25rem; font-size: 0.85rem; color: #a6adc8; cursor: pointer;">
91
+ <summary style="user-select: none; font-weight: 500;">⚙️ Advanced Device Options</summary>
92
+ <div style="padding-top: 0.75rem;">
93
+ <div class="input-group" style="margin-bottom: 0.75rem;">
94
+ <label for="input-device-tag" style="font-size: 0.82rem;">Device Name / Tag</label>
95
+ <input type="text" id="input-device-tag" placeholder="e.g. laptop, phone, living-room..."
96
+ class="text-input" style="font-size: 0.88rem; padding: 0.55rem 0.8rem;">
97
+ </div>
98
+ <div class="checkbox-group" style="display: flex; align-items: center; gap: 0.5rem;">
99
+ <input type="checkbox" id="checkbox-make-active" checked
100
+ style="cursor: pointer; width: 0.95rem; height: 0.95rem;">
101
+ <label for="checkbox-make-active"
102
+ style="cursor: pointer; font-size: 0.82rem; user-select: none;">Set as active identity on this
103
+ browser</label>
104
+ </div>
105
+ </div>
106
+ </details>
107
+
108
+ <div class="switch-workflow" style="margin-top: 1.5rem; text-align: center; font-size: 0.9rem; color: #a6adc8;">
35
109
  Need a new identity? <button id="btn-switch-create-account" class="link-btn"
36
110
  style="background: none; border: none; color: #89b4fa; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 0; font-size: 0.9rem;">Create
37
111
  Account</button>