@ory/elements-react 0.0.0-pr.2c76cc9 → 0.0.0-pr.2e82b68
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/CHANGELOG.md +67 -0
- package/README.md +253 -4
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +311 -235
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +311 -235
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +3 -0
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +1 -1
- package/dist/theme/default/index.d.ts +1 -1
- package/dist/theme/default/index.js +219 -223
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +239 -240
- package/dist/theme/default/index.mjs.map +1 -1
- package/package.json +5 -4
- package/tsconfig.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,70 @@
|
|
|
1
|
+
## 1.0.0-rc.0 (2025-04-17)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- add missing translations for de, es and fr ([#456](https://github.com/ory/elements/pull/456))
|
|
6
|
+
|
|
7
|
+
### 🩹 Fixes
|
|
8
|
+
|
|
9
|
+
- correctly set input field value ([#447](https://github.com/ory/elements/pull/447))
|
|
10
|
+
- add missing settings padding ([#446](https://github.com/ory/elements/pull/446))
|
|
11
|
+
- always omit conflicting keys ([#444](https://github.com/ory/elements/pull/444))
|
|
12
|
+
|
|
13
|
+
### ❤️ Thank You
|
|
14
|
+
|
|
15
|
+
- hackerman @aeneasr
|
|
16
|
+
- Jonas Hungershausen
|
|
17
|
+
|
|
18
|
+
## 1.0.0-next.46 (2025-04-16)
|
|
19
|
+
|
|
20
|
+
### 🩹 Fixes
|
|
21
|
+
|
|
22
|
+
- missing hidden field regression ([#439](https://github.com/ory/elements/pull/439))
|
|
23
|
+
- use correct testid ([#438](https://github.com/ory/elements/pull/438))
|
|
24
|
+
|
|
25
|
+
### ❤️ Thank You
|
|
26
|
+
|
|
27
|
+
- hackerman @aeneasr
|
|
28
|
+
|
|
29
|
+
## 1.0.0-next.45 (2025-04-15)
|
|
30
|
+
|
|
31
|
+
### 🩹 Fixes
|
|
32
|
+
|
|
33
|
+
- add missing test id to scope checkbox label ([#437](https://github.com/ory/elements/pull/437))
|
|
34
|
+
- add missing captcha group to all methods ([#432](https://github.com/ory/elements/pull/432))
|
|
35
|
+
|
|
36
|
+
### ❤️ Thank You
|
|
37
|
+
|
|
38
|
+
- hackerman @aeneasr
|
|
39
|
+
- Jonas Hungershausen
|
|
40
|
+
|
|
41
|
+
## 1.0.0-next.44 (2025-04-10)
|
|
42
|
+
|
|
43
|
+
### 🩹 Fixes
|
|
44
|
+
|
|
45
|
+
- use currentColor in eye icons ([#433](https://github.com/ory/elements/pull/433))
|
|
46
|
+
|
|
47
|
+
### ❤️ Thank You
|
|
48
|
+
|
|
49
|
+
- Jonas Hungershausen
|
|
50
|
+
|
|
51
|
+
## 1.0.0-next.43 (2025-04-10)
|
|
52
|
+
|
|
53
|
+
### 🚀 Features
|
|
54
|
+
|
|
55
|
+
- add missing French translations ([#401](https://github.com/ory/elements/pull/401))
|
|
56
|
+
|
|
57
|
+
### 🩹 Fixes
|
|
58
|
+
|
|
59
|
+
- two-step registration back button ([#428](https://github.com/ory/elements/pull/428))
|
|
60
|
+
- resolve wcag2aa color contrast issues ([#367](https://github.com/ory/elements/pull/367))
|
|
61
|
+
|
|
62
|
+
### ❤️ Thank You
|
|
63
|
+
|
|
64
|
+
- hackerman @aeneasr
|
|
65
|
+
- Jonas Hungershausen
|
|
66
|
+
- Jordan Labrosse
|
|
67
|
+
|
|
1
68
|
## 1.0.0-next.41 (2025-04-07)
|
|
2
69
|
|
|
3
70
|
### 🩹 Fixes
|
package/README.md
CHANGED
|
@@ -202,16 +202,243 @@ import "@ory/elements-react/theme/styles.css"
|
|
|
202
202
|
|
|
203
203
|
### Theming
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
The styling for specific elements or groups of elements in the UI can be
|
|
206
|
+
overwritten by providing your own custom CSS variables. For more complex
|
|
207
|
+
customizations see the [Component System](#component-system).
|
|
206
208
|
|
|
207
209
|
```css
|
|
208
210
|
:root {
|
|
209
|
-
/*
|
|
210
|
-
|
|
211
|
+
/* primitives */
|
|
212
|
+
/* Overriding these may affect more variables "down stream" */
|
|
213
|
+
--ui-100: #f1f5f9;
|
|
214
|
+
--ui-200: #e2e8f0;
|
|
215
|
+
--ui-300: #cbd5e1;
|
|
216
|
+
--ui-400: #94a3b8;
|
|
217
|
+
--ui-50: #f8fafc;
|
|
218
|
+
--ui-500: #64748b;
|
|
219
|
+
--ui-600: #475569;
|
|
220
|
+
--ui-700: #334155;
|
|
221
|
+
--ui-800: #1e293b;
|
|
222
|
+
--ui-900: #0f172a;
|
|
223
|
+
--ui-950: #020617;
|
|
224
|
+
--ui-black: #000000;
|
|
225
|
+
--ui-danger: #dc2626;
|
|
226
|
+
--ui-success: #22c55e;
|
|
227
|
+
--ui-transparent: #ffffff00;
|
|
228
|
+
--ui-warning: #eab308;
|
|
229
|
+
--ui-white: #ffffff;
|
|
230
|
+
/* primitives end */
|
|
231
|
+
|
|
232
|
+
/* brand */
|
|
233
|
+
--brand-100: var(--ui-100);
|
|
234
|
+
--brand-200: var(--ui-300);
|
|
235
|
+
--brand-300: var(--ui-500);
|
|
236
|
+
--brand-400: var(--ui-700);
|
|
237
|
+
--brand-50: var(--ui-50);
|
|
238
|
+
--brand-500: var(--ui-900);
|
|
239
|
+
--brand-600: var(--ui-white);
|
|
240
|
+
--brand-700: var(--ui-200);
|
|
241
|
+
--brand-800: var(--ui-400);
|
|
242
|
+
--brand-900: var(--ui-600);
|
|
243
|
+
--brand-950: var(--ui-800);
|
|
244
|
+
/* brand end */
|
|
245
|
+
|
|
246
|
+
/* interface */
|
|
247
|
+
/* These variables affect "groups" of variables, and are re-used in the more specific variables below */
|
|
248
|
+
--interface-background-brand-primary: var(--brand-500);
|
|
249
|
+
--interface-background-brand-primary-hover: var(--brand-400);
|
|
250
|
+
--interface-background-brand-secondary: var(--brand-50);
|
|
251
|
+
--interface-background-brand-secondary-hover: var(--brand-100);
|
|
252
|
+
--interface-background-default-inverted: var(--ui-900);
|
|
253
|
+
--interface-background-default-inverted-hover: var(--ui-800);
|
|
254
|
+
--interface-background-default-none: var(--ui-transparent);
|
|
255
|
+
--interface-background-default-primary: var(--ui-white);
|
|
256
|
+
--interface-background-default-primary-hover: var(--ui-50);
|
|
257
|
+
--interface-background-default-secondary: var(--ui-50);
|
|
258
|
+
--interface-background-default-secondary-hover: var(--ui-200);
|
|
259
|
+
--interface-background-default-tertiary: var(--ui-200);
|
|
260
|
+
--interface-background-default-tertiary-hover: var(--ui-300);
|
|
261
|
+
--interface-background-disabled-disabled: var(--ui-200);
|
|
262
|
+
--interface-background-validation-danger: var(--ui-danger);
|
|
263
|
+
--interface-background-validation-success: var(--ui-success);
|
|
264
|
+
--interface-background-validation-warning: var(--ui-warning);
|
|
265
|
+
--interface-border-brand-brand: var(--brand-500);
|
|
266
|
+
--interface-border-default-inverted: var(--ui-700);
|
|
267
|
+
--interface-border-default-none: var(--ui-transparent);
|
|
268
|
+
--interface-border-default-primary: var(--ui-300);
|
|
269
|
+
--interface-border-disabled-disabled: var(--ui-300);
|
|
270
|
+
--interface-border-validation-danger: var(--ui-danger);
|
|
271
|
+
--interface-border-validation-success: var(--ui-success);
|
|
272
|
+
--interface-border-validation-warning: var(--ui-warning);
|
|
273
|
+
--interface-foreground-brand-on-primary: var(--brand-50);
|
|
274
|
+
--interface-foreground-brand-on-secondary: var(--brand-950);
|
|
275
|
+
--interface-foreground-brand-primary: var(--brand-500);
|
|
276
|
+
--interface-foreground-brand-secondary: var(--brand-50);
|
|
277
|
+
--interface-foreground-default-inverted: var(--ui-white);
|
|
278
|
+
--interface-foreground-default-primary: var(--ui-900);
|
|
279
|
+
--interface-foreground-default-secondary: var(--ui-700);
|
|
280
|
+
--interface-foreground-default-tertiary: var(--ui-500);
|
|
281
|
+
--interface-foreground-disabled-disabled: var(--ui-300);
|
|
282
|
+
--interface-foreground-disabled-on-disabled: var(--ui-400);
|
|
283
|
+
--interface-foreground-validation-danger: var(--ui-danger);
|
|
284
|
+
--interface-foreground-validation-success: var(--ui-success);
|
|
285
|
+
--interface-foreground-validation-warning: var(--ui-warning);
|
|
286
|
+
/* interface end */
|
|
287
|
+
|
|
288
|
+
/* Specific elements */
|
|
289
|
+
--button-identifier-background-default: var(
|
|
290
|
+
--interface-background-brand-secondary
|
|
291
|
+
);
|
|
292
|
+
--button-identifier-background-hover: var(
|
|
293
|
+
--interface-background-brand-secondary-hover
|
|
294
|
+
);
|
|
295
|
+
--button-identifier-border-border-default: var(
|
|
296
|
+
--interface-border-brand-brand
|
|
297
|
+
);
|
|
298
|
+
--button-identifier-border-border-hover: var(--interface-border-brand-brand);
|
|
299
|
+
--button-identifier-foreground-default: var(
|
|
300
|
+
--interface-foreground-brand-on-secondary
|
|
301
|
+
);
|
|
302
|
+
--button-identifier-foreground-hover: var(
|
|
303
|
+
--interface-foreground-brand-on-secondary
|
|
304
|
+
);
|
|
305
|
+
--button-link-brand-brand: var(--interface-foreground-brand-primary);
|
|
306
|
+
--button-link-brand-brand-hover: var(--interface-foreground-default-primary);
|
|
307
|
+
--button-link-default-primary: var(--interface-foreground-default-primary);
|
|
308
|
+
--button-link-default-primary-hover: var(
|
|
309
|
+
--interface-foreground-brand-primary
|
|
310
|
+
);
|
|
311
|
+
--button-link-default-secondary: var(
|
|
312
|
+
--interface-foreground-default-secondary
|
|
313
|
+
);
|
|
314
|
+
--button-link-default-secondary-hover: var(
|
|
315
|
+
--interface-foreground-default-tertiary
|
|
316
|
+
);
|
|
317
|
+
--button-link-disabled-disabled: var(
|
|
318
|
+
--interface-foreground-disabled-disabled
|
|
319
|
+
);
|
|
320
|
+
--button-primary-background-default: var(
|
|
321
|
+
--interface-background-brand-primary
|
|
322
|
+
);
|
|
323
|
+
--button-primary-background-disabled: var(
|
|
324
|
+
--interface-background-disabled-disabled
|
|
325
|
+
);
|
|
326
|
+
--button-primary-background-hover: var(
|
|
327
|
+
--interface-background-brand-primary-hover
|
|
328
|
+
);
|
|
329
|
+
--button-primary-border-default: var(--interface-border-default-none);
|
|
330
|
+
--button-primary-border-disabled: var(--interface-border-disabled-disabled);
|
|
331
|
+
--button-primary-border-hover: var(--interface-border-default-none);
|
|
332
|
+
--button-primary-foreground-default: var(
|
|
333
|
+
--interface-foreground-brand-on-primary
|
|
334
|
+
);
|
|
335
|
+
--button-primary-foreground-disabled: var(
|
|
336
|
+
--interface-foreground-disabled-on-disabled
|
|
337
|
+
);
|
|
338
|
+
--button-primary-foreground-hover: var(
|
|
339
|
+
--interface-foreground-brand-on-primary
|
|
340
|
+
);
|
|
341
|
+
--button-secondary-background-default: var(
|
|
342
|
+
--interface-background-default-primary
|
|
343
|
+
);
|
|
344
|
+
--button-secondary-background-disabled: var(
|
|
345
|
+
--interface-background-disabled-disabled
|
|
346
|
+
);
|
|
347
|
+
--button-secondary-background-hover: var(
|
|
348
|
+
--interface-background-default-primary-hover
|
|
349
|
+
);
|
|
350
|
+
--button-secondary-border-default: var(--interface-border-default-primary);
|
|
351
|
+
--button-secondary-border-disabled: var(--interface-border-disabled-disabled);
|
|
352
|
+
--button-secondary-border-hover: var(--interface-border-default-primary);
|
|
353
|
+
--button-secondary-foreground-default: var(
|
|
354
|
+
--interface-foreground-default-primary
|
|
355
|
+
);
|
|
356
|
+
--button-secondary-foreground-disabled: var(
|
|
357
|
+
--interface-foreground-disabled-on-disabled
|
|
358
|
+
);
|
|
359
|
+
--button-secondary-foreground-hover: var(
|
|
360
|
+
--interface-foreground-default-secondary
|
|
361
|
+
);
|
|
362
|
+
--button-social-background-default: var(
|
|
363
|
+
--interface-background-default-primary
|
|
364
|
+
);
|
|
365
|
+
--button-social-background-disabled: var(
|
|
366
|
+
--interface-background-disabled-disabled
|
|
367
|
+
);
|
|
368
|
+
--button-social-background-generic-provider: var(
|
|
369
|
+
--interface-background-default-inverted
|
|
370
|
+
);
|
|
371
|
+
--button-social-background-hover: var(
|
|
372
|
+
--interface-background-default-primary-hover
|
|
373
|
+
);
|
|
374
|
+
--button-social-border-default: var(--interface-border-default-primary);
|
|
375
|
+
--button-social-border-disabled: var(--interface-border-disabled-disabled);
|
|
376
|
+
--button-social-border-generic-provider: var(--interface-border-default-none);
|
|
377
|
+
--button-social-border-hover: var(--interface-border-default-primary);
|
|
378
|
+
--button-social-foreground-default: var(
|
|
379
|
+
--interface-foreground-default-primary
|
|
380
|
+
);
|
|
381
|
+
--button-social-foreground-disabled: var(
|
|
382
|
+
--interface-foreground-disabled-on-disabled
|
|
383
|
+
);
|
|
384
|
+
--button-social-foreground-generic-provider: var(
|
|
385
|
+
--interface-foreground-default-inverted
|
|
386
|
+
);
|
|
387
|
+
--button-social-foreground-hover: var(
|
|
388
|
+
--interface-foreground-default-secondary
|
|
389
|
+
);
|
|
390
|
+
--checkbox-background-checked: var(--interface-background-brand-primary);
|
|
391
|
+
--checkbox-background-default: var(--interface-background-default-secondary);
|
|
392
|
+
--checkbox-border-checkbox-border-checked: var(
|
|
393
|
+
--interface-border-brand-brand
|
|
394
|
+
);
|
|
395
|
+
--checkbox-border-checkbox-border-default: var(
|
|
396
|
+
--interface-border-default-primary
|
|
397
|
+
);
|
|
398
|
+
--checkbox-foreground-checked: var(--interface-foreground-brand-on-primary);
|
|
399
|
+
--checkbox-foreground-default: var(--interface-foreground-default-primary);
|
|
400
|
+
--form-background-default: var(--interface-background-default-primary);
|
|
401
|
+
--form-border-default: var(--interface-border-default-primary);
|
|
402
|
+
--input-background-default: var(--interface-background-default-primary);
|
|
403
|
+
--input-background-disabled: var(--interface-background-disabled-disabled);
|
|
404
|
+
--input-background-hover: var(--interface-background-default-primary-hover);
|
|
405
|
+
--input-border-default: var(--interface-border-default-primary);
|
|
406
|
+
--input-border-disabled: var(--interface-border-disabled-disabled);
|
|
407
|
+
--input-border-focus: var(--interface-border-brand-brand);
|
|
408
|
+
--input-border-hover: var(--interface-border-default-primary);
|
|
409
|
+
--input-foreground-disabled: var(--interface-foreground-disabled-on-disabled);
|
|
410
|
+
--input-foreground-primary: var(--interface-foreground-default-primary);
|
|
411
|
+
--input-foreground-secondary: var(--interface-foreground-default-secondary);
|
|
412
|
+
--input-foreground-tertiary: var(--interface-foreground-default-tertiary);
|
|
413
|
+
--ory-background-default: var(--interface-background-default-primary);
|
|
414
|
+
--ory-border-default: var(--interface-border-default-primary);
|
|
415
|
+
--ory-foreground-default: var(--interface-foreground-default-primary);
|
|
416
|
+
--radio-background-checked: var(--interface-background-brand-primary);
|
|
417
|
+
--radio-background-default: var(--interface-background-default-secondary);
|
|
418
|
+
--radio-border-checked: var(--interface-border-brand-brand);
|
|
419
|
+
--radio-border-default: var(--interface-border-default-primary);
|
|
420
|
+
--radio-foreground-checked: var(--interface-foreground-brand-on-primary);
|
|
421
|
+
--radio-foreground-default: var(--interface-foreground-default-primary);
|
|
422
|
+
--toggle-background-checked: var(--interface-background-brand-primary);
|
|
423
|
+
--toggle-background-default: var(--interface-background-default-secondary);
|
|
424
|
+
--toggle-border-checked: var(--interface-border-default-none);
|
|
425
|
+
--toggle-border-default: var(--interface-border-default-primary);
|
|
426
|
+
--toggle-foreground-checked: var(--interface-foreground-brand-on-primary);
|
|
427
|
+
--toggle-foreground-default: var(--interface-foreground-brand-primary);
|
|
428
|
+
/* Specific elements end */
|
|
429
|
+
|
|
430
|
+
/* border radius */
|
|
431
|
+
--border-radius-buttons: 0.25rem;
|
|
432
|
+
--border-radius-forms: 0.25rem;
|
|
433
|
+
--border-radius-general: 0.25rem;
|
|
434
|
+
--border-radius-branding: 0.5rem;
|
|
435
|
+
--border-radius-cards: 0.75rem;
|
|
436
|
+
--border-radius-identifier: 62.4375rem;
|
|
437
|
+
/* border radius end*/
|
|
211
438
|
}
|
|
212
439
|
```
|
|
213
440
|
|
|
214
|
-
### Component
|
|
441
|
+
### Component system
|
|
215
442
|
|
|
216
443
|
Many components in Ory Elements can be overriden with your own implementation.
|
|
217
444
|
Ory Elements also provides useful hooks that be used inside of your custom
|
|
@@ -249,6 +476,28 @@ export default async function RegistrationPage({ searchParams }: PageProps) {
|
|
|
249
476
|
}
|
|
250
477
|
```
|
|
251
478
|
|
|
479
|
+
### internationalization (i18n)
|
|
480
|
+
|
|
481
|
+
`@ory/elements-react` comes with default translations for many languages.
|
|
482
|
+
Additionally, it provides a way to override the default messages, through the
|
|
483
|
+
`locale` property of the `OryClientConfiguration`.
|
|
484
|
+
|
|
485
|
+
```ts
|
|
486
|
+
const config = {
|
|
487
|
+
intl: {
|
|
488
|
+
locale: "en", // Or any of the other supported locales.
|
|
489
|
+
customTranslations: {
|
|
490
|
+
en: {
|
|
491
|
+
"identities.messages.1040006": "This is a custom translation",
|
|
492
|
+
},
|
|
493
|
+
},
|
|
494
|
+
},
|
|
495
|
+
}
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
For a full list of messages, see
|
|
499
|
+
[en.json](https://github.com/ory/elements/blob/main/packages/elements-react/src/locales/en.json).
|
|
500
|
+
|
|
252
501
|
## Development
|
|
253
502
|
|
|
254
503
|
See [DEVELOPMENT.md](./DEVELOPMENT.md).
|
package/dist/index.d.mts
CHANGED
|
@@ -53,6 +53,7 @@ type OryNodeImageProps = {
|
|
|
53
53
|
type FormValues = Record<string, string | boolean | number | undefined>;
|
|
54
54
|
type OryFormRootProps = ComponentPropsWithoutRef<"form"> & {
|
|
55
55
|
onSubmit: FormEventHandler<HTMLFormElement>;
|
|
56
|
+
"data-testid"?: string;
|
|
56
57
|
};
|
|
57
58
|
type OryNodeInputProps = {
|
|
58
59
|
attributes: UiNodeInputAttributes;
|
|
@@ -374,8 +375,9 @@ type DeepPartialTwoLevels<T> = {
|
|
|
374
375
|
type OryFlowComponentOverrides = DeepPartialTwoLevels<OryFlowComponents>;
|
|
375
376
|
type OryFormProps = PropsWithChildren<{
|
|
376
377
|
onAfterSubmit?: (method: string | number | boolean | undefined) => void;
|
|
378
|
+
"data-testid"?: string;
|
|
377
379
|
}>;
|
|
378
|
-
declare function OryForm({ children, onAfterSubmit }: OryFormProps): react_jsx_runtime.JSX.Element;
|
|
380
|
+
declare function OryForm({ children, onAfterSubmit, "data-testid": dataTestId, }: OryFormProps): react_jsx_runtime.JSX.Element;
|
|
379
381
|
|
|
380
382
|
declare function useComponents(): OryFlowComponents;
|
|
381
383
|
declare function useNodeSorter(): (a: UiNode, b: UiNode, ctx: {
|
package/dist/index.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ type OryNodeImageProps = {
|
|
|
53
53
|
type FormValues = Record<string, string | boolean | number | undefined>;
|
|
54
54
|
type OryFormRootProps = ComponentPropsWithoutRef<"form"> & {
|
|
55
55
|
onSubmit: FormEventHandler<HTMLFormElement>;
|
|
56
|
+
"data-testid"?: string;
|
|
56
57
|
};
|
|
57
58
|
type OryNodeInputProps = {
|
|
58
59
|
attributes: UiNodeInputAttributes;
|
|
@@ -374,8 +375,9 @@ type DeepPartialTwoLevels<T> = {
|
|
|
374
375
|
type OryFlowComponentOverrides = DeepPartialTwoLevels<OryFlowComponents>;
|
|
375
376
|
type OryFormProps = PropsWithChildren<{
|
|
376
377
|
onAfterSubmit?: (method: string | number | boolean | undefined) => void;
|
|
378
|
+
"data-testid"?: string;
|
|
377
379
|
}>;
|
|
378
|
-
declare function OryForm({ children, onAfterSubmit }: OryFormProps): react_jsx_runtime.JSX.Element;
|
|
380
|
+
declare function OryForm({ children, onAfterSubmit, "data-testid": dataTestId, }: OryFormProps): react_jsx_runtime.JSX.Element;
|
|
379
381
|
|
|
380
382
|
declare function useComponents(): OryFlowComponents;
|
|
381
383
|
declare function useNodeSorter(): (a: UiNode, b: UiNode, ctx: {
|