@globalpayments-private/gpds-pattern-web 0.0.0-stage → 0.1.0-pr.7.gdcb74cd
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/README.md +567 -2
- package/dist/cjs/control-strategy-DhhYTbse.js +113 -0
- package/dist/cjs/gpds-pattern-web.cjs.js +24 -0
- package/dist/cjs/index-Dzm6P89U.js +1565 -0
- package/dist/cjs/index.cjs.js +180 -0
- package/dist/cjs/loader.cjs.js +12 -0
- package/dist/cjs/uds-pattern-login-card_2.cjs.entry.js +1662 -0
- package/dist/collection/collection-manifest.json +14 -0
- package/dist/collection/components/uds-pattern-login-card/slimmers/identity-memory.slimmer.js +63 -0
- package/dist/collection/components/uds-pattern-login-card/slimmers/login-workflow.slimmer.js +357 -0
- package/dist/collection/components/uds-pattern-login-card/slimmers/renderers/login-card-renderer.js +100 -0
- package/dist/collection/components/uds-pattern-login-card/slimmers/renderers/login-field-renderer.js +129 -0
- package/dist/collection/components/uds-pattern-login-card/slimmers/renderers/login-step-renderer.js +192 -0
- package/dist/collection/components/uds-pattern-login-card/slimmers/resend-throttle.slimmer.js +65 -0
- package/dist/collection/components/uds-pattern-login-card/uds-pattern-login-card.css +154 -0
- package/dist/collection/components/uds-pattern-login-card/uds-pattern-login-card.js +508 -0
- package/dist/collection/components/uds-pattern-login-card/validation/login-validation-rules.js +86 -0
- package/dist/collection/components/uds-pattern-login-card/view-model/login-card-handlers.js +1 -0
- package/dist/collection/components/uds-pattern-login-card/view-model/login-step.view-model.js +138 -0
- package/dist/collection/components/uds-pattern-login-page/uds-pattern-login-page.css +37 -0
- package/dist/collection/components/uds-pattern-login-page/uds-pattern-login-page.js +97 -0
- package/dist/collection/index.js +5 -0
- package/dist/collection/providers/auth-provider.js +28 -0
- package/dist/collection/providers/control-strategy.js +21 -0
- package/dist/collection/providers/login-config.js +4 -0
- package/dist/collection/providers/memory-auth-provider.js +133 -0
- package/dist/collection/providers/parse-auth-result.js +135 -0
- package/dist/collection/slimmer/common/log.js +14 -0
- package/dist/collection/slimmer/common/symbols.js +10 -0
- package/dist/collection/slimmer/common/types.js +2 -0
- package/dist/collection/slimmer/decorators/inject-slimmer.js +73 -0
- package/dist/collection/slimmer/decorators/map-to-component-field.js +41 -0
- package/dist/collection/slimmer/decorators/map-to-component-method.js +33 -0
- package/dist/collection/slimmer/decorators/slimmer.js +10 -0
- package/dist/collection/slimmer/index.js +5 -0
- package/dist/collection/utils/labels.js +81 -0
- package/dist/collection/utils/types.js +1 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.js +1 -0
- package/dist/components/p-DOrg55po.js +1 -0
- package/dist/components/p-_G8A9gg0.js +1 -0
- package/dist/components/uds-pattern-login-card.d.ts +11 -0
- package/dist/components/uds-pattern-login-card.js +1 -0
- package/dist/components/uds-pattern-login-page.d.ts +11 -0
- package/dist/components/uds-pattern-login-page.js +1 -0
- package/dist/docs.d.ts +480 -0
- package/dist/docs.json +549 -0
- package/dist/esm/control-strategy-DOrg55po.js +105 -0
- package/dist/esm/gpds-pattern-web.js +20 -0
- package/dist/esm/index-DsXlLyGj.js +1537 -0
- package/dist/esm/index.js +170 -0
- package/dist/esm/loader.js +10 -0
- package/dist/esm/uds-pattern-login-card_2.entry.js +1659 -0
- package/dist/gpds-pattern-web/gpds-pattern-web.css +1 -0
- package/dist/gpds-pattern-web/gpds-pattern-web.esm.js +1 -0
- package/dist/gpds-pattern-web/index.esm.js +1 -0
- package/dist/gpds-pattern-web/p-2c97d2da.entry.js +1 -0
- package/dist/gpds-pattern-web/p-DOrg55po.js +1 -0
- package/dist/gpds-pattern-web/p-DsXlLyGj.js +3 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/components/uds-pattern-login-card/slimmers/identity-memory.slimmer.d.ts +21 -0
- package/dist/types/components/uds-pattern-login-card/slimmers/login-workflow.slimmer.d.ts +100 -0
- package/dist/types/components/uds-pattern-login-card/slimmers/renderers/login-card-renderer.d.ts +44 -0
- package/dist/types/components/uds-pattern-login-card/slimmers/renderers/login-field-renderer.d.ts +91 -0
- package/dist/types/components/uds-pattern-login-card/slimmers/renderers/login-step-renderer.d.ts +40 -0
- package/dist/types/components/uds-pattern-login-card/slimmers/resend-throttle.slimmer.d.ts +21 -0
- package/dist/types/components/uds-pattern-login-card/uds-pattern-login-card.d.ts +134 -0
- package/dist/types/components/uds-pattern-login-card/validation/login-validation-rules.d.ts +72 -0
- package/dist/types/components/uds-pattern-login-card/view-model/login-card-handlers.d.ts +21 -0
- package/dist/types/components/uds-pattern-login-card/view-model/login-step.view-model.d.ts +96 -0
- package/dist/types/components/uds-pattern-login-page/uds-pattern-login-page.d.ts +21 -0
- package/dist/types/components.d.ts +327 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/providers/auth-provider.d.ts +168 -0
- package/dist/types/providers/control-strategy.d.ts +144 -0
- package/dist/types/providers/login-config.d.ts +52 -0
- package/dist/types/providers/memory-auth-provider.d.ts +37 -0
- package/dist/types/providers/parse-auth-result.d.ts +8 -0
- package/dist/types/slimmer/common/log.d.ts +8 -0
- package/dist/types/slimmer/common/symbols.d.ts +10 -0
- package/dist/types/slimmer/common/types.d.ts +30 -0
- package/dist/types/slimmer/decorators/inject-slimmer.d.ts +24 -0
- package/dist/types/slimmer/decorators/map-to-component-field.d.ts +16 -0
- package/dist/types/slimmer/decorators/map-to-component-method.d.ts +11 -0
- package/dist/types/slimmer/decorators/slimmer.d.ts +10 -0
- package/dist/types/slimmer/index.d.ts +6 -0
- package/dist/types/stencil-public-runtime.d.ts +1879 -0
- package/dist/types/utils/labels.d.ts +13 -0
- package/dist/types/utils/types.d.ts +106 -0
- package/dist/types/vega.d.ts +11 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +82 -4
package/dist/docs.json
ADDED
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
{
|
|
2
|
+
"timestamp": "2026-11-06T18:32:43",
|
|
3
|
+
"compiler": {
|
|
4
|
+
"name": "@stencil/core",
|
|
5
|
+
"version": "4.45.2",
|
|
6
|
+
"typescriptVersion": "5.8.3"
|
|
7
|
+
},
|
|
8
|
+
"components": [
|
|
9
|
+
{
|
|
10
|
+
"filePath": "src/components/uds-pattern-login-card/uds-pattern-login-card.tsx",
|
|
11
|
+
"encapsulation": "shadow",
|
|
12
|
+
"tag": "uds-pattern-login-card",
|
|
13
|
+
"readme": "# uds-pattern-login-card\n\nThe full login workflow as a single pattern — sign-in, sign-up, MFA, OTP,\npassword reset, username recovery and lockout.\n\n> 📖 **[Usage guide →](usage.md)** — worked adapters, framework recipes\n> (React / Angular / Vue), control-strategy patterns, theming and\n> troubleshooting.\n>\n> Everything below this point is generated by `stencil build --docs` and is\n> rewritten on every build. Add prose to [`usage.md`](usage.md) instead.\n",
|
|
14
|
+
"docs": "The GP login workflow, as a single pattern.\n\nUnlike a design-system component, this pattern **owns the workflow**: step\nsequencing, in-flight state, failure copy, resend throttling, lockout\nmessaging, back-navigation, focus movement and identifier persistence all\nlive inside the card. A consuming product does not implement any of it.\n\nTwo aggregate seams are all a consumer wires:\n\n- **`auth`** — a `UdsAuthProvider` adapter saying *what the identity platform\n needs next*. The pattern decides what that looks like.\n- **`controlStrategy`** — an optional `UdsLoginControlStrategy` that intercepts\n every checkpoint in the workflow, for the cases where the course of the flow\n itself needs to change.\n\n```ts\ncard.auth = createAuthProvider({\n signIn: ({ identifier, password }) => oktaSdk.authn(identifier, password),\n verifyOtp: ({ code }) => oktaSdk.verifyFactor(code),\n});\n```\n\nWhich optional methods the adapter implements is also the configuration:\nimplement `signUp` and the sign-up route appears; omit `requestPasswordReset`\nand no recovery link is rendered.\n\nThis class deliberately holds only props, events, state and the render shell.\nBehaviour lives in slimmers (`./slimmers`), markup in renderer slimmers\n(`./slimmers/renderers`) and derivation in `./view-model` — see\n`src/slimmer/README.md`.",
|
|
15
|
+
"docsTags": [
|
|
16
|
+
{
|
|
17
|
+
"name": "slot",
|
|
18
|
+
"text": "brand - Optional branding (logo, product name) rendered above the heading."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "slot",
|
|
22
|
+
"text": "footer - Replaces the default help footer."
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"usage": {},
|
|
26
|
+
"props": [
|
|
27
|
+
{
|
|
28
|
+
"name": "config",
|
|
29
|
+
"type": "UdsLoginConfig | string",
|
|
30
|
+
"complexType": {
|
|
31
|
+
"original": "UdsLoginConfig | string",
|
|
32
|
+
"resolved": "UdsLoginConfig | string",
|
|
33
|
+
"references": {
|
|
34
|
+
"UdsLoginConfig": {
|
|
35
|
+
"location": "import",
|
|
36
|
+
"path": "../../providers/login-config",
|
|
37
|
+
"id": "src/providers/login-config.ts::UdsLoginConfig",
|
|
38
|
+
"referenceLocation": "UdsLoginConfig"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"mutable": false,
|
|
43
|
+
"attr": "config",
|
|
44
|
+
"reflectToAttr": false,
|
|
45
|
+
"docs": "Everything that cannot be expressed as an attribute: the `auth` adapter,\nthe `control` strategy and any `labels` overrides.\n\nThe split is mechanical rather than a matter of taste — see\n`UdsLoginConfig`. Scalars below are attributes because they can be;\nobjects and functions are gathered here because they cannot be.\n\nAlso accepts a JSON string, so the `labels` member alone can be set from\nplain HTML markup.",
|
|
46
|
+
"docsTags": [
|
|
47
|
+
{
|
|
48
|
+
"name": "default",
|
|
49
|
+
"text": "{}"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"default": "{}",
|
|
53
|
+
"values": [
|
|
54
|
+
{
|
|
55
|
+
"type": "UdsLoginConfig"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "string"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"optional": false,
|
|
62
|
+
"required": false,
|
|
63
|
+
"getter": false,
|
|
64
|
+
"setter": false
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "identifier",
|
|
68
|
+
"type": "string",
|
|
69
|
+
"complexType": {
|
|
70
|
+
"original": "string",
|
|
71
|
+
"resolved": "string",
|
|
72
|
+
"references": {}
|
|
73
|
+
},
|
|
74
|
+
"mutable": false,
|
|
75
|
+
"attr": "identifier",
|
|
76
|
+
"reflectToAttr": false,
|
|
77
|
+
"docs": "Pre-populates the identifier field, overriding any remembered value.",
|
|
78
|
+
"docsTags": [
|
|
79
|
+
{
|
|
80
|
+
"name": "default",
|
|
81
|
+
"text": "''"
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
"default": "''",
|
|
85
|
+
"values": [
|
|
86
|
+
{
|
|
87
|
+
"type": "string"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"optional": false,
|
|
91
|
+
"required": false,
|
|
92
|
+
"getter": false,
|
|
93
|
+
"setter": false
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "initialStep",
|
|
97
|
+
"type": "\"check-email\" | \"forgot-password\" | \"forgot-username\" | \"identifier\" | \"locked\" | \"mfa-method\" | \"otp\" | \"password\" | \"reset-password\" | \"sign-up\" | \"success\"",
|
|
98
|
+
"complexType": {
|
|
99
|
+
"original": "UdsLoginStep",
|
|
100
|
+
"resolved": "\"check-email\" | \"forgot-password\" | \"forgot-username\" | \"identifier\" | \"locked\" | \"mfa-method\" | \"otp\" | \"password\" | \"reset-password\" | \"sign-up\" | \"success\"",
|
|
101
|
+
"references": {
|
|
102
|
+
"UdsLoginStep": {
|
|
103
|
+
"location": "import",
|
|
104
|
+
"path": "../../utils/types",
|
|
105
|
+
"id": "src/utils/types.ts::UdsLoginStep",
|
|
106
|
+
"referenceLocation": "UdsLoginStep"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"mutable": false,
|
|
111
|
+
"attr": "initial-step",
|
|
112
|
+
"reflectToAttr": false,
|
|
113
|
+
"docs": "The step the workflow starts on.",
|
|
114
|
+
"docsTags": [
|
|
115
|
+
{
|
|
116
|
+
"name": "default",
|
|
117
|
+
"text": "'identifier'"
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"default": "'identifier'",
|
|
121
|
+
"values": [
|
|
122
|
+
{
|
|
123
|
+
"value": "check-email",
|
|
124
|
+
"type": "string"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"value": "forgot-password",
|
|
128
|
+
"type": "string"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"value": "forgot-username",
|
|
132
|
+
"type": "string"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"value": "identifier",
|
|
136
|
+
"type": "string"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"value": "locked",
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"value": "mfa-method",
|
|
144
|
+
"type": "string"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"value": "otp",
|
|
148
|
+
"type": "string"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"value": "password",
|
|
152
|
+
"type": "string"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"value": "reset-password",
|
|
156
|
+
"type": "string"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"value": "sign-up",
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"value": "success",
|
|
164
|
+
"type": "string"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"optional": false,
|
|
168
|
+
"required": false,
|
|
169
|
+
"getter": false,
|
|
170
|
+
"setter": false
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "otpLength",
|
|
174
|
+
"type": "number",
|
|
175
|
+
"complexType": {
|
|
176
|
+
"original": "number",
|
|
177
|
+
"resolved": "number",
|
|
178
|
+
"references": {}
|
|
179
|
+
},
|
|
180
|
+
"mutable": false,
|
|
181
|
+
"attr": "otp-length",
|
|
182
|
+
"reflectToAttr": false,
|
|
183
|
+
"docs": "Default number of digit inputs, when the provider does not specify one.",
|
|
184
|
+
"docsTags": [
|
|
185
|
+
{
|
|
186
|
+
"name": "default",
|
|
187
|
+
"text": "6"
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"default": "6",
|
|
191
|
+
"values": [
|
|
192
|
+
{
|
|
193
|
+
"type": "number"
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
"optional": false,
|
|
197
|
+
"required": false,
|
|
198
|
+
"getter": false,
|
|
199
|
+
"setter": false
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "rememberStorageKey",
|
|
203
|
+
"type": "string",
|
|
204
|
+
"complexType": {
|
|
205
|
+
"original": "string",
|
|
206
|
+
"resolved": "string",
|
|
207
|
+
"references": {}
|
|
208
|
+
},
|
|
209
|
+
"mutable": false,
|
|
210
|
+
"attr": "remember-storage-key",
|
|
211
|
+
"reflectToAttr": false,
|
|
212
|
+
"docs": "Where the \"Remember my email\" value is persisted. Set to an empty string to\ndisable persistence entirely.",
|
|
213
|
+
"docsTags": [
|
|
214
|
+
{
|
|
215
|
+
"name": "default",
|
|
216
|
+
"text": "'uds-pattern-login.identifier'"
|
|
217
|
+
}
|
|
218
|
+
],
|
|
219
|
+
"default": "'uds-pattern-login.identifier'",
|
|
220
|
+
"values": [
|
|
221
|
+
{
|
|
222
|
+
"type": "string"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"optional": false,
|
|
226
|
+
"required": false,
|
|
227
|
+
"getter": false,
|
|
228
|
+
"setter": false
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"name": "showHelpFooter",
|
|
232
|
+
"type": "boolean",
|
|
233
|
+
"complexType": {
|
|
234
|
+
"original": "boolean",
|
|
235
|
+
"resolved": "boolean",
|
|
236
|
+
"references": {}
|
|
237
|
+
},
|
|
238
|
+
"mutable": false,
|
|
239
|
+
"attr": "show-help-footer",
|
|
240
|
+
"reflectToAttr": false,
|
|
241
|
+
"docs": "Renders the \"Need help signing in?\" footer.",
|
|
242
|
+
"docsTags": [
|
|
243
|
+
{
|
|
244
|
+
"name": "default",
|
|
245
|
+
"text": "true"
|
|
246
|
+
}
|
|
247
|
+
],
|
|
248
|
+
"default": "true",
|
|
249
|
+
"values": [
|
|
250
|
+
{
|
|
251
|
+
"type": "boolean"
|
|
252
|
+
}
|
|
253
|
+
],
|
|
254
|
+
"optional": false,
|
|
255
|
+
"required": false,
|
|
256
|
+
"getter": false,
|
|
257
|
+
"setter": false
|
|
258
|
+
}
|
|
259
|
+
],
|
|
260
|
+
"methods": [
|
|
261
|
+
{
|
|
262
|
+
"name": "reset",
|
|
263
|
+
"returns": {
|
|
264
|
+
"type": "Promise<void>",
|
|
265
|
+
"docs": ""
|
|
266
|
+
},
|
|
267
|
+
"complexType": {
|
|
268
|
+
"signature": "() => Promise<void>",
|
|
269
|
+
"parameters": [],
|
|
270
|
+
"references": {
|
|
271
|
+
"Promise": {
|
|
272
|
+
"location": "global",
|
|
273
|
+
"id": "global::Promise"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"return": "Promise<void>"
|
|
277
|
+
},
|
|
278
|
+
"signature": "reset() => Promise<void>",
|
|
279
|
+
"parameters": [],
|
|
280
|
+
"docs": "Returns the workflow to its first step and clears all collected input.\nUseful after a sign-out, or to recover from a terminal step.",
|
|
281
|
+
"docsTags": []
|
|
282
|
+
}
|
|
283
|
+
],
|
|
284
|
+
"events": [
|
|
285
|
+
{
|
|
286
|
+
"event": "udsLoginAction",
|
|
287
|
+
"detail": "UdsLoginActionDetail",
|
|
288
|
+
"bubbles": true,
|
|
289
|
+
"complexType": {
|
|
290
|
+
"original": "UdsLoginActionDetail",
|
|
291
|
+
"resolved": "UdsLoginActionDetail",
|
|
292
|
+
"references": {
|
|
293
|
+
"UdsLoginActionDetail": {
|
|
294
|
+
"location": "import",
|
|
295
|
+
"path": "../../utils/types",
|
|
296
|
+
"id": "src/utils/types.ts::UdsLoginActionDetail",
|
|
297
|
+
"referenceLocation": "UdsLoginActionDetail"
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"cancelable": true,
|
|
302
|
+
"composed": true,
|
|
303
|
+
"docs": "Emitted for the two intents the pattern cannot resolve — the help links.\nIn-workflow navigation is handled internally and is not reported here.",
|
|
304
|
+
"docsTags": []
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"event": "udsLoginError",
|
|
308
|
+
"detail": "UdsLoginErrorDetail",
|
|
309
|
+
"bubbles": true,
|
|
310
|
+
"complexType": {
|
|
311
|
+
"original": "UdsLoginErrorDetail",
|
|
312
|
+
"resolved": "UdsLoginErrorDetail",
|
|
313
|
+
"references": {
|
|
314
|
+
"UdsLoginErrorDetail": {
|
|
315
|
+
"location": "import",
|
|
316
|
+
"path": "../../utils/types",
|
|
317
|
+
"id": "src/utils/types.ts::UdsLoginErrorDetail",
|
|
318
|
+
"referenceLocation": "UdsLoginErrorDetail"
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"cancelable": true,
|
|
323
|
+
"composed": true,
|
|
324
|
+
"docs": "Emitted when the provider reports a failure, after the card has displayed it.",
|
|
325
|
+
"docsTags": []
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"event": "udsLoginStepChange",
|
|
329
|
+
"detail": "UdsLoginStepChangeDetail",
|
|
330
|
+
"bubbles": true,
|
|
331
|
+
"complexType": {
|
|
332
|
+
"original": "UdsLoginStepChangeDetail",
|
|
333
|
+
"resolved": "UdsLoginStepChangeDetail",
|
|
334
|
+
"references": {
|
|
335
|
+
"UdsLoginStepChangeDetail": {
|
|
336
|
+
"location": "import",
|
|
337
|
+
"path": "../../utils/types",
|
|
338
|
+
"id": "src/utils/types.ts::UdsLoginStepChangeDetail",
|
|
339
|
+
"referenceLocation": "UdsLoginStepChangeDetail"
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"cancelable": true,
|
|
344
|
+
"composed": true,
|
|
345
|
+
"docs": "Emitted whenever the workflow moves to a different step.",
|
|
346
|
+
"docsTags": []
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"event": "udsLoginSuccess",
|
|
350
|
+
"detail": "{ session?: unknown; }",
|
|
351
|
+
"bubbles": true,
|
|
352
|
+
"complexType": {
|
|
353
|
+
"original": "{ session?: UdsSession }",
|
|
354
|
+
"resolved": "{ session?: unknown; }",
|
|
355
|
+
"references": {
|
|
356
|
+
"UdsSession": {
|
|
357
|
+
"location": "import",
|
|
358
|
+
"path": "../../providers/auth-provider",
|
|
359
|
+
"id": "src/providers/auth-provider.ts::UdsSession",
|
|
360
|
+
"referenceLocation": "UdsSession"
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"cancelable": true,
|
|
365
|
+
"composed": true,
|
|
366
|
+
"docs": "Emitted once the provider reports successful authentication.",
|
|
367
|
+
"docsTags": []
|
|
368
|
+
}
|
|
369
|
+
],
|
|
370
|
+
"listeners": [],
|
|
371
|
+
"styles": [],
|
|
372
|
+
"slots": [
|
|
373
|
+
{
|
|
374
|
+
"name": "brand",
|
|
375
|
+
"docs": "Optional branding (logo, product name) rendered above the heading."
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"name": "footer",
|
|
379
|
+
"docs": "Replaces the default help footer."
|
|
380
|
+
}
|
|
381
|
+
],
|
|
382
|
+
"parts": [],
|
|
383
|
+
"states": [],
|
|
384
|
+
"dependents": [],
|
|
385
|
+
"dependencies": [],
|
|
386
|
+
"dependencyGraph": {}
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"filePath": "src/components/uds-pattern-login-page/uds-pattern-login-page.tsx",
|
|
390
|
+
"encapsulation": "shadow",
|
|
391
|
+
"tag": "uds-pattern-login-page",
|
|
392
|
+
"readme": "# uds-pattern-login-page\n\nCentred, responsive page shell for an unauthenticated route.\n\n> 📖 See the [login card usage guide](../uds-pattern-login-card/usage.md) for\n> how the two compose, plus branding and theming.\n>\n> Everything below this point is generated by `stencil build --docs` and is\n> rewritten on every build.\n",
|
|
393
|
+
"docs": "Full-page layout shell for authentication screens: branded masthead, a\ncentred content column sized for `uds-pattern-login-card`, and an optional legal\nfooter.\n\nIt exists so consuming portals do not re-implement the same centred,\nresponsive, brandable login layout for every product.",
|
|
394
|
+
"docsTags": [
|
|
395
|
+
{
|
|
396
|
+
"name": "slot",
|
|
397
|
+
"text": "brand - Replaces the default masthead logo (e.g. a partner lockup)."
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"name": "slot",
|
|
401
|
+
"text": "- The authentication card, typically a `uds-pattern-login-card`."
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"name": "slot",
|
|
405
|
+
"text": "footer - Legal / utility links rendered beneath the content column."
|
|
406
|
+
}
|
|
407
|
+
],
|
|
408
|
+
"usage": {},
|
|
409
|
+
"props": [
|
|
410
|
+
{
|
|
411
|
+
"name": "logoAlt",
|
|
412
|
+
"type": "string",
|
|
413
|
+
"complexType": {
|
|
414
|
+
"original": "string",
|
|
415
|
+
"resolved": "string",
|
|
416
|
+
"references": {}
|
|
417
|
+
},
|
|
418
|
+
"mutable": false,
|
|
419
|
+
"attr": "logo-alt",
|
|
420
|
+
"reflectToAttr": false,
|
|
421
|
+
"docs": "Accessible name for the masthead logo.",
|
|
422
|
+
"docsTags": [
|
|
423
|
+
{
|
|
424
|
+
"name": "default",
|
|
425
|
+
"text": "''"
|
|
426
|
+
}
|
|
427
|
+
],
|
|
428
|
+
"default": "''",
|
|
429
|
+
"values": [
|
|
430
|
+
{
|
|
431
|
+
"type": "string"
|
|
432
|
+
}
|
|
433
|
+
],
|
|
434
|
+
"optional": false,
|
|
435
|
+
"required": false,
|
|
436
|
+
"getter": false,
|
|
437
|
+
"setter": false
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"name": "logoHref",
|
|
441
|
+
"type": "string | undefined",
|
|
442
|
+
"complexType": {
|
|
443
|
+
"original": "string",
|
|
444
|
+
"resolved": "string | undefined",
|
|
445
|
+
"references": {}
|
|
446
|
+
},
|
|
447
|
+
"mutable": false,
|
|
448
|
+
"attr": "logo-href",
|
|
449
|
+
"reflectToAttr": false,
|
|
450
|
+
"docs": "Destination for the masthead logo link. When unset the logo is not a link.",
|
|
451
|
+
"docsTags": [],
|
|
452
|
+
"values": [
|
|
453
|
+
{
|
|
454
|
+
"type": "string"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"type": "undefined"
|
|
458
|
+
}
|
|
459
|
+
],
|
|
460
|
+
"optional": true,
|
|
461
|
+
"required": false,
|
|
462
|
+
"getter": false,
|
|
463
|
+
"setter": false
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"name": "logoSrc",
|
|
467
|
+
"type": "string | undefined",
|
|
468
|
+
"complexType": {
|
|
469
|
+
"original": "string",
|
|
470
|
+
"resolved": "string | undefined",
|
|
471
|
+
"references": {}
|
|
472
|
+
},
|
|
473
|
+
"mutable": false,
|
|
474
|
+
"attr": "logo-src",
|
|
475
|
+
"reflectToAttr": false,
|
|
476
|
+
"docs": "URL of the masthead logo. Ignored when the `brand` slot is used.",
|
|
477
|
+
"docsTags": [],
|
|
478
|
+
"values": [
|
|
479
|
+
{
|
|
480
|
+
"type": "string"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"type": "undefined"
|
|
484
|
+
}
|
|
485
|
+
],
|
|
486
|
+
"optional": true,
|
|
487
|
+
"required": false,
|
|
488
|
+
"getter": false,
|
|
489
|
+
"setter": false
|
|
490
|
+
}
|
|
491
|
+
],
|
|
492
|
+
"methods": [],
|
|
493
|
+
"events": [],
|
|
494
|
+
"listeners": [],
|
|
495
|
+
"styles": [],
|
|
496
|
+
"slots": [
|
|
497
|
+
{
|
|
498
|
+
"name": "",
|
|
499
|
+
"docs": "The authentication card, typically a `uds-pattern-login-card`."
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"name": "brand",
|
|
503
|
+
"docs": "Replaces the default masthead logo (e.g. a partner lockup)."
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"name": "footer",
|
|
507
|
+
"docs": "Legal / utility links rendered beneath the content column."
|
|
508
|
+
}
|
|
509
|
+
],
|
|
510
|
+
"parts": [],
|
|
511
|
+
"states": [],
|
|
512
|
+
"dependents": [],
|
|
513
|
+
"dependencies": [],
|
|
514
|
+
"dependencyGraph": {}
|
|
515
|
+
}
|
|
516
|
+
],
|
|
517
|
+
"typeLibrary": {
|
|
518
|
+
"src/providers/login-config.ts::UdsLoginConfig": {
|
|
519
|
+
"declaration": "export interface UdsLoginConfig {\n /**\n * The authentication seam: an adapter that answers *what the identity\n * platform needs next*. Supplying one is how the pattern is used.\n */\n auth?: UdsAuthProvider;\n\n /**\n * The control seam: interceptors over the workflow's checkpoints, for\n * altering *where this product's journey differs*. See\n * `UdsLoginControlStrategy`.\n */\n control?: UdsLoginControlStrategy;\n\n /** Partial override of the card's copy, for localisation. */\n labels?: Partial<UdsLoginLabels>;\n}",
|
|
520
|
+
"docstring": "Everything a login pattern is configured with that cannot be an attribute.\n\n## Why this object exists\n\nCustom element attributes are strings. Stencil will coerce `string`,\n`number` and `boolean` for you, but an object or a function can only be\nassigned as a JS property — there is no attribute form. That splits the\nconfiguration surface in two whether we like it or not, so the convention\nmakes the split explicit rather than letting it emerge by accident:\n\n> **If it can be an attribute, it is one. Everything that cannot — objects\n> and functions — lives here, in exactly one `config` object.**\n\nThe rule is mechanical, so \"should this be a prop or go in config?\" is\nanswerable in review by looking at the type rather than debating taste. It\nalso bounds the growth of the element's prop list: new seams (telemetry,\ntheming, validation) land as members of this object instead of as another\ntop-level property, which is the proliferation problem that the aggregate\n`UdsLoginControlStrategy` was introduced to solve one level down.\n\nEvery member is optional. A card with no config at all is inert but valid —\nit renders the first step and reports that it has no provider.\n\n```ts\ncard.config = {\n auth: createAuthProvider({ signIn: … }),\n control: { navigate: (ctx, next) => … },\n labels: { identifierHeading: 'Iniciar sesión' },\n};\n```",
|
|
521
|
+
"path": "src/providers/login-config.ts"
|
|
522
|
+
},
|
|
523
|
+
"src/utils/types.ts::UdsLoginStep": {
|
|
524
|
+
"declaration": "export type UdsLoginStep =\n | 'identifier'\n | 'password'\n | 'mfa-method'\n | 'otp'\n | 'forgot-password'\n | 'forgot-username'\n | 'reset-password'\n | 'sign-up'\n | 'check-email'\n | 'locked'\n | 'success';",
|
|
525
|
+
"docstring": "",
|
|
526
|
+
"path": "src/utils/types.ts"
|
|
527
|
+
},
|
|
528
|
+
"src/providers/auth-provider.ts::UdsSession": {
|
|
529
|
+
"declaration": "unknown",
|
|
530
|
+
"docstring": "",
|
|
531
|
+
"path": "src/providers/auth-provider.ts"
|
|
532
|
+
},
|
|
533
|
+
"src/utils/types.ts::UdsLoginStepChangeDetail": {
|
|
534
|
+
"declaration": "export interface UdsLoginStepChangeDetail {\n step: UdsLoginStep;\n previousStep: UdsLoginStep;\n}",
|
|
535
|
+
"docstring": "Payload of `udsLoginStepChange`.",
|
|
536
|
+
"path": "src/utils/types.ts"
|
|
537
|
+
},
|
|
538
|
+
"src/utils/types.ts::UdsLoginErrorDetail": {
|
|
539
|
+
"declaration": "export interface UdsLoginErrorDetail {\n code: UdsAuthErrorCode;\n step: UdsLoginStep;\n /** Raw message from the adapter, when it supplied one. */\n message?: string;\n}",
|
|
540
|
+
"docstring": "Payload of `udsLoginError`.",
|
|
541
|
+
"path": "src/utils/types.ts"
|
|
542
|
+
},
|
|
543
|
+
"src/utils/types.ts::UdsLoginActionDetail": {
|
|
544
|
+
"declaration": "export interface UdsLoginActionDetail {\n action: UdsLoginAction;\n step: UdsLoginStep;\n}",
|
|
545
|
+
"docstring": "Payload of `udsLoginAction`.",
|
|
546
|
+
"path": "src/utils/types.ts"
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default (en-US) copy for the login workflow pattern.
|
|
3
|
+
*
|
|
4
|
+
* Wording mirrors the approved Global Payments sign-in design
|
|
5
|
+
* (Figma: "Design System and Pilot Portals Rollout", node 14:2748 / 14:2765).
|
|
6
|
+
*
|
|
7
|
+
* The `errors` map is part of the pattern, not the consumer: shipping approved
|
|
8
|
+
* failure copy is how every GP product ends up failing in the same words.
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_LOGIN_LABELS = {
|
|
11
|
+
identifierHeading: 'Sign In to My Account',
|
|
12
|
+
identifierFieldLabel: 'Email address',
|
|
13
|
+
rememberIdentifier: 'Remember my email',
|
|
14
|
+
passwordHeading: 'Enter your password',
|
|
15
|
+
passwordFieldLabel: 'Password',
|
|
16
|
+
showPassword: 'Show password',
|
|
17
|
+
hidePassword: 'Hide password',
|
|
18
|
+
forgotPassword: 'Forgot password?',
|
|
19
|
+
forgotUsername: 'Forgot username?',
|
|
20
|
+
mfaMethodHeading: 'How do you want to receive your security code?',
|
|
21
|
+
mfaMethodDescription: 'Choose a delivery method to continue signing in.',
|
|
22
|
+
otpHeading: 'Verify your security code',
|
|
23
|
+
otpDescription: 'Enter the security code generated from your authenticator app.',
|
|
24
|
+
otpDescriptionForMethod: 'Enter the security code sent via {method}.',
|
|
25
|
+
otpFieldLabel: 'Security code',
|
|
26
|
+
otpIncomplete: 'Enter all {count} digits of your security code.',
|
|
27
|
+
otpSubmit: 'Verify and sign in',
|
|
28
|
+
showCode: 'Show security code',
|
|
29
|
+
hideCode: 'Hide security code',
|
|
30
|
+
resendCode: 'Resend code',
|
|
31
|
+
resendCodeIn: 'Resend code in {seconds}s',
|
|
32
|
+
changeMfaMethodPrompt: 'Want to change how you receive your security code?',
|
|
33
|
+
changeMfaMethod: 'Change security method',
|
|
34
|
+
forgotPasswordHeading: 'Reset your password',
|
|
35
|
+
forgotPasswordDescription: 'Enter your email address and we will send you a link to reset your password.',
|
|
36
|
+
forgotUsernameHeading: 'Find your username',
|
|
37
|
+
forgotUsernameDescription: 'Enter the email address associated with your account.',
|
|
38
|
+
checkEmailHeading: 'Check your email',
|
|
39
|
+
checkEmailDescription: 'If an account matches what you entered, we have sent you an email with next steps.',
|
|
40
|
+
checkEmailDescriptionWithDestination: 'If an account matches {destination}, we have sent an email with next steps.',
|
|
41
|
+
lockedHeading: 'Your account is temporarily locked',
|
|
42
|
+
lockedDescription: 'For your security we have paused sign-in after too many attempts. Try again later.',
|
|
43
|
+
lockedDescriptionWithTime: 'For your security we have paused sign-in after too many attempts. Try again in {minutes} minutes.',
|
|
44
|
+
resetPasswordHeading: 'Create a new password',
|
|
45
|
+
newPasswordFieldLabel: 'New password',
|
|
46
|
+
confirmPasswordFieldLabel: 'Confirm new password',
|
|
47
|
+
signUpHeading: 'Create your account',
|
|
48
|
+
signUpDescription: 'Tell us a little about you to get started.',
|
|
49
|
+
firstNameFieldLabel: 'First name',
|
|
50
|
+
lastNameFieldLabel: 'Last name',
|
|
51
|
+
signUpSubmit: 'Create account',
|
|
52
|
+
haveAccountPrompt: 'Already have an account?',
|
|
53
|
+
signIn: 'Sign in',
|
|
54
|
+
successHeading: "You're signed in",
|
|
55
|
+
continue: 'Continue',
|
|
56
|
+
back: 'Back',
|
|
57
|
+
troubleSigningInPrompt: 'Forgot password? Account locked? Change security method?',
|
|
58
|
+
troubleSigningIn: 'Trouble Signing In?',
|
|
59
|
+
helpPrompt: 'Need help signing in? Check out our',
|
|
60
|
+
help: 'Login help',
|
|
61
|
+
noAccountPrompt: "Don't have an account?",
|
|
62
|
+
createAccount: 'Create one',
|
|
63
|
+
errors: {
|
|
64
|
+
invalid_credentials: "That email address and password don't match. Try again.",
|
|
65
|
+
invalid_identifier: 'Enter a valid email address.',
|
|
66
|
+
invalid_code: "That security code isn't right. Check it and try again.",
|
|
67
|
+
code_expired: 'That security code has expired. Request a new one.',
|
|
68
|
+
account_locked: 'Your account is temporarily locked. Try again later.',
|
|
69
|
+
account_not_found: "We couldn't find an account for that email address.",
|
|
70
|
+
account_exists: 'An account already exists for that email address.',
|
|
71
|
+
password_policy: "That password doesn't meet the security requirements.",
|
|
72
|
+
passwords_do_not_match: "Those passwords don't match.",
|
|
73
|
+
rate_limited: 'Too many attempts. Wait a moment and try again.',
|
|
74
|
+
network: "We couldn't reach the server. Check your connection and try again.",
|
|
75
|
+
unknown: 'Something went wrong. Try again.',
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
/** Substitutes `{name}` placeholders in a label template. */
|
|
79
|
+
function formatLabel(template, values) {
|
|
80
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => key in values ? String(values[key]) : match);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Moves the workflow to `step`. */
|
|
84
|
+
const goTo = (step) => ({ type: 'goto', step });
|
|
85
|
+
/** Leaves the workflow where it is. */
|
|
86
|
+
const stay = () => ({ type: 'stay' });
|
|
87
|
+
/** Surfaces a failure without moving. */
|
|
88
|
+
const fail = (code, message) => ({
|
|
89
|
+
type: 'fail',
|
|
90
|
+
code,
|
|
91
|
+
message,
|
|
92
|
+
});
|
|
93
|
+
/**
|
|
94
|
+
* Runs a checkpoint through the strategy, falling back to the pattern's own
|
|
95
|
+
* behaviour when the strategy does not intercept it.
|
|
96
|
+
*/
|
|
97
|
+
function intercept(interceptor, context, fallback) {
|
|
98
|
+
return interceptor ? interceptor(context, fallback) : fallback();
|
|
99
|
+
}
|
|
100
|
+
/** Identity helper giving a strategy literal its types without a type annotation. */
|
|
101
|
+
function createControlStrategy(strategy) {
|
|
102
|
+
return strategy;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { DEFAULT_LOGIN_LABELS as D, fail as a, createControlStrategy as c, formatLabel as f, goTo as g, intercept as i, stay as s };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-DsXlLyGj.js';
|
|
2
|
+
export { s as setNonce } from './index-DsXlLyGj.js';
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
Stencil Client Patch Browser v4.45.2 | MIT Licensed | https://stenciljs.com
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
var patchBrowser = () => {
|
|
9
|
+
const importMeta = import.meta.url;
|
|
10
|
+
const opts = {};
|
|
11
|
+
if (importMeta !== "") {
|
|
12
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
13
|
+
}
|
|
14
|
+
return promiseResolve(opts);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
patchBrowser().then(async (options) => {
|
|
18
|
+
await globalScripts();
|
|
19
|
+
return bootstrapLazy([["uds-pattern-login-card_2",[[257,"uds-pattern-login-card",{"config":[1],"initialStep":[1,"initial-step"],"identifier":[1],"otpLength":[2,"otp-length"],"rememberStorageKey":[1,"remember-storage-key"],"showHelpFooter":[4,"show-help-footer"],"step":[32],"busy":[32],"errorText":[32],"methods":[32],"otpMethodLabel":[32],"destination":[32],"unlockMinutes":[32],"resendAt":[32],"nowTick":[32],"values":[32],"reset":[64]}],[257,"uds-pattern-login-page",{"logoSrc":[1,"logo-src"],"logoAlt":[1,"logo-alt"],"logoHref":[1,"logo-href"]}]]]], options);
|
|
20
|
+
});
|