@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.
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/helpers.d.mts.map +1 -1
- package/dist/helpers.mjs +1 -0
- package/dist/helpers.mjs.map +1 -1
- package/dist/identity/device-delegate-helper.d.mts +43 -0
- package/dist/identity/device-delegate-helper.d.mts.map +1 -0
- package/dist/identity/device-delegate-helper.mjs +106 -0
- package/dist/identity/device-delegate-helper.mjs.map +1 -0
- package/dist/identity/device-delegate.respec.d.mts +2 -0
- package/dist/identity/device-delegate.respec.d.mts.map +1 -0
- package/dist/identity/device-delegate.respec.mjs +106 -0
- package/dist/identity/device-delegate.respec.mjs.map +1 -0
- package/dist/identity/identity-constants.mjs +2 -2
- package/dist/identity/identity-constants.mjs.map +1 -1
- package/dist/identity/identity-types.d.mts +4 -4
- package/dist/identity/identity-types.d.mts.map +1 -1
- package/dist/identity/keystone-sync-service.d.mts +18 -0
- package/dist/identity/keystone-sync-service.d.mts.map +1 -1
- package/dist/identity/keystone-sync-service.mjs +77 -1
- package/dist/identity/keystone-sync-service.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/dist/storage/storage-helpers.web.d.mts +9 -0
- package/dist/storage/storage-helpers.web.d.mts.map +1 -1
- package/dist/storage/storage-helpers.web.mjs +42 -0
- package/dist/storage/storage-helpers.web.mjs.map +1 -1
- package/dist/ui/component/identity/add-device/add-device.css +93 -17
- package/dist/ui/component/identity/add-device/add-device.d.mts +24 -7
- package/dist/ui/component/identity/add-device/add-device.d.mts.map +1 -1
- package/dist/ui/component/identity/add-device/add-device.html +97 -23
- package/dist/ui/component/identity/add-device/add-device.mjs +489 -198
- package/dist/ui/component/identity/add-device/add-device.mjs.map +1 -1
- package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts.map +1 -1
- package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs +48 -61
- package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs.map +1 -1
- package/dist/ui/component/identity/keystone-details/keystone-details.css +1 -1
- package/dist/ui/component/identity/keystone-details/keystone-details.d.mts +11 -8
- package/dist/ui/component/identity/keystone-details/keystone-details.d.mts.map +1 -1
- package/dist/ui/component/identity/keystone-details/keystone-details.html +29 -20
- package/dist/ui/component/identity/keystone-details/keystone-details.mjs +358 -97
- package/dist/ui/component/identity/keystone-details/keystone-details.mjs.map +1 -1
- package/dist/ui/component/identity/remove-device/remove-device.d.mts +1 -1
- package/dist/ui/component/identity/remove-device/remove-device.d.mts.map +1 -1
- package/dist/ui/component/identity/remove-device/remove-device.html +3 -3
- package/dist/ui/component/identity/remove-device/remove-device.mjs +7 -7
- package/dist/ui/component/identity/remove-device/remove-device.mjs.map +1 -1
- package/dist/ui/ui-constants.d.mts +1 -0
- package/dist/ui/ui-constants.d.mts.map +1 -1
- package/dist/ui/ui-constants.mjs +1 -0
- package/dist/ui/ui-constants.mjs.map +1 -1
- package/dist/ui/ui-types.d.mts +5 -0
- package/dist/ui/ui-types.d.mts.map +1 -1
- package/dist/util/device-helper.d.mts +30 -0
- package/dist/util/device-helper.d.mts.map +1 -0
- package/dist/util/device-helper.mjs +90 -0
- package/dist/util/device-helper.mjs.map +1 -0
- package/dist/util/device-helper.respec.d.mts +2 -0
- package/dist/util/device-helper.respec.d.mts.map +1 -0
- package/dist/util/device-helper.respec.mjs +83 -0
- package/dist/util/device-helper.respec.mjs.map +1 -0
- package/package.json +3 -3
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/helpers.mts +1 -0
- package/src/identity/custodian-delegate-helper.mts.bak +7 -0
- package/src/identity/device-delegate-helper.mts +135 -0
- package/src/identity/device-delegate.respec.mts +125 -0
- package/src/identity/identity-constants.mts +2 -2
- package/src/identity/identity-types.mts +4 -4
- package/src/identity/keystone-sync-service.mts +95 -2
- package/src/index.mts +1 -2
- package/src/storage/storage-helpers.web.mts +47 -0
- package/src/ui/component/identity/add-device/add-device.css +93 -17
- package/src/ui/component/identity/add-device/add-device.html +97 -23
- package/src/ui/component/identity/add-device/add-device.mts +579 -208
- package/src/ui/component/identity/keystone-creator/keystone-creator.mts +55 -69
- package/src/ui/component/identity/keystone-details/keystone-details.css +1 -1
- package/src/ui/component/identity/keystone-details/keystone-details.html +29 -20
- package/src/ui/component/identity/keystone-details/keystone-details.mts +374 -106
- package/src/ui/component/identity/remove-device/remove-device.html +3 -3
- package/src/ui/component/identity/remove-device/remove-device.mts +8 -8
- package/src/ui/ui-constants.mts +1 -0
- package/src/ui/ui-types.mts +6 -0
- package/src/util/device-helper.mts +104 -0
- package/src/util/device-helper.respec.mts +90 -0
- package/dist/identity/custodian-delegate-helper.d.mts +0 -22
- package/dist/identity/custodian-delegate-helper.d.mts.map +0 -1
- package/dist/identity/custodian-delegate-helper.mjs +0 -50
- package/dist/identity/custodian-delegate-helper.mjs.map +0 -1
- package/src/identity/custodian-delegate-helper.mts +0 -61
|
@@ -5,22 +5,75 @@
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.component-container {
|
|
8
|
-
padding: 1.
|
|
8
|
+
padding: 1.75rem;
|
|
9
9
|
background: var(--ibgib-bg-surface, #1e1e2e);
|
|
10
10
|
color: var(--ibgib-text-primary, #cdd6f4);
|
|
11
11
|
border-radius: 12px;
|
|
12
12
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
.hidden {
|
|
16
|
+
display: none !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.sso-options {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
gap: 0.75rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.sso-btn {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
gap: 0.75rem;
|
|
30
|
+
padding: 0.8rem 1.25rem;
|
|
31
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
32
|
+
border-radius: 8px;
|
|
33
|
+
background: #181825;
|
|
34
|
+
color: #cdd6f4;
|
|
35
|
+
font-size: 0.95rem;
|
|
36
|
+
font-weight: 600;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.sso-btn:hover {
|
|
42
|
+
transform: translateY(-1px);
|
|
43
|
+
background: #313244;
|
|
44
|
+
border-color: #89b4fa;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.divider {
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
text-align: center;
|
|
51
|
+
margin: 0.75rem 0;
|
|
52
|
+
color: #a6adc8;
|
|
53
|
+
font-size: 0.75rem;
|
|
54
|
+
font-weight: 700;
|
|
55
|
+
letter-spacing: 1px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.divider::before, .divider::after {
|
|
59
|
+
content: '';
|
|
60
|
+
flex: 1;
|
|
61
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.divider span {
|
|
65
|
+
padding: 0 0.75rem;
|
|
66
|
+
}
|
|
67
|
+
|
|
15
68
|
.input-group {
|
|
16
|
-
margin-bottom:
|
|
69
|
+
margin-bottom: 1rem;
|
|
17
70
|
display: flex;
|
|
18
71
|
flex-direction: column;
|
|
19
72
|
gap: 0.4rem;
|
|
20
73
|
}
|
|
21
74
|
|
|
22
75
|
.input-group label {
|
|
23
|
-
font-size: 0.
|
|
76
|
+
font-size: 0.92rem;
|
|
24
77
|
font-weight: 500;
|
|
25
78
|
color: var(--ibgib-text-secondary, #a6adc8);
|
|
26
79
|
}
|
|
@@ -50,7 +103,7 @@
|
|
|
50
103
|
}
|
|
51
104
|
|
|
52
105
|
.action-row {
|
|
53
|
-
margin-top:
|
|
106
|
+
margin-top: 1rem;
|
|
54
107
|
}
|
|
55
108
|
|
|
56
109
|
.action-btn {
|
|
@@ -58,7 +111,7 @@
|
|
|
58
111
|
padding: 0.85rem 1.5rem;
|
|
59
112
|
border: none;
|
|
60
113
|
border-radius: 8px;
|
|
61
|
-
background: linear-gradient(135deg, #
|
|
114
|
+
background: linear-gradient(135deg, #89b4fa, #74c7ec);
|
|
62
115
|
color: #11111b;
|
|
63
116
|
font-size: 1rem;
|
|
64
117
|
font-weight: 600;
|
|
@@ -75,6 +128,12 @@
|
|
|
75
128
|
transform: translateY(0);
|
|
76
129
|
}
|
|
77
130
|
|
|
131
|
+
.action-btn:disabled {
|
|
132
|
+
opacity: 0.6;
|
|
133
|
+
cursor: not-allowed;
|
|
134
|
+
transform: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
78
137
|
.status-area {
|
|
79
138
|
margin-top: 1.2rem;
|
|
80
139
|
padding: 1rem;
|
|
@@ -100,34 +159,51 @@
|
|
|
100
159
|
color: #a6e3a1;
|
|
101
160
|
}
|
|
102
161
|
|
|
103
|
-
.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
.collapsed {
|
|
108
|
-
display: none !important;
|
|
162
|
+
.status-msg {
|
|
163
|
+
margin: 0;
|
|
164
|
+
line-height: 1.4;
|
|
165
|
+
word-break: break-word;
|
|
109
166
|
}
|
|
110
167
|
|
|
111
168
|
.result-area {
|
|
112
169
|
margin-top: 1.5rem;
|
|
113
|
-
padding: 1.
|
|
114
|
-
|
|
115
|
-
background: rgba(166, 227, 161, 0.1);
|
|
170
|
+
padding: 1.25rem;
|
|
171
|
+
background: rgba(166, 227, 161, 0.08);
|
|
116
172
|
border: 1px solid #a6e3a1;
|
|
173
|
+
border-radius: 8px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.result-area.collapsed {
|
|
177
|
+
display: none;
|
|
117
178
|
}
|
|
118
179
|
|
|
119
180
|
.result-area h3 {
|
|
120
181
|
margin-top: 0;
|
|
182
|
+
margin-bottom: 0.5rem;
|
|
121
183
|
color: #a6e3a1;
|
|
184
|
+
font-size: 1.15rem;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.address-label {
|
|
188
|
+
margin-bottom: 0.25rem;
|
|
189
|
+
font-size: 0.85rem;
|
|
190
|
+
color: var(--ibgib-text-secondary, #a6adc8);
|
|
122
191
|
}
|
|
123
192
|
|
|
124
193
|
.keystone-addr {
|
|
125
194
|
display: block;
|
|
126
|
-
|
|
127
|
-
padding: 0.6rem;
|
|
195
|
+
padding: 0.5rem 0.75rem;
|
|
128
196
|
background: #11111b;
|
|
129
197
|
border-radius: 6px;
|
|
130
198
|
font-family: monospace;
|
|
131
199
|
font-size: 0.85rem;
|
|
132
|
-
color: #
|
|
200
|
+
color: #f9e2af;
|
|
201
|
+
word-break: break-all;
|
|
202
|
+
margin-bottom: 0.75rem;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.warning {
|
|
206
|
+
margin: 0;
|
|
207
|
+
font-size: 0.85rem;
|
|
208
|
+
color: #a6adc8;
|
|
133
209
|
}
|
|
@@ -1,37 +1,111 @@
|
|
|
1
1
|
<div id="container" class="component-container">
|
|
2
|
-
<h2 id="title">Sign In
|
|
2
|
+
<h2 id="title">Sign In to Device</h2>
|
|
3
3
|
<div class="content">
|
|
4
|
-
<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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class="text-input">
|
|
15
|
-
</div>
|
|
36
|
+
<div class="divider">
|
|
37
|
+
<span>OR SIGN IN WITH EMAIL</span>
|
|
38
|
+
</div>
|
|
16
39
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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>
|